学习笔记-Matlab算法篇-时间序列

2023-11-10

时间序列

01时间序列模型

介绍:

时间序列是按时间顺序排列的、随时间变化且相互关联的数据序列。分析时间序列的方法构成数据分析的一个重要领域,即时间序列分析。时间序列根据所研究的依据不同,可有不同的分类。

1.按所研究的对象的多少分,有一元时间序列和多元时间序列。

2.按时间的连续性可将时间序列分为离散时间序列和连续时间序列两种。

3.按序列的统计特性分,有平稳时间序列和非平稳时间序列。如果一个时间序列的概率分布与时间t无关,则称该序列为严格的平稳时间序列。如果序列的一、二阶矩存在,而且对任意时刻 t 满足:(1)均值为常数;(2)协方差为时间间隔τ的函数。则称该序列为宽平稳时间序列,也叫广义平稳时间序列。我们所研究的时间序列主要是宽平稳时间序列。

4.按时间序列的分布规律来分,有高斯型时间序列和非高斯型时间序列。

确定性时间序列分析方法:

       时间序列预测技术就是通过对预测目标自身时间序列的处理,来研究其变化趋势的。一个时间序列往往是以下几类变化形式的叠加或耦合。

1)长期趋势变动。它是指时间序列朝着一定的方向持续上升或下降,或停留在某一水平上的倾向,它反映了客观事物的主要变化趋势。

2)季节变动。

3)循环变动。通常是指周期为一年以上,由非季节因素引起的涨落起伏波形相似的波动。

4)不规则变动。通常它分为突然变动和随机变动。

 

02移动平均发

移动平均法:移动平均法是根据时间序列资料逐渐推移,依次计算包含一定项数的时序平均数,以反映长期趋势的方法。当时间序列的数值由于受周期变动和不规则变动的影响,起伏较大,不易显示出发展趋势时,可用移动平均法,消除这些因素的影响,分析、预测序列的长期趋势。移动平均法有简单移动平均法,加权移动平均法,趋势移动平均法等。

 

clc,clear
y=[533.8 574.6 606.9 649.8 705.1 772.0 816.4 892.7 963.9 1015.1 1102.7];
m=length(y);
n=[4,5]; %n 分别取4和5
for i=1:length(n)
%循环序列,求平均
for j=1:m-n(i)+1
yhat{i}(j)=sum(y(j:j+n(i)-1))/n(i);
end
y12(i)=yhat{i}(end);
s(i)=sqrt(mean((y(n(i)+1:m)-yhat{i}(1:end-1)).^2));
end
y12,s

结果:

y12 =

  993.6000  958.1600


s =

  150.5121  182.3851

 

简单移动平均法只适合做近期预测,而且是预测目标的发展趋势变化不大的情况。如果目标的发展趋势存在其它的变化,采用简单移动平均法就会产生较大的预测偏差和滞后。在简单移动平均公式中,每期数据在求平均时的作用是等同的。但是,每期数据所包含的信息量不一样,近期数据包含着更多关于未来情况的信心。因此,把各期数据等同看待是不尽合理的,应考虑各期数据的重要性,对近期数据给予较大的权重,这就是加权移动平均法的基本思想。

y=[6.35 6.20 6.22 6.66 7.15 7.89 8.72 8.94 9.28 9.8];
w=[1/6;2/6;3/6];
m=length(y);n=3;
yhat=zeros(1,m-n+1);
for i=1:m-n+1
  yhat(i)=y(i:i+n-1)*w;
end
yhat
err=abs(y(n+1:m)-yhat(1:end-1))./y(n+1:m)
T_err=1-sum(yhat(1:end-1))/sum(y(n+1:m))
y1989=yhat(end)/(1-T_err)

 结果:

>> e02

yhat =

    6.2350    6.4367    6.8317    7.4383    8.1817    8.6917    9.0733    9.4833


err =

    0.0638    0.0998    0.1341    0.1470    0.0848    0.0634    0.0741


T_err =

    0.0950


