时间序列预测(ARIMA、VAR、回归树)原理

typora-root-url: …\图

时间序列预测(不包含深度学习)

文章目录

一、单变量预测

ARIMA

ARIMA(p,d,q)模型全称为差分自回归移动平均模型,其中 AR是自回归,p是自回归项MA是移动平均,q是移动平均项数d是时间序列变得平稳时所做的 差分次数

原理: 将非平稳时间序列转化为 平稳时间序列,然后对 因变量的滞后值以及 随机误差项的现值和滞后值进行回归所建立的模型。

1.基本步骤

  1. 获取被观测系统时间序列数据;
  2. 对数据绘图,观测是否为平稳时间序列;对于非平稳时间序列要先进行d d d 阶差分运算,化为平稳时间序列;
  3. 经过第二步处理,已经得到平稳时间序列。要对平稳时间序列分别求得其 自相关系数ACF偏自相关系数PACF ,通过对自相关图和偏自相关图的分析,得到最佳的阶层 p p p 和阶数 q q q;
    时间序列预测(ARIMA、VAR、回归树)原理
; (1)自回归模型AR

描述当前值与历史值之间的关系,用变量自身的历史时间数据对自身进行预测

自回归模型必须满足平稳性要求

p阶自回归过程的公式定义:

时间序列预测(ARIMA、VAR、回归树)原理

y t y_t y t ​是当前值,μ \mu μ是常数项,P P P是阶数,γ i \gamma_i γi ​是自相关系数,ϵ t \epsilon_t ϵt ​是误差(符合正态分布)

(P 当前值距p天前值的关系)

(2)移动平均模型MA

移动平均模型关注的是自回归模型中的误差项的累加

q阶自回归过程的公式定义:

时间序列预测(ARIMA、VAR、回归树)原理
; (3)自回归移动平均模型(ARMA)

时间序列预测(ARIMA、VAR、回归树)原理
(4)选择 p p p 和 q q q 的方法

(1)自相关函数ACF(q),偏自相关函数PACF(p)

模型ACFPACFAR§衰减趋于零(几何型或震荡型)P阶后截尾MA(q)q阶后截尾衰减趋于零(几何型或震荡型)ARMA(p,q)q阶后衰减趋于零(几何型或震荡型)p阶后衰减趋于零(几何型或震荡型)

  • 若PACF p阶段后截尾,则截尾的阶数即为模型所确定的参数p
    时间序列预测(ARIMA、VAR、回归树)原理

(2)AIC准则,BIC准则

; 2.参数(以Merlion包下ARIMA模型为例)

max_forecast_steps:想要预测的期数

target_seq_index:预测目标的索引

order:(p,d,q)

二、多变量预测

1.VAR

向量自回归模型,简称VAR模型,是AR 模型的推广,是一种常用的计量经济模型。在一定的条件下,多元MA和ARMA模型也可转化成VAR模型。

原理:VAR模型把系统中每一个内生变量作为系统中所有内生变量滞后值的函数来构造模型,从而实现了将单变量自回归模型推广到由多元时间序列变量组成的”向量”自回归模型。

(1)基本步骤

时间序列预测(ARIMA、VAR、回归树)原理

其中,

时间序列预测(ARIMA、VAR、回归树)原理

时间序列预测(ARIMA、VAR、回归树)原理
  • Y t Y_t Y t ​ 表示 k k k 维内生变量列向量
  • Y t − i , i = 1 , 2 , . . . , p Y_{t-i},i=1,2,…,p Y t −i ​,i =1 ,2 ,…,p为滞后的内生变量
  • X t X_t X t ​表示d d d维外生变量列向量,它可以是常数变量、线性趋势项或者其他非随机变量
  • p p p是滞后阶数
  • T T T为样本数目
  • Φ i 即 Φ 1 , Φ 2 , . . . , Φ p \Phi_i即\Phi_1,\Phi_2,…,\Phi_p Φi ​即Φ1 ​,Φ2 ​,…,Φp ​为k × k k×k k ×k维的待估矩阵
  • B B B为k × d k×d k ×d维的待估矩阵
  • ε t ε_t εt ​~N ( 0 , Σ ) N(0,Σ)N (0 ,Σ) 为 k 维白噪声向量,它们相互之间可以同期相关,但不与自己的滞后项相关(ε t ε_t εt ​独立同分布,而ε t ε_t εt ​中的分量不要求相互独立),也不与上式中右边的变量相关。Σ ΣΣ 是ε t ε_t εt ​的协方差矩阵, 是一个 k × k k×k k ×k的正定矩阵。

