我是靠谱客的博主 纯情咖啡,最近开发中收集的这篇文章主要介绍基于Matlab的时间序列(Time Series)(附代码)一、模型介绍二、基于Matlab进行计算,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

时间序列

  • 一、模型介绍
    • 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.3.5. 变形推导过程
  • 二、基于Matlab进行计算

一、模型介绍

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

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得分

最后

以上就是纯情咖啡为你收集整理的基于Matlab的时间序列(Time Series)(附代码)一、模型介绍二、基于Matlab进行计算的全部内容,希望文章能够帮你解决基于Matlab的时间序列(Time Series)(附代码)一、模型介绍二、基于Matlab进行计算所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(699)

评论列表共有 0 条评论

立即
投稿
返回
顶部