y1989 =

   10.4788

       简单移动平均法和加权移动平均法,在时间序列没有明显的趋势变动时,能够准确反映实际情况。但当时间序列出现直线增加或减少的变动趋势时,用简单移动平均法和加权移动平均法来预测就会出现滞后偏差。因此,需要进行修正,修正的方法是作二次移动平均,利用移动平均滞后偏差的规律来建立直线趋势的预测模型。这就是趋势移动平均法。

例子(e03.m):我国19651985年的发电总量如下表所示,试预测1986年和1987年的发电总量。

 

clc,clear
load y.txt %加载发电量
m1=length(y);
n=6; %n 前6个值取平均
for i=1:m1-n+1
yhat1(i)=sum(y(i:i+n-1))/n;
end
yhat1
m2=length(yhat1);
for i=1:m2-n+1
yhat2(i)=sum(yhat1(i:i+n-1))/n;
end
yhat2
plot(1:21,y,'*')
a21=2*yhat1(end)-yhat2(end)
b21=2*(yhat1(end)-yhat2(end))/(n-1)
y1986=a21+b21
y1987=a21+2*b21

结果: 

yhat1 =

   1.0e+03 *

  1 至 11 列

    0.8483    0.9663    1.0828    1.2318    1.3938    1.5635    1.7088    1.8505    2.0242    2.2162    2.4358

  12 至 16 列

    2.6250    2.8327    3.0460    3.2467    3.4612


yhat2 =

   1.0e+03 *

    1.1811    1.3245    1.4719    1.6288    1.7928    1.9665    2.1434    2.3307    2.5300    2.7337    2.9412


a21 =

   3.9811e+03


b21 =

  207.9778


y1986 =

   4.1891e+03


y1987 =

   4.3971e+03

 

03指数平滑法

例子(e04.m):某市 19761987 年某种电器销售额如下表所示。试预测 1988 年该电器销售额。

clc,clear
load dianqi.txt %加载实际销售额
yt=dianqi; n=length(yt);
alpha=[0.2 0.5 0.8];m=length(alpha);
yhat(1,1:m)=(yt(1)+yt(2))/2;
for i=2:n
yhat(i,:)=alpha*yt(i-1)+(1-alpha).*yhat(i-1,:);
end
yhat
err=sqrt(mean((repmat(yt,1,m)-yhat).^2))
yhat1988=alpha*yt(n)+(1-alpha).*yhat(n,:)

结果: 

yhat =

   51.0000   51.0000   51.0000
   50.8000   50.5000   50.2000
   51.0400   51.2500   51.6400
   50.2320   49.1250   47.9280
   50.3856   50.0625   50.3856
   50.1085   49.5313   49.2771
   49.6868   48.7656   48.2554
   49.9494   49.8828   50.4511
   47.9595   44.9414   42.0902
   47.9676   46.4707   46.8180
   48.7741   49.2354   50.9636
   49.2193   50.1177   50.9927


err =

    4.5029    4.5908    4.8426


yhat1988 =

   51.1754   54.5588   57.3985

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

