基于Matlab的时间序列(Time Series)(附代码)

2023-10-30

一、模型介绍

时间序列(或称动态数列)是指将同一统计指标的数值按其发生的时间先后顺序排列而成的数列。时间序列分析的主要目的是根据已有的历史数据对未来进行预测。经济数据中大多数以时间序列的形式给出。根据观察时间的不同,时间序列中的时间可以是年份、季度、月份或其他任何时间形式。

1.1. 时间序列的不同分类

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

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

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

  4. 按序列的统计特性分,有平稳时间序列非平稳时间序列

    • 严平稳时间序列,也叫狭义平稳时间序列:一个时间序列的概率分布与时间 t t t无关
    • 宽平稳时间序列,也叫广义平稳时间序列:一个时间序列的 一、二阶矩存在,而且对任意时刻 t t t满足:
      1. 均值为常数
      2. 协方差为时间间隔 τ \small \tau τ的函数。

我们以后所研究的时间序列主要是宽平稳时间序列。

1.2. 时间序列构成要素

时间序列是按照时间排序的一组随机变量,它通常是在相等间隔的时间段内依照给定的采样率对某种潜在过程进行观测的结果。时间序列数据本质上反映的是某个或者某些随机变量随时间不断变化的趋势,而时间序列预测方法的核心就是从数据中挖掘出这种规律,并利用其对将来的数据做出估计。
构成要素:长期趋势,季节变动,循环变动,不规则变动。

  • 长期趋势( T )现象在较长时期内受某种根本性因素作用而形成的总的变动趋势。
  • 季节变动( S )现象在一年内随着季节的变化而发生的有规律的周期性变动。
  • 循环变动( C )现象以若干年为周期所呈现出的波浪起伏形态的有规律的变动。
  • 不规则变动(I )是一种无规律可循的变动,包括严格的随机变动和不规则的突发性影响很大的变动两种类型。

1.3. 三种时间序列模型

通常用 T t T_{t} Tt表示长期趋势项, S t S_{t} St来表示季节变动趋势项, C t C_{t} Ct来表示循环变动趋势, I t I_{t} It来表示随机干扰项。常见的确定性时间序列模型有以下几种类型:
(1)加法模型 x t = T t + S t + C t + I t x_{t}=T_{t}+S_{t}+C_{t}+I_{t} xt=Tt+St+Ct+It
(2)乘法模型 x t = T t ∗ S t ∗ C t ∗ I t x_{t}=T_{t}*S_{t}*C_{t}*I_{t} xt=TtStCtIt
(3)混合模型 x t = T t ∗ S t + I t x_{t}=T_{t}*S_{t}+I_{t} xt=TtSt+It x t = S t + T t ∗ C t ∗ I t x_{t}=S_{t}+T_{t}*C_{t}*I_{t} xt=St+TtCtIt
其中 x t x_{t} xt是观测目标的观测记录, E ( R t ) = 0 , E ( R t 2 ) = σ 2 E(R_{t})=0,E(R_{t}^{2})=\sigma^{2} E(Rt)=0,E(Rt2)=σ2

如果在预测时间范围以内,无突然变动且随机变动的方差 σ 2 \sigma ^{2} σ2较小,并且有理由认为过去和现在的演变趋势将继续发展到未来,也就是假设研究数据符合宽平稳时间序列时, S t + C t = 0 S_{t}+C_{t}=0 St+Ct=0,对 x t = T t + I t x_{t}=T_{t}+I_{t} xt=Tt+It项的建模方式的不同也就构成了时间序列预测的三种不同模型:

1.3.1. AR(p)模型

