【时序预测】时间序列分析——时间序列的平稳化

2020-07-22 16:00:45 浏览数 (1)

【目录】

  • 1. 时间序列的平稳化处理
    • 1.1. 结构突变平稳
    • 1.2. 差分
    • 1.3. 确定性去趋势
  • 2. Crammer分解定理
    • 2.1. 数据分解定理
    • 2.2. 确定性因素分解法
  • 3. 趋势拟合法计算长期趋势Tt
    • 3.1. 移动平均法
    • 3.2. 指数平滑法
    • 3.3. 模拟回归方程法
  • 4. ARIMA模型
    • 4.1. 残差自回归模型
  • 5. 实现库的资料汇总
    • 5.1. Python实现库
    • 5.2. 模型汇总
    • 5.3. 优秀案例及代码

1. 时间序列的平稳化处理

将非平稳时间序列转化成平稳时间序列,包含三种类型:结构变化、差分平稳、确定性去趋势。本文脉络框架如下:

1.1. 结构变化

在差分和去趋势之前,最常用的就是取对数处理一些非线性趋势序列或将序列的指数趋势转化成线性趋势。除此之外,还可以采用指数转换等方法将原来时间序列映射成不同的曲线形态。

1.2. 差分

差分是最常用的平稳化方法。理论上,经过足够阶数的差分之后任何时间序列都会变成稳定的,但是高于二阶的差分较少使用:每次差分会丢失一个观测值,丢失数据中所包含的一部分信息。

  1. 一阶差分得到增长率
  2. 二阶差分得到增长率的增长率(速度-加速度)
  3. 高阶差分没有明确的解释

差分方程涉及到的数学基础:差分、之后算子、方程的解、特解、迭代解、齐次解、稳定性条件、稳定性和平稳性的区别和联系。

1.3. 确定性去趋势

去趋势是为了消除数据中的线性趋势或高阶趋势的过程。可以进行一个关于常数、时间t的线性或多项式回归,从回归中得到的残差代表去趋势的时间序列,多项式的阶数可以用F检验确定

随机性趋势比如随机游走过程出现时,构建ARMA模型;

注意:当知道时间序列包含一个确定性的时间趋势时,应该尽可能地使用确定性去趋势的方法!

2. Crammer分解定理

2.1. 数据分解定理

1938年,数学家Wold对平稳时间序列提出著名的Wold分解定理

1961年,数学家Crammer将Wold分解定理扩展至任意时间序列。

  • 定理内容
  1. Wold分解定理:对于平稳时间序列,时间序列=完全由历史信息确定的线性组合的确定性趋势部分 零均值白噪声序列构成的非确定性随机序列。
  2. Cramer分解定理:对于任何时间序列,时间序列=完全由历史信息确定的多项式的确定性趋势部分 零均值白噪声序列构成的非确定性随机序列。
  • 组成部分

确定性趋势部分对时间序列的影响尤为显著,因而需要着重提取确定性信息。其主要有三部分组成:

  1. 长期趋势Tt:长期总的变化趋势,递增、递减、或水平变动
  2. 季节变化St:有规律的周期性的重复变动
  3. 随机波动It:受众多偶然、难以预知和控制的因素影响
  • 作用模式

确定性趋势部分的三种组成成分,可以有多种不同的作用模式:

  1. 加法模型:季节变动随着时间的推移保持相对不变,即三种成分相加,Xt = Tt  St  It;
  2. 乘法模型:季节变动随着时间的推移递增或递减,即三种成分相乘,Xt = Tt * St * It;
  3. 混合模型:三种成分有些相加、有的相乘,Xt = St * ( Tt  I t)。

2.2. 确定性因素分解法

通过Crammer数据分解定理可以将原始时间序列分解成三个组成部分,分别求解后,可反过来根据作用模式将三个组成部分组合作为原始时间序列的拟合模型。这种方法也叫做确定性因素分解法。

假定加法作用模式下的时间序列:Xt = Tt St It

  • 步骤一:拟合长期趋势Tt:
  1. Tt = f(t, t*2),以时间t为自变量的模拟回归方程法
  2. Tt = f(Xt-1, Xt-2),以历史观察值为自变量的数据平滑法
  • 步骤二:从时间序列中去掉长期趋势Tt,拟合季节变化St:
  1. St = St‘,St‘为某个个已知的季节指数
  2. St = f(Xt, Xt-m, Xt-km),建立周期为m的季节自回归模型
  • 步骤三:进一步去掉季节变化St,拟合随机波动It:
  1. It = Xt - Tt - St

因为确定性因素分解法对确定性信息的提取可能不充分,进一步利用ARMA模型对随机波动提取自相关的信息。而由于往往只需构造ARMA(p, 0)即AR(p)模型;且此时的It也常被称作残差序列,故称为残差自回归模型。

步骤三中,对于残差自回归模型的自相关检验还可以用1950年由Durbin和Waston提出的DW检验:当DW趋近于0时,序列正相关;趋近于4时,序列负相关;趋近于2时,序列不自相关;其他时候,自相关性不确定或不自相关。

步骤二中,拟合季节变化St时需要注意观察序列的周期性规律是否明显,选择对应的模型。时间序列用于预测时,也是用Tt和St预测未来的发展变化。

步骤一中,长期趋势的拟合将在后面介绍。

补充:残差自回归模型,下图引用《时间序列分析(潘雄锋等著)》。