学习笔记-Matlab算法篇-时间序列 的相关文章

  • MATLAB学习——Matlab系统环境介绍

    本篇文章并不涉及Matlab的具体使用方法和相关函数 仅仅是和大家一起熟悉Matlab的操作界面 祝大家小年快乐 记得吃糖瓜 总体来说 Matlab的使用界面和office的使用界面具有很高的相似性 因此 对于要熟悉Matlab使用的初学者
  • 学习笔记-Matlab算法篇-动态规划

    动态规划 01介绍 介绍 动态规划 dynamic programming 是运筹学的一个分支 是求解决策过程 decision process 最优化的数学方法 动态规划是求解某类问题的一种方法 是考察问题的一种途径 而不是一种特殊算法
  • 基于Matlab的量子粒子群算法优化单目标问题

    基于Matlab的量子粒子群算法优化单目标问题 量子粒子群算法 Quantum Particle Swarm Optimization QPSO 是一种基于自然界粒子群群体智能算法的优化方法 QPSO算法通过引入量子力学的概念 将传统粒子群
  • GUI设计篇

    一 Matlab GUIDE 在MATLAB的命令行窗口中键入guide可以打开GUIDE 这个命令将打开GUIDE Quick Start对话框 它可以看作是一个简单的GUI应用程序的开发向导 利用它可以使用鼠标方便地在窗体上添加各种各样
  • 显著区域和非显著区域特征提取Matlab实现

    显著区域和非显著区域特征提取Matlab实现 在图像处理和计算机视觉中 显著区域和非显著区域的提取是一项非常重要的任务 它可以帮助我们更好地理解图像并提供更有效的信息 在本文中 我们将介绍如何使用Matlab实现显著区域和非显著区域的提取
  • Matlab—频谱分析作图

    clf fs 50 采样频率 每秒钟采样多少个点 N 60 采样点数量 T N fs 采样时间 n 0 N 1 t n fs 时间序列 f n fs N 频率序列 y1 10 sin 2 pi 15 t y2 10 sin 2 pi 20
  • 鲸鱼优化算法——使用Python实现

    鲸鱼优化算法 使用Python实现 鲸鱼优化算法是一种新兴的优化算法 它受到鲸鱼集群捕猎行为的启发 该算法具有全局搜索能力和收敛速度快等优点 在多个领域中得到了广泛应用 本文将介绍使用Python实现鲸鱼优化算法 并提供源代码 鲸鱼优化算法
  • 【MATLAB】MATLAB打开后,提示内部崩溃,直接闪退关闭——解决方法

    问题描述 在第一次安装MATLAB软件时 正常使用 过了一段时间后 突然发现在命令行可以正常使用 但运行编译文件里的程序便会报 MathWorks 崩溃的错误 提示MATLAB遇到了内部问题 需要关闭 结果MATLAB自己闪退结束 解决方法
  • 【图像处理】MATLAB:亮度变换

    亮度变换 函数imadjust f imread breast digital Xray tif g1 imadjust f 0 1 1 0 阴暗反转图像 负片图像 等同于 g1 imcomplement f g2 imadjust f 0
  • Matlab用exprnd函数生成符合指数分布的随机数矩阵

    考虑Matlab用exprnd函数生成符合指数分布的随机数矩阵 原函数说明 根据说明 exprnd会产生满足要求的指数分布随机数 但是如果产生随机数矩阵 希望应用到仿真中 是否每一行 针对同一用户 同样满足该均值呢 生成随机数矩阵是否行列满
  • 机器人路径规划的算法有很多种,其中RRT算法是其中一种比较流行的算法之一

    机器人路径规划的算法有很多种 其中RRT算法是其中一种比较流行的算法之一 在这篇文章中 我们将为大家介绍如何使用Matlab实现基于RRT算法的机器人最短路径规划 并附上相应的源代码 我们首先需要明确RRT算法的基本思路 RRT全称为Rap
  • 学习笔记-Matlab算法篇-现代优化算法

    现代优化算法 01遗传算法 定义 遗传算法 Genetic Algorithms 简称 GA 是一种基于自然选择原理和自然遗传机制的搜索 寻优 算法 它是模拟自然界中的生命进化机制 在人工系统中实现特定目标的优化 遗传算法的实质是通过群体搜
  • (每日一练)MATLAB生成斐波那契数和数列

    今天 我学习的内容是利用MATLAB生成斐波那契数 先来介绍一下 斐波那契数列最初是用来解决兔子问题的 问题如下 一个人把一对兔子放在一个四面被墙包围的地方 假设每对兔子每个月都生一对新兔子 不 考虑伦理问题 那么一年可以从这对兔子中生产多
  • [FPGA里程碑事件:FPGA技术发展历程]

    FPGA里程碑事件 FPGA技术发展历程 自从FPGA Field Programmable Gate Array 技术问世以来 它已经获得了广泛的应用 并且在各个领域都扮演着重要的角色 FPGA作为一种可编程器件 具有高度的灵活性和可重配
  • MATLAB数据曲线拟合

    MATLAB数据曲线拟合 数据拟合是我们常用的一种方法 可以通过一组离散的数据点来找到一个函数 使这个函数能够对数据进行预测和描绘 在MATLAB中实现数据拟合非常简单 而且MATLAB还提供了许多工具箱来帮助我们完成这项任务 下面我们将会
  • Matlab中米粒图像处理,米粒个数和大小计算

    clear clc 读取图片rice png I imread rice png 获取图片的背景 BG imopen I strel disk 15 得到背景均匀的图片 I2 imsubtract I BG 得到二值化的图片 level g
  • 基于MATLAB粒子群算法求解单目标优化问题

    基于MATLAB粒子群算法求解单目标优化问题 在实际应用中 优化问题是非常常见的一类问题 而对于单目标优化问题 粒子群算法是目前被广泛采用的一种优化算法 通过对分布在搜索空间中的粒子进行适应度评估和位置调整 粒子群算法可以在较短时间内找到全
  • Matlab 随机采样

    Matlab 随机采样 随机采样是统计学和数据分析中常用的一种方法 可以用来生成代表性的样本数据 在 Matlab 中 我们可以通过 rand 函数来实现随机采样 下面我们来介绍几种常见的随机采样方法及其实现 简单随机采样 简单随机采样是最
  • 学习笔记-Matlab算法篇-图与网络

    图与网络 01基本概念 介绍 图分为无向图和有向图 一个无向图 undirected graph G是由一个非空有限集合 V G 和V G 中某些元素的无序对集合E G 构成的二元组 记为G V G E G V G 称为顶点集 E G 称为
  • Matlab中实现图像处理的工作流程

    一 识别流程 Receipt Identification Workflow Working with Images in MATLAB Import display and manipulate color and grayscale i