; (2)参数

max_forecast_steps:想要预测的期数

target_seq_index:预测目标的索引

maxlags:AR的最大滞后数

2.回归树

核心:划分点选择 + 输出值确定。

回归树就是将特征空间划分成若干单元,每一个划分单元有一个特定的输出。因为每个结点都是”是”和”否”的判断,所以划分的边界是平行于坐标轴的。对于测试数据,我们只要按照特征将其归到某个单元,便得到对应的输出值。

】左边为对二维平面划分的决策树,右边为对应的划分示意图,其中c1,c2,c3,c4,c5是对应每个划分单元的输出。

时间序列预测(ARIMA、VAR、回归树)原理

如现在对一个新的向量(6,6)决定它对应的输出。第一维分量6介于5和8之间,第二维分量6小于8,根据此决策树很容易判断(6,6)所在的划分单元,其对应的输出值为c3。

; (1)基本步骤

[切分点选择:最小二乘法]; [输出值:单元内均值]

假设X和Y分别为输入和输出变量,并且Y是连续变量,给定训练数据集为D = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) D={(x_1,y_1),(x_2,y_2),…,(x_N,y_N)}D =(x 1 ​,y 1 ​),(x 2 ​,y 2 ​),…,(x N ​,y N ​),其中x i = ( x i ( 1 ) , x i ( 2 ) , . . . , x i ( n ) ) x_i=(x_i^{(1)},x_i^{(2)},…,x_i^{(n)})x i ​=(x i (1 )​,x i (2 )​,…,x i (n )​)为输入实例(特征向量),n为特征个数,i = 1 , 2 , . . . , N i=1,2,…,N i =1 ,2 ,…,N,N N N为样本容量。

对特征空间的划分采用启发式方法,每次划分逐一考察当前集合中所有特征的所有取值,根据平方误差最小化准则选择其中最优的一个作为切分点。如对训练集中第j j j个特征变量x ( j ) x^{(j)}x (j )和它的取值s,作为切分变量和切分点,并定义两个区域R 1 ( j , s ) = { x ∣ x ( j ) ≤ s } R_1(j,s)={x|x^{(j)}\leq s}R 1 ​(j ,s )={x ∣x (j )≤s }和R 2 ( j , s ) = { x ∣ x ( j ) > s } R_2(j,s)={x|x^{(j)}>s}R 2 ​(j ,s )={x ∣x (j )>s },为找出最优的j j j和s s s,对下式求解

时间序列预测(ARIMA、VAR、回归树)原理

也就是找出使要划分的两个区域平方误差和最小的j j j和s s s。

其中,c 1 c_1 c 1 ​,c 2 c_2 c 2 ​为划分后两个区域内固定的输出值,方括号内的两个min意为使用的是最优的c 1 c_1 c 1 ​和c 2 c_2 c 2 ​,也就是使各自区域内平方误差最小的c 1 c_1 c 1 ​和c 2 c_2 c 2 ​,易知这两个最优的输出值就是各自对应区域内Y Y Y的均值,所以上式可写为

时间序列预测(ARIMA、VAR、回归树)原理

时间序列预测(ARIMA、VAR、回归树)原理
时间序列预测(ARIMA、VAR、回归树)原理

(2)示例

下表为训练数据集,特征向量只有一维,根据此数据表建立回归决策树。
x 1 2 3 4 5 6 7 8 9 10 y

5.565.75.916.46.87.058.98.799.05

1) 选择最优切分变量j与最优切分点s:

在本数据集中,只有一个特征变量,最优切分变量自然是x。接下来考虑9个切分点{ 1.5 , 2.5 , 3.5 , 4.5 , 5.5 , 6.5 , 7.5 , 8.5 , 9.5 } {1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5}{1 .5 ,2 .5 ,3 .5 ,4 .5 ,5 .5 ,6 .5 ,7 .5 ,8 .5 ,9 .5 }(切分变量两个相邻取值区间[ a i , a i + 1 ) [a^i,a^{i+1})[a i ,a i +1 )内任一点均可),计算每个待切分点的损失函数值:

时间序列预测(ARIMA、VAR、回归树)原理

时间序列预测(ARIMA、VAR、回归树)原理
时间序列预测(ARIMA、VAR、回归树)原理

a. 计算子区域输出值

当s=1.5时,两个子区域R 1 = { 1 } R_1={1}R 1 ​={1 },R 2 = { 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 } R_2={2,3,4,5,6,7,8,9,10}R 2 ​={2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,1 0 },c 1 = 5.56 c_1=5.56 c 1 ​=5 .5 6,c 2 = 1 9 ( 5.7 + 5.91 + 6.4 + 6.8 + 7.05 + 8.9 + 8.7 + 9 + 9.05 ) = 7.5 c_2=\frac19 (5.7+5.91+6.4+6.8+7.05+8.9+8.7+9+9.05)=7.5 c 2 ​=9 1 ​(5 .7 +5 .9 1 +6 .4 +6 .8 +7 .0 5 +8 .9 +8 .7 +9 +9 .0 5 )=7 .5

同理,得到其他各切分点的子区域输出值,列表如下
1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5c 1 c_1 c 1 ​

5.565.635.725.896.076.246.626.887.11
c 2 c_2 c 2 ​

7.57.737.998.258.548.918.929.039.05

b. 计算损失函数值,找到最优切分点

当s=1.5时,L ( 1.5 ) = ( 5.56 − 5.56 ) 2 + [ ( 5.7 − 7.5 ) 2 + ( 5.91 − 7.5 ) 2 + . . . + ( 9.05 − 7.5 ) 2 ] = 15.72 L(1.5)=(5.56-5.56)^2+[(5.7-7.5)^2+(5.91-7.5)^2+…+(9.05-7.5)^2]=15.72 L (1 .5 )=(5 .5 6 −5 .5 6 )2 +[(5 .7 −7 .5 )2 +(5 .9 1 −7 .5 )2 +…+(9 .0 5 −7 .5 )2 ]=1 5 .7 2

同理,计算得到其他各切分点的损失函数值,列表如下
s 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5

L(s)15.7212.078.365.783.911.938.0111.7315.74

易知,取s = 6.5 s=6.5 s =6 .5时,损失函数值最小。因此,第一个划分点为( j = x , s = 6.5 ) (j=x,s=6.5)(j =x ,s =6 .5 )。

2)用选定的对( j , s ) (j,s)(j ,s ) 划分区域并决定相应的输出值:

划分区域为:R 1 = { 1 , 2 , 3 , 4 , 5 , 6 } , R 2 = { 7 , 8 , 9 , 10 } R_1={1,2,3,4,5,6},R_2={7,8,9,10}R 1 ​={1 ,2 ,3 ,4 ,5 ,6 },R 2 ​={7 ,8 ,9 ,1 0 }

对应输出值:c 1 = 6.24 , c 2 = 8.91 c_1=6.24,c_2=8.91 c 1 ​=6 .2 4 ,c 2 ​=8 .9 1

3) 调用步骤(1),(2),继续划分:

对R 1 R_1 R 1 ​,取切分点{ 1.5 , 2.5 , 3.5 , 4.5 , 5.5 } {1.5,2.5,3.5,4.5,5.5}{1 .5 ,2 .5 ,3 .5 ,4 .5 ,5 .5 },计算得到单元输出值为
s 1.5 2.5 3.5 4.5 5.5c 1 c_1 c 1 ​

5.565.635.725.896.07
c 2 c_2 c 2 ​

6.376.546.756.937.05

损失函数值为
s 1.5 2.5 3.5 4.5 5.5 L(s)

1.30870.7540.27710.43681.0644

L(3.5)最小,取s=3.5为划分点。后面同理。

4) 生成回归树:

假设两次划分后即停止,则最终生成的回归树为:

时间序列预测(ARIMA、VAR、回归树)原理

Original: https://blog.csdn.net/weixin_48252774/article/details/122453504
Author: 糖
Title: 时间序列预测(ARIMA、VAR、回归树)原理

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/630067/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球