【学习笔记】时间序列模型(ARIMA)

文章目录


前言

通过模型算法,熟练对 python 的应用。

学习视频链接:
https://www.bilibili.com/video/BV1EK41187QF?p=50&vd_source=67471d3a1b4f517b7a7964093e62f7e6

一、时间序列

时间序列也称动态序列,是指将某种现象的指标数值按照时间顺序排列而成的数值序列。时间序列分析大致可分成三大部分,分别是描述过去、分析规律和预测未来,本文主要介绍时间序列分析中常用 ARIMA 模型。

时间序列数据

对同一对象在不同时间连续观察所取得的数据,它具备两个要素,第一个要素是时间要素 ,第

二个要素是数值要素

时间序列根据时间和数值性质的不同,可以分为时期时间序列时点时间序列

  • 时期序列 中,数值要素反映现象在一定时期内发展的结果
  • 时点序列 中,数值要素反映现象在一定时点上的瞬间水平

时期序列可加,时点序列不可加

二、ARIMA 模型大纲

ARIMA 模型的建模步骤

  • 对序列绘图,进行平稳性检验,观察序列是否平稳;对于非平稳时间序列要先进行 d 阶差分,
    转化为平稳时间序列;
  • 经过第一步处理,已经得到平稳时间序列。要对平稳时间序列分别求得其自相关系数(ACF)
    和偏自相关系数(PACF),通过对自相关图和偏自相关图的分析,得到最佳的阶数 p、q ;
  • 由以上得到的 d、q、p,得到 ARIMA 模型。然后开始对得到的模型进行模型检验。

模型前提

平稳性

  • 平稳性就是要求经由样本时间序列所得到的拟合曲线在未来的一段时间内仍然能够按照现有
    的形态延续下去
  • 平稳性要求序列的均值和方差不发生明显变化
    • 严平稳:序列所有的统计性质(期望,方差)都不会随着时间的推移而发生变化
    • 宽平稳:期望与相关系数(依赖性)不变,就是说 t t t 时刻的值 X X X 依赖于过去的信息

差分法实现

  • 时间序列在 t t t 和 t − 1 t-1 t−1 时刻的差值,将非平稳序列变平稳
    Δ y x = y ( x + 1 ) − y ( x ) , ( x = 0 , 1 , 2 , . . . ) \Delta yx=y(x+1)-y(x),(x=0,1,2,...) Δyx=y(x+1)−y(x),(x=0,1,2,...)
  • 比如一组数列 [0,1,2,3,4,5,6,7]
  • 进行差分后就会得到新数列 [1,1,1,1,1,1]

平稳性检验

对于一个时间序列,如何确定它是否满足平稳性要求?

通常采用图检验法 (通过时间序列趋势图或者自相关函数图判断) 或 ADF 检验

ADF检验

  • ADF 大致的思想就是基于随即游走(不平稳的一个特殊序列)的,对其进行回归,如果发现 p = 1 p=1 p=1,说明序列满足随机游走,就是非平稳的

图检验法

  1. 自相关系数(ACF)

    有序的随机变量序列与其自身相比较。自相关系数反映了同一序列在不同时序的取值之间的相关性,对于时间序列 y t y_t yt, y t y_t yt 与 y t − k y_{t-k} yt−k 的相关系数称为 y t y_t yt 间隔 k k k 的自相关系数。

  2. 偏自相关系数 (PACF)

    为了能单纯测度 y ( t − k ) y(t-k) y(t−k) 对 y ( t ) y(t) y(t) 的影响,引进偏自相关系数 ( P A C F ) (PACF) (PACF) 的概念。对于平稳时间序列 { y ( t ) } \{y(t)\} {y(t)},所谓滞后 k k k 偏自相关系数指在剔除了中间 k − 1 k-1 k−1 个随机变量 y ( t − 1 ) , y ( t − 2 ) , . . . , y ( t − k + 1 ) y(t-1),y(t-2),...,y(t-k+1) y(t−1),y(t−2),...,y(t−k+1) 的干扰之后, y ( t − k ) y(t-k) y(t−k) 对 y ( t ) y(t) y(t) 影响的相关程度。

  • 下图是训练集的 ACF 和 PACF 图,由图形可以看出,大部分的值都落在了置信区间内,可以把训练集本身作为平稳序列,无需差分。

差分整合移动平均自回归模型 ARIMA(p,q,d)

自回归模型 (AR( p ))

  • 描述当前值历史值之间的关系,用变量自身的历史数据对自身进行预测,其必须要满足平稳性要求,只适用于预测与自身前期相关的现象(时间序列的自相关性)
  • p p p 阶自回归过程的公式定义: y t = μ + ∑ i = 1 p γ i y t − i + ϵ t , p y_\mathrm{t}=\mu+\sum_{i=1}^p\gamma_iy_{t-i}+\epsilon_t,p yt=μ+∑i=1pγiyt−i+ϵt,p 表示用几期的历史值来预测
  • y t y_t yt 是当前值 μ \mu μ 是常数项 p p p 是阶数 γ i \gamma_i γi 是自相关系数