AR(p)模型,表示时间 t t t下的 x t x_{t} xt由过去的 t − 1 , t − 2 , . . . , t − p t-1,t-2,...,t-p t1,t2,...,tp时间下的 x t − 1 , x t − 2 , . . . , x t − p x_{t-1},x_{t-2},...,x_{t-p} xt1,xt2,...,xtp决定,称之为p阶自回归(Auto Regression)过程:
x t = ϕ 0 + ϕ 1 x t − 1 + ϕ 2 x t − 2 + ⋯ + ϕ p x t − p + ε t                        ( 1 ) {x_t} = {\phi _0} + {\phi _1}{x_{t - 1}} + {\phi _2}{x_{t - 2}} + \cdots + {\phi _p}{x_{t - p}} + {\varepsilon _t} \; \; \; \; \; \; \; \; \; \; \; (1) xt=ϕ0+ϕ1xt1+ϕ2xt2++ϕpxtp+εt(1)
数字特征:

  1. E ( x t ) = E ( x t − 1 ) = ⋯ = E ( x p ) E({x_t}) = E({x_{t - 1}}) = \cdots = E({x_p}) E(xt)=E(xt1)==E(xp)
  2. D ( x t ) = D ( x t − 1 ) = ⋯ = D ( x p ) D({x_t}) = D({x_{t - 1}}) = \cdots = D({x_p}) D(xt)=D(xt1)==D(xp)
  3. E ( ε t ) = 0 , D ( ε t ) = σ ε t 2 E({\varepsilon _t}) = 0,D({\varepsilon _t})=\sigma _{{\varepsilon _t}}^2 E(εt)=0,D(εt)=σεt2

结合以上的数字特征,藉由式(1)变形可得知:

  1. E ( x t ) = ϕ 0 1 − ϕ 1 − ⋯ ϕ p E({x_t}) = {{{\phi _0}} \over {1 - {\phi _1} - \cdots {\phi _p}}} E(xt)=1ϕ1ϕpϕ0 与p相关
  2. D ( x t ) = σ ε t 2 1 − ϕ 1 2 D({x_t}) = {{\sigma _{{\varepsilon _t}}^2} \over {1 - \phi _1^2}} D(xt)=1ϕ12σεt2

变形过程推导,自相关系数 ρ k {\rho _k} ρk,协方差 r ( k ) = c o v ( x t , x t − k ) {\rm{r(k) = cov}}({x_t},{x_{t - k}}) r(k)=cov(xt,xtk),偏自相关系数,统一见 3.5. 变形推导过程

1.3.2. MA(q)模型

MA(q)模型,表示时间 t t t下的 x t x_{t} xt由过去的 t − 1 , t − 2 , . . . , t − q t-1,t-2,...,t-q t1,t2,...,tq时间下的历史扰动项 ε t − 1 , ε t − 2 , . . . , ε t − q \varepsilon_{t-1},\varepsilon_{t-2},...,\varepsilon_{t-q} εt1,εt2,...,εtq决定,称之为q阶的移动平均(Moving Average)过程:

x t = μ + ε t − θ 1 ε t − 1 − θ 2 ε t − 2 − ⋯ − θ q ε t − q                        ( 2 ) {x_t} = \mu + {\varepsilon _t} - {\theta _1}{\varepsilon _{t - 1}} - {\theta _2}{\varepsilon _{t - 2}} - \cdots - {\theta _q}{\varepsilon _{t - q}}\; \; \; \; \; \; \; \; \; \; \; (2) xt=μ+εtθ1εt1θ2εt2θqεtq(2)

数字特征: E ( ε t ) = 0 , D ( ε t ) = σ ε t 2 E({\varepsilon _t}) = 0,D({\varepsilon _t})=\sigma _{{\varepsilon _t}}^2 E(εt)=0,D(εt)=σεt2

结合以上的数字特征,藉由式(2)变形可得知:

  1. E ( x t ) = μ E({x_t}) = \mu E(xt)=μ
  2. D ( x t ) = ( 1 + θ 1 2 + θ 2 2 + ⋯ + θ q 2 ) ⋅ σ ε 2 D({x_t}) = (1 + \theta _1^2 + \theta _2^2 + \cdots + \theta _q^2) \cdot \sigma _\varepsilon ^2 D(xt)=(1+θ12+θ22++θq2)σε2 与q相关

变形过程推导,自相关系数 ρ k {\rho _k} ρk,协方差 r ( k ) = c o v ( x t , x t − k ) {\rm{r(k) = cov}}({x_t},{x_{t - k}}) r(k)=cov(xt,xtk),偏自相关系数,统一见 3.5. 变形推导过程