3. 趋势拟合法计算长期趋势Tt

拟合长期趋势Tt主要有数据平滑法和模拟回归方程法。

数据平滑法,把时间点t前后的若干观察值作为自变量,时间点t的观察值作为因变量,是利用在较短的时间间隔内的序列的自我拟合。数据平滑法是利用修匀技术,削弱短期随机波动对序列的影响,使序列平滑法从而显示出变化的趋势。包括移动平均法和指数平滑法。还有一种X-11法。

模拟回归方程法,把时间作为自变量,序列作为因变量,建立序列随时间变化的回归模型。

3.1. 移动平均法

通过取该时间序列特定时间点周围一定数量的观测值的平均来平滑时间序列不规则的波动部分。

  • 中心化移动平均法
  • 简单移动平均法
  • 二次移动平均法

方法

描述

优缺点

中心化移动平均法

取前后若干项求平均值作为趋势估计值

为消除季节变化的影响,移动平均项数应等于季节周期的长度

简单移动平均法

往前取若干项求平均值

适用于未含有明显趋势的序列;移动平均项数多,平滑效果强,但对变化反应慢;有季节变化时,项数等于周期长度

二次移动平均法

在简单移动平均法的基础上再移动平均一次

简单移动平均法的结果比实际值存在滞后,二次移动可以避免这个问题

3.2. 指数平滑法

移动平均法假定了前后若干项观察值对当前项的影响是一样的,但实际上,近期的变化对现在的影响比远期的更大,所以改进后得到指数平滑法,他是一种加权平均法,考虑了时间的远近对t时间趋势估计值的影响,假定各个时期的权重随着时间间隔的增大呈指数递减。

  • 简单指数平滑法
  • Holt线性指数平滑法
  • Holt-Winters指数平滑法

方法

描述

特点

简单指数平滑法

平滑估计值Xt’=aXt (1-a)Xt-1’,反复迭代,平滑系数a取[0.05,3]效果较好,X0’可取X1

适用无季节变化、无长期趋势变化的序列;最好只做1期预测

Holt线性指数平滑法

每期线性递增或递减的部分也做一个平滑修匀

适用无季节变化、有线性趋势的序列,不考虑季节波动;可向前多期预测

Holt-Winters指数平滑法

加上了季节变动

考虑了季节波动、长期趋势

3.3. 模拟回归方程法

把时间作为自变量,序列作为因变量,建立序列随时间变化的回归模型。包括线性拟合和非线性拟合:

  • 线性拟合:Xt = a bt  It,可用最小二乘估计拟合线性模型;
  • 非线性拟合:能转换成线性模型的尽量转换成线性模型,比如对有明显指数趋势的取log对数;不能转换的就用迭代法进行参数估计,如二次回归、多项式回归。

4. ARIMA模型

自回归移动平均模型,Autoregressive Integrated Moving Average Model。

非平稳时间序列典型含有确定性趋势和随机性趋势。由于确定性因素导致的非平稳,通常显示出非常明显的规律性,如有显著的趋势或固定的周期性变化,这种规律性信息通常比较容易提取,而由随机因素导致的波动则难以确定和分析。一般来讲,用确定性趋势时间序列减去确定性趋势部分可以得到一个平稳序列,但可能不能保证趋势信息提取充分使得剩余部分不能保证平稳。对于随机性趋势,一般通过差分运算提取趋势信息。

差分运算的本质:用差分提取趋势(确定性趋势和随机性趋势),m阶差分相当于m阶求导,实质是一个自回归过程。

  • 1阶差分:实现线性趋势平稳
  • 2阶或3阶:提取曲线趋势的影响
  • 步长为周期的差分:提取周期季节性影响

4.1. 残差自回归模型

ARIMA模型对非平稳时间序列的拟合精度较高,但与传统的确定性因素分解方法相比,ARIMA的直观解释性较差,当序列存在明显的确定性趋势或季节变动时,人们会怀念确定性因素分解方法对各种确定性效应的解释,但又因为它对残差信息的浪费不敢轻易使用。

因此,人们构造了残差自回归模型。

残差自回归模型思想:先用确定性因素分解方法提取序列中的确定性信息(长期趋势、季节变动),在对残差序列进行DW/Box-Ljung自相关性检验,如果显著,则对残差序列拟合自回归模型。注意,DW检验仅适用于回归模型残差自相关序列的检验,当回归因子包含延迟因变量/内生变量,残差序列的DW统计量是一个有偏统计量,可能误判。

5. 实现库的资料汇总

5.1. Python实现库

参考链接:https://www.cnblogs.com/junge-mike/p/9335054.html

5.2. 模型汇总

5.3. 优秀案例及代码

  1. https://blog.csdn.net/joeland209/article/details/55212688
  2. https://blog.csdn.net/pipisorry/article/details/62053938
  3. https://blog.csdn.net/qq_37267015/article/details/71410480
  4. https://blog.csdn.net/huang1024rui/article/details/51375990
  5. https://blog.csdn.net/Goldxwang/article/details/73351155
  6. https://blog.csdn.net/oxuzhenyi/article/details/76615816
  7. https://blog.csdn.net/hpuyancy/article/details/48929661
  8. https://blog.csdn.net/shine19930820/article/details/72667656
  9. http://www.cnblogs.com/foley/p/5582358.html
  10. https://www.jianshu.com/p/9a05472b0e7d

0 人点赞