移动平均模型 (MA( q ))

  • 移动平均模型关注的是自回归模型中误差项的累计
  • q q q 阶自回归过程的公式定义: y t = μ + ϵ t + ∑ i = 1 q θ i ϵ t − i y_\mathrm{t}=\mu+\epsilon_t+\sum_{i=1}^q\theta_i\epsilon_{t-i} yt=μ+ϵt+∑i=1qθiϵt−i
  • 即时间序列当前值与历史值没有关系,而只依赖于历史白噪声的线性组合
  • 移动平均法能有效地消除预测中的随机波动

自回归移动平均模型(ARMA(p,q))

  • 自回归与移动平均的结合
  • 公式定义: y t = μ + ∑ i = 1 p γ i y t − i + ϵ t + ∑ i = 1 q θ i ϵ t − i y_{\mathrm{t}}=\mu+\sum_{i=1}^{p}\gamma_{i}y_{t-i}+\epsilon_{t}+\sum_{i=1}^{q}\theta_{i}\epsilon_{t-i} yt=μ+∑i=1pγiyt−i+ϵt+∑i=1qθiϵt−i
  • 该式表明:
    • 一个随机时间序列可以通过一个自回归移动平均模型来表示,即该序列可以由其自身的过去或滞后值以及随机扰动项来解释。
    • 如果该序列是平稳的,即它的行为并不会随着时间的推移而变化,那么我们就可以通过该序列过去的行为来预测未来。

差分自回归移动平均模型 ARIMA(p,d,q)

  • 将自回归模型 ( A R ) (AR) (AR)、移动平均模型 ( M A ) (MA) (MA)和差分法结合,我们就得到了差分自回归移动平均模型 A R I M A ( p , d , q ) {ARIMA}(p,d,q) ARIMA(p,d,q)
  • p p p 是自回归项, q q q 为移动平均项数, d d d 为时间序列成为平稳时所做的差分次数
  • 原理:将非平稳时间序列转化为平稳时间序列然后将因变量仅对它的滞后值以及随机误差项的
    现值和滞后值进行回归所建立的模型

确定 p,q

1. 相关函数法

  • 拖尾和截尾:拖尾指序列以指数率单调递减或震荡衰减,而截尾指序列从某个时点变得非常小


2. AIC、BIC准则

  • AIC 准则全称是最小化信息量准则( Akaike Information Criterion):
    A I C = − 21 n ( L ) + 2 K AIC=-21n(L)+2K AIC=−21n(L)+2K,其中 L L L 表示模型的极大似然函数, K K K 表示模型参数个数
  • AIC 准则存在一定的不足。当样本容量很大时,在 AIC 准则中拟合误差提供的信息就要受到样本容量的放大,而参数个数的惩罚因子却和样本容量没关系(一直是2),因此当样本容量很大时, 使用 AIC 准则的模型不收敛于真实模型,它通常比真实模型所含的未知参数个数要多
  • BIC( Bayesian InformationCriterion)贝叶斯信息准则弥补了 AIC 的不足:
    B I C = − 21 n ( L ) + K 1 n ( n ) BIC=-21n(L)+K1n(n) BIC=−21n(L)+K1n(n),其中 n 表示样本容量。
  • 显然,这两个评价指标越小越好。我们通过网格搜索,确定 AIC、BIC 最优的模型 (p、q)

以 BIC 准则为例,确定 p,q 的取值范围为 [0,5],通过循环网格搜索所有组合的 BIC 的值,得到结果如下图

可以看到,BIC最小值的组合为 ('AR1','MA0')

结果分析和模型检验

  • 检验参数估计的显著性( t 检验)
  • 检验残差序列的随机性,即残差之间是独立的 e i = y i − y ^ i e_i=y_i-\hat{y}_i ei=yi−y^i
  • 残差序列的随机性可以通过自相关函数法来检验,即做残差的自相关函数图
  • 从 ACF 图中可以看出残差之间独立性比较高
相关推荐
艾伦~耶格尔5 分钟前
常用Java API
java·开发语言·学习
Fetters0434 分钟前
✨机器学习笔记(三)—— 多元线性回归、特征缩放、Scikit-Learn
笔记·机器学习·线性回归
yiyiy111yiy1 小时前
关于Harmony的学习
前端·javascript·学习·原型模式
天马行空工作坊1 小时前
Autosar学习----AUTOSAR_SWS_BSWGeneral(二)
运维·服务器·学习·架构·汽车·汽车电子
Coder-thinking1 小时前
自定义Spring-start学习笔记
笔记·学习·spring·maven
18你磊哥1 小时前
java重点学习-集合(List)
java·数据结构·学习·list
X_StarX1 小时前
【软考中级攻略站】-软件设计师(5)- 软件工程
开发语言·笔记·学习·软件工程·软考·大学生·软件设计师
limengshi1383922 小时前
通信工程学习:什么是PDF策略决策功能
网络·网络协议·学习·信息与通信
Kent_J_Truman2 小时前
Vim笔记
笔记·编辑器·vim
芝奥小婷3 小时前
javase笔记3----正则表达式
笔记