1.3.3. ARMA(p,q)模型

将纯AR(p)与纯MA(q)结合,得到一个一般的自回归移动平均(Auto Regressive Moving Average)过程ARMA(p,q):
x t = ϕ 0 + ϕ 1 x t − 1 + ϕ 2 x t − 2 + ⋯ + ϕ p x t − p + ε t − θ 1 ε t − 1 − θ 2 ε t − 2 − ⋯ − θ q ε t − q          ( 3 ) {x_t} = {\phi _0} + {\phi _1}{x_{t - 1}} + {\phi _2}{x_{t - 2}} + \cdots + {\phi _p}{x_{t - p}} + {\varepsilon _t} - {\theta _1}{\varepsilon _{t - 1}} - {\theta _2}{\varepsilon _{t - 2}} - \cdots - {\theta _q}{\varepsilon _{t - q}}\; \; \; \; (3) xt=ϕ0+ϕ1xt1+ϕ2xt2++ϕpxtp+εtθ1εt1θ2εt2θqεtq(3)

把前半部分看出随着时间变化的 T t T_{t} Tt,后面半部分看出历史扰动项 I t I_{t} It,可以得出数字特征:

  1. E ( x t ) = ϕ 0 1 − ϕ 1 − ⋯ − ϕ p E({x_t}) = {{{\phi _0}} \over {1 - {\phi _1} - \cdots - {\phi _p}}} E(xt)=1ϕ1ϕpϕ0
  2. D ( x t ) = D ( T t ) + D ( I t ) D({x_t}) = D({T_t}) + D({I_t}) D(xt)=D(Tt)+D(It) 同时与p,q相关

变形过程推导,自相关系数 ρ k {\rho _k} ρk,协方差 r ( k ) = c o v ( x t , x t − k ) {\rm{r(k) = cov}}({x_t},{x_{t - k}}) r(k)=cov(xt,xtk),偏自相关系数,模型变量太多了,这里我就懒得算了,谁考试让你用手推这个那完全就是变态了

1.3.4. ARIMA(p,d,q)模型

ARIMA模型(Auto Regressive Integrated Moving Average model),差分整合移动平均自回归模型,又称整合移动平均自回归模型(移动也可称作滑动)。ARIMA(p,d,q)中,AR是“自回归”,p为自回归项数;MA为“滑动平均”,q为滑动平均项数,d为使之成为平稳序列所做的差分次数(阶数)

这里需要证明一下,当时间序列本身不是平稳的时候,如果它的增量,即的一次差分,稳定在零点附近,可以将看成是平稳序列。所以在实际的问题中,所遇到的多数非平稳序列可以通过一次或多次差分后成为平稳时间序列,再藉由差分后的平稳序列带入之前的ARMA模型,这就是ARIMA的建模构成方法:

在这里插入图片描述

1.3.5. 变形推导过程

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、基于Matlab进行计算

Step1:指定非季节性 ARIMA 模型

建立一个 ARIMA(2,1,2) 模型:
( 1 − ϕ 1 L − ϕ 2 L 2 ) ( 1 − L ) y t = ( 1 + θ 1 L + θ 2 L 2 ) ε t (1 - {\phi _1}L - {\phi _2}{L^2})(1 - L){y_t} = (1 + {\theta _1}L + {\theta _2}{L^2}){\varepsilon _t} (1ϕ1Lϕ2L2)(1L)yt=(1+θ1L+θ2L2)εt

Mdl = arima(2,1,2)

Step2:参数评估,并查看生成模型的

[EstMdl,EstParamCov,logL,info] = estimate(Mdl,y,Name,Value)

其中生成info中由参数详情,EstParamCov有结果分析
在这里插入图片描述
Step3:预测结果

[Y,YMSE] = forecast(Mdl,numperiods,Y0,Name,Value)

numperiods为预测范围,或预测周期内的时间点数,指定为正整数

Y0用于初始化预测模型的预采样响应数据,指定为长度为 numpreobs 的数值列向量或 numpreobs-by-numpaths 数值矩阵

生成Y代表预测结果,YMSE代表准确性MSE得分

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