随机推荐

  • VS QT——ui不显示新添加成员(控件)

    场景1 新建项目 在ui里编辑之后 新添加的控件不显示代码提示 场景2 成员 ui 报错 不允许使用不完整的类型 因为是刚开始学 花了两三天才找到解决办法 网上方法 重新编译 ui文件 重新扫描解决方案 但是我这里还是无法解决 根本原因 缺
  • (二十三)admin-boot项目之captcha验证码整合

    二十三 captcha验证码整合 项目地址 https gitee com springzb admin boot 如果觉得不错 给个 star 简介 这是一个基础的企业级基础后端脚手架项目 主要由springboot为基础搭建 后期整合一
  • [转载] [Mark]分布式存储必读论文

    原文 http 50vip com 423 html 分布式存储泛指存储存储和管理数据的系统 与无状态的应用服务器不同 如何处理各种故障以保证数据一致 数据不丢 数据持续可用 是分布式存储系统的核心问题 也是极具挑战的问题 本文总结了分布式
  • Java架构直通车——基于Redis的Set NX实现分布式锁

    文章目录 实现原理 SetNx的缺陷 超时问题 单机 多机问题 实践 基于Redis的Set NX实现分布式锁 基于Redisson实现分布式锁 实现原理 我们先来看获取redis锁的set命令 SET resource name rand
  • 缠论中第49课:没必要参与操作级别及以上级别的下跌与超过操作级别的盘整,如何理解与应用?

    缠论中第49课 没需要介入操纵级别及以上司其余下降与胜过操纵级其余盘整 怎样领会与运用 比方你的操纵级别是30秒钟 那么你该当只介入30秒钟的飞腾大概30秒钟级其余进取盘整 一旦30秒钟飞腾和盘整中断 就要退出 不介入30秒钟大概以上司别
  • memcache linux 命令行,Linux下用命令行查询memcache的所有keys

    1 telnet 10 10 24 106 11211 2 stats items STAT items 23 number 2 STAT items 23 age 934861 STAT items 23 evicted 0 STAT i
  • Implementing setfenv in Lua 5.2, 5.3, and above

    Implementing setfenv in Lua 5 2 5 3 and above An upvalue tutorial Posted July 08 2015 by leafo moonscript Tags lua Tweet
  • 浅谈Phoenix在HBase中的应用

    一 前言 业务使用HBase已经有一段时间了 期间也反馈了很多问题 其中反馈最多的是HBase是否支持SQL查询和二级索引 由于HBase在这两块上目前暂不支持 导致业务在使用时无法更好的利用现有的经验来查询HBase 虽然HBase本身不
  • Matrikon OPC常见问题及解决方案(一)

    本文主要分享了使用MatrikonOPC服务器时遇到的一些最常见的问题和相应的解决方案 在联系MatrikonOPC支持团队之前 你可以看一下以下问题 解决方案和问题 答案部分是否能帮助你解决目前问题 问题和解决方案 安装时出现 aprxd
  • VUE大屏数据面板

    基于VUE写的数据看板 有九个模块 分别为 订单总量 柱状图 生产概况 数字面板 企业宣传 轮播图 产品质量分析 饼状图 客户分布 地图且有标点信息 客户订单排行 上下滚动 企业利润分析 柱折线图 合格率分析 横柱状图 测试分析 双折线图
  • python_os.walk(dir)

    for root dirs files in os walk dir os walk返回一个三元组 path 对当前路径以及其下所有的子目录进行递归 dirs 当前路径下的子目录 files 当前路径下的文件 gt gt gt for r
  • Vue3+Three.js+antvG2实战项目 智慧城市(一)

    前言 在网上找了很久都没有找到使用Three js开发智慧城市的免费文章或者免费视频 自己花了一点时间做了一个纯前端的智慧城市项目 技术栈都是最新的 vue3 vite typeScript Three antv G2 源码分享 源码 模型
  • websocket如何设置header

    websocket请求的时候要获取请求头而且需要给前端相同的相应 所以需要处理 这里记录一下 创建一个配置类 并且继承ServerEndpointConfig Configurator 重写modifyHandshake方法 获取请求头和反
  • Vue todos代办事项功能

    今天做的笔记是todos 待办事项项目 相信大家学完vue基础后 迫不及待想实现一些功能 所以这里我会用到Vue基础语法 和一些js的知识来互相结合运用 可能写的笔记不太好 大家耐心观看 有意见可以在评论区留言 我不会分享源码哦 大家想要源
  • 数字电路经验贴

    1 有时候会写一些通用模块 但是在实际使用的时候 模块内部的功能不会全部用到 会导致覆盖率上不去 以及面积增大 后续工作可以考虑怎么避免这种情况
  • ubuntu系统空间占满,无法启动

    1 今天第一次遇到Ubuntu系统整个崩溃无法启动 这个时候会出现下图所示 2 此时重启 选择recovery模式 进行修复 如下图所示 小白的我不懂以为只要进行了第二项的清处就可以 亲自尝试只清理出空间80M 3 此时应该选择root 选
  • 【机器人仿真Webots教程】-Webots安装

    Webots安装 文章目录 Webots安装 1 Webots简介 2 Webots安装 2 1 系统要求 2 2 验证显卡驱动 2 3 安装 3 Webots仿真 3 1 world文件 3 2 Controller文件 3 3 Supe
  • “全国首款自主研发IDE”——CEC-IDE(VSCode)

    省流 开源的钱真好赚 本人没有多好的文笔直接放图 从 芯 出发 前端时间用 芯 做营销的还是一个无脑恋爱剧 我的中国 芯 现在打着爱国旗号的钱就那么好圈了吗 然后就是软件上图为微软开发开源的代码编辑器下图为所谓国产自研的IDE 不能说是毫不
  • jqgrid jsonReader

    jsonReader root data page page total total records record repeatitems false 1 json 是一个比较好web 传送数据格式 jqgrid里面jsonreader 怎
  • 学习笔记-Matlab算法篇-时间序列

    时间序列 01时间序列模型 介绍 时间序列是按时间顺序排列的 随时间变化且相互关联的数据序列 分析时间序列的方法构成数据分析的一个重要领域 即时间序列分析 时间序列根据所研究的依据不同 可有不同的分类 1 按所研究的对象的多少分 有一元时间