基于Matlab的时间序列(Time Series)(附代码) 的相关文章

  • 使用符号求解器仅求解某些变量

    我正在尝试在 MATLAB 中求解包含 3 个变量和 5 个常量的方程组 是否可以使用solve求解三个变量 同时保持常量为符号而不用数值替换它们 当您使用SOLVE http www mathworks com access helpde
  • 如何告诉 mex 链接到 /usr/lib 中的 libstdc++.so.6 而不是 MATLAB 目录中的 libstdc++.so.6?

    现在 MATLAB 2012a 中的 mex 仅正式支持 gcc 4 4 6 但我想使用 gcc 4 7 风险自负 现在如果我直接用 mex 编译一些东西 它会抱怨 usr lib gcc i686 linux gnu 4 7 cc1plu
  • 如何使用 MATLAB 的 substruct 函数创建表示使用“end”的引用的结构?

    我想使用substruct http www mathworks com help matlab ref substruct html函数创建一个结构体以供使用subsref 目的是使用索引字符串subsref而不是通常的 符号 因为我正在
  • 理解高斯混合模型的概念

    我试图通过阅读在线资源来理解 GMM 我已经使用 K 均值实现了聚类 并且正在了解 GMM 与 K 均值的比较 以下是我的理解 如有错误请指出 GMM 类似于 KNN 在这两种情况下都实现了聚类 但在 GMM 中 每个簇都有自己独立的均值和
  • 如何在放置颜色条后保持子图大小不变

    假设我们有一个 1 2 子图 我们在其中绘制了一些图形 如下所示 subplot 1 2 1 surf peaks 20 subplot 1 2 2 surf peaks 20 然后我们要添加一个颜色条 colorbar 我不希望结果中的正
  • 访问图像的 Windows“标签”元数据字段

    我正在尝试进行一些图像处理 所以现在我正在尝试读取图像 exif 数据 有 2 个内置函数可用于读取图像的 exif 数据 问题是我想读取图像标签 exifread and imfinfo这两个函数都不显示图像标签 Is there any
  • 如何在 MATLAB 中绘制 3D 曲面图?

    我有一个像这样的数据集 0 1 0 2 0 3 0 4 1 10 11 12 13 2 11 12 13 14 3 12 13 14 15 4 13 14 15 16 我想在 matlab 中绘制 3D 曲面图 使列标题位于 y 轴 行标题
  • 了解 fminunc 参数和匿名函数、函数处理程序

    请多多包涵 问题在最后 我试图找出 fminunc 调用方式的差异 这个问题源于 Andrew Ng 在他的 Coursera 机器学习课程中的第 3 周材料 我正在回答这个问题 Matlab Andrew Ng 机器学习课程中 t cos
  • Matlab 的 imresize 函数中用于插值的算法是什么?

    我正在使用 Matlab Octaveimresize 对给定的二维数组重新采样的函数 我想了解如何使用特定的插值算法imresize works 我在Windows上使用八度 e g A 1 2 3 4 是一个二维数组 然后我使用命令 b
  • 给定协方差矩阵,在Matlab中生成高斯随机变量

    Given a M x M期望的协方差 R 以及所需数量的样本向量 N计算一个N x M高斯随机向量 X在普通 MATLAB 中 即不能使用r mvnrnd MU SIGMA cases 不太确定如何解决这个问题 通常你需要一个协方差并且意
  • Matlab dec2bin 给出错误的值

    我正在使用 Matlab 的 dec2bin 将十进制数转换为二进制字符串 但是 我得到了错误的结果 例如 gt gt dec2bin 13339262925365424727 ans 101110010001111010010100111
  • matlab中求和函数句柄

    Hi我试图对两个函数句柄求和 但它不起作用 例如 y1 x x x y2 x x x 3 x y3 y1 y2 我收到的错误是 对于 function handle 类型的输入参数 未定义函数或方法 plus 这只是一个小例子 实际上我实际
  • 如何使用matlab创建正态分布

    供参考 我有一些关于机器维护计划 用于翻新和大修机器 从时间表中可以看到每台机器何时进行重新检查和大修的信息 每年都有机器重修或大修的实际日期和到期日期 作为例子 machine 1 实际日期 2 1 记录 截止日期 12 1 实际日期 1
  • 性能:Matlab 与 Python

    我最近从Matlab to Python 在转换我的一个冗长代码时 我惊讶地发现Python非常慢 我分析并追踪了一个函数占用时间的问题 该函数是从我的代码中的各个位置调用的 作为递归调用的其他函数的一部分 探查器建议300两个地方都调用了
  • 在 Matlab 中将变量命名为字符串 [重复]

    这个问题在这里已经有答案了 假设变量 FileName 包含一个字符串 例如 Name1 如何创建名称为 Name1 的变量 本页的示例 4 似乎很相似 但我无法让它工作 这是正确的做法吗 http se mathworks com hel
  • 使用循环绘制多个结果

    我想使用 for 循环绘制原始和窗口的结果 10 50 100 全部在一个图中这是我得到的情节 https i stack imgur com wAixM png below is my code Read data in data csv
  • MATLAB 的函数 imfill() 导致错误

    我有一个二进制图像 720x1280 逻辑 其中有一些漏洞 所以我使用imfill来填充它 但是操作失败并且出现以下错误 Undefined function or variable eml assert all constant Erro
  • 如何为伪随机数生成器设置自定义种子

    我需要在使用的地方进行一些测试randn伪随机数生成器 我如何自己设置种子 以便每次运行此测试时都会得到相同的结果 是的 我知道这有点奇怪 但这就是问题所在 我找到了RANDSTREAM对象具有seed属性 但它是只读的 有什么方法可以用它
  • 一次设置多个字段/向单元结构添加新字段

    我有一个 1xn 结构 该结构包含一些带有数字单元格的字段 并非每个结构都具有相同的字段 所以我想将缺少的字段添加到结构中 但我没明白 Mimimal example I have same cells imported from csv
  • 错误:超出了程序允许的最大变量大小。使用 sub2ind 时

    请建议如何解决这个问题 nNodes 50400 adj sparse nNodes nNodes adj sub2ind nNodes nNodes ind ind 1 1 ind is a vector of indices Maxim

随机推荐

  • table2excel 导出表格有边框,文字居中

    应项目需要 前端直接导出表格中的数据 百度找到了table2excel 很实用 但是导出的表格没有边框 且表格中的数据没有居中 网上没找到对应的办法 就自己对table2excel js做了修改 能够实现导出的表格有边框 文字居中的要求 故
  • python print格式化输出

    在 Python 中 以 f 或 F 前缀开始的字符串表示格式化字符串字面量 通常称为 f string 从 Python 3 6 开始引入 它们是一种在字符串中嵌入表达式的新方法 这些表达式在运行时会被评估 然后使用 将它们插入到字符串中
  • Maven项目出现 ;about:black#block

    这是因为url路径有问题 检查元素 看到action是空的 解决这个问题 就可以解决问题了 这么简单的问题 为啥没有发现 因为配了域名映射的缘故 tomact一直访问的是 该文件下的项目 而我的工程项目是放在webapps下面的 这就导致我
  • NFS服务器的搭建(文件共享)

    NFS NFS目的是让不同计算机不同操作系统之间可以彼此共享文件 采用服务器 客户端工作模式ip 在NFS服务器上将目录设置为输出目录 即共享目录 后 客户端就可以将这个目录挂载到自己系统中的某个目录下 什么是RPC守护进程 使用NFS服务
  • Qt lambda 简化你的代码 connect 写法示例 省略槽函数定义

    简述 lambda 来姆达啊 很标准哈哈 英 l md 美 l md 百度百科 Lambda 表达式 lambda expression 是一个匿名函数 Lambda表达式基于数学中的 演算得名 直接对应于其中的lambda抽象 lambd
  • 关于vue项目刷新当前页面,获取数据改变后的页面

    vue项目刷新当前页面的几种方法 vue因为生命周期的原因 很多时候碰到这种情况 页面点击修改按钮 相应需要改变的数据不改变 只有F5情况下才能刷新数据已经修改后的页面 因为虽然点击了修改数据按钮 但是vue的生命周期已经执行完了 所以页面
  • 人脸检测、对齐、跟踪、识别 论文收集

    转自 https github com ChanChiChoi awesome Face Recognition
  • 目标检测算法FPN(Feature Pyramid Networks)简介

    目标检测算法Feature Pyramid Networks FPN 由Tsung Yi Lin等人于2017年提出 论文名字为 Feature Pyramid Networks for Object Detection 可以从https
  • SLAM笔记(七)回环检测中的词袋BOW

    1 词频 摘自阮一峰博客 参见附录参考 如果某个词很重要 它应该在这篇文章中多次出现 于是 我们进行 词频 Term Frequency 缩写为TF 统计 考虑到文章有长短之分 为了便于不同文章的比较 进行 词频 标准化 一般分母设置为文章
  • Centos7镜像下载教程(2023年,4月)

    一 因为Centos官网是挂在国外的服务器上 下载镜像时相比于国内的下载速度会慢很多 所以在这里向大家分享两个国内的镜像站去下载Centos镜像 二 前往阿里云镜像站下载Centos7镜像 1 阿里云官网地址 https www aliyu
  • 广度/宽度优先搜索(BFS)

    转自 https blog csdn net raphealguo article details 7523411 1 前言 广度优先搜索 也称宽度优先搜索 缩写BFS 以下采用广度来描述 是连通图的一种遍历策略 因为它的思想是从一个顶点V
  • js回调函数(callback)

    回调函数 其实简单理解的话就是在一个函数执行完毕后 得到想要的特定数据后在去执行的函数 我门直接看示例 2 getdata check 运行getdata函数 实参为check函数 1 function getdata callback 这
  • Beautiful Soup 安装教程(学习python爬虫必备库)

    文章目录 Beautiful Soup 库 一 安装 1 通过 pip 安装 2 下载安装包安装 二 验证 三 其它系统安装方式 Linux 和 Mac 1 Linux 系统基本安装方法 2 Mac 系统基本安装方法 相关链接 Beauti
  • openpyxl-(操作Excel)

    文档 https openpyxl readthedocs io en stable index html 注意事项 1 查看正在打开的excel表格就不会报错 但是 如果操作正在打开的excel表格 就会报错 写入异常 因为你正在打开当前
  • 嵌入式开发八:ARM cortex A8/9 - Android NDK - NEON介绍以及优化

    ARM cortex A8 9 Android NDK NEON介绍以及优化 资源的整理总结 1 What is NDK Android开发官网介绍 http developer android com sdk ndk overview h
  • 结构体中的函数指针(c语言里一种思想)

    阅读raft源码的时候看到结构体里面的void xx 看不懂这个地方 看上去又像面向对象的类方法 但是这是c语言的结构体啊 了解了这是函数指针 小趴菜 一 函数指针 函数指针是指向函数的指针变量 通常我们说的指针变量是指向一个整型 字符型或
  • 图片URL转Base64,Base64转二进制文件流

    现在的项目中对于图片的处理很多 对于图片的URL转Base64或者Base64转文件流很是不好处理 下面我总结了这两种方法互转的代码 希望对你有所帮助 图片URL 转Base64 function getBase64Image img va
  • Python模块Collection——OrderedDict

    OrderedDict 有序字典 OrderedDict是dict的子类 它记住了内容添加的顺序 import collections print Regular dictionary d d a A d b B d c C for k v
  • 用Python实现双目立体匹配SAD算法

    SAD Sum of absolute differences 是一种图像匹配算法 SAD算法的基本流程 1 构造一个小窗口 类似与卷积核 2 用窗口覆盖左边的图像 选择出窗口覆盖区域内的所有像素点 3 同样用窗口覆盖右边的图像并选择出覆盖
  • 基于Matlab的时间序列(Time Series)(附代码)

    时间序列 一 模型介绍 1 1 时间序列的不同分类 1 2 时间序列构成要素 1 3 三种时间序列模型 1 3 1 AR p 模型 1 3 2 MA q 模型 1 3 3 ARMA p q 模型 1 3 4 ARIMA p d q 模型 1