内容目录:时间序列 Python实现
时间序列——ARIMA模型AR模型、MA模型、 ARIMA模型
时间序列——ARIMA模型1.时间序列常用模型1 平滑法:用于趋势分析与预测,削弱短息随机波动对序列的影响,平滑技术有移动平均法和指数平滑法
2 趋势拟合法:把时间作为自变量,观察序列值为因变量,建立回归模型,具体可分为线性和曲线拟合
3 组合模型:时间序列趋势主要收到长期趋势(T)、季节变动(S)、周期波动(C)和不规则波动()四个因素影响,可构建
加法模型:
乘法模型:
4 AR模型:
以前p期的序列值 为自变量, 为其线性模型
5 MA模型:
$x{t}$与以前各期的序列值无关,是前q期的随机扰动项的线性回归模型
6 ARMA模型: 不仅与前各期序列值有关,还与随机扰动项有关
7 ARIMA模型:许多非平稳序列差分后会显示平稳序列的性质,称这个非平稳为差分平稳序列。对查分平稳用ARIMA模型进行拟合
8 ARCH模型:ARCH模型能准确地模拟时间序列变量的波动性的变化,适用于序列具有异方差性质且异方差函数短期自相关
9 GARCH模型及衍生模型:GARCH模型称为广义ARCH模型,是ARCH模型的拓展。相比ARCH模型,GARCH模型及其衍生模型更能反映实际序列中的长期记忆性、信息的非对称性等性质
2. 时间序列预处理纯随机性和平稳性检验(时间序列预处理)
1 纯随机序列又称白噪声序列,序列的各项没有任何关系。白噪声序列是没有信息可提取的平稳序列
2 对于平稳的非白噪声序列,它的均值和方差是常数,ARMA是最常用的平稳序列拟合模型
3 非平稳序列,均值方差不稳定,一般将其转为平稳序列,这样可以用如ARMA。如果一个序列差分后具有平稳性,则该序列为差分平稳序列,可用ARIMA
(1)平稳时间序列定义
如果时间序列 在某一常数附件波动且范围有限,即有常数均值方差,且延迟$k$期的序列变量的子自协方差和自相关系数是相等的,则 是平稳序列。
自协方差和自相关系数衡量同一个事件在两个不同时期时期(t,s)之间的相关程度,形象可以说是度量自己过去行为对自己现在行为的影响。
任取 定义时间序列 的自协方差函数 和自相关系数 )
(2)平稳性检验
1)时序图检验:根据平稳时间序列的均值和方差都为常数的性质,平稳时间序列的时序图显示该序列始终在一个常数值附近随机波动,而且波动有界。
2)自相关检验:;平稳时间序列具有短期相关性,这表明平稳时间序列通常只有近期的序列值对现在的值影响较明显。随着延迟期数$k$的增加,平稳序列的自相关系数会衰减趋向于零,并在零附近随机波动,而非平稳序列的的自相关系数衰减速度较慢。
3)单位根检验:如果存在单位根就是非平稳时间序列了
3.1 AR模型: $
随机干扰项 为均值为零的白噪声序列
均值方差为常数,ACF拖尾,PACF p阶截尾
3.2 MA模型
:
随机干扰项 为均值为零的白噪声序列, 时序列均值
均值方差为常数,ACF q阶截尾,PACF拖尾
3.3 ARMA模型随机干扰项 为均值为零的白噪声序列
均值方差为常数,ACF拖尾,PACF拖尾
3.4 平稳时间序列建模平稳非白噪声序列
计算ACF,PACF
ARMA模型识别【模型定阶,根据ACF,PACF的拖尾与截尾性质】
估计模型中未知参数的值
模型检验(Y进入第六步,N返回第三部)
模型优化
预测将来趋势
对非平稳时间的序列的分析方法可以分为确定性因素分解的时间序列分析和随机时间序列分析的两大类
确定性因素分解把时间序列变化归结为4个因素(长期趋势,季节变动,循环变动和随机波动)的综合影响。
随机时序分析可以建立的模型有ARIMA模型、残差自回归模型、季节模型、异方差模型
1) p阶差分运算
相距一期的两个序列值之间的减法运算称为1阶差分运算
2)k步差分
相距k期的两个序列值之间的减法运算称为k步差分运算
许多非平稳序列差分后会显示出平稳序列的性质,这时这个非平稳序列为差分平稳序列。对差分平稳序列用ARIMA模型进行拟合。ARIMA模型的实质就是差分运算和ARMA模型的组合。
步骤:
1. 获取观察值序列
2. 平稳性检验(平稳则跳过第三步)
3. 差分运算
4. 白噪声检验(纯随机性检验,Y退出分析,N进入下一步)
5. ARIMA拟合
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns #seaborn画出的图更好看,且代码更简单,缺点是可塑性差
from statsmodels.graphics.tsaplots import plot_acf #自相关图
from statsmodels.tsa.stattools import adfuller as ADF #平稳性检测
from statsmodels.graphics.tsaplots import plot_pacf #偏自相关图
from statsmodels.stats.diagnostic import acorr_ljungbox #白噪声检验
from statsmodels.tsa.arima_model import ARIMA
https://mp.weixin.qq.com/s?__biz=MzU0MTQyOTI2Mw==&mid=2247484995&idx=1&sn=5f73a5d47b4c363544b7f01ecfbd8b61&chksm=fb2b5d23cc5cd4352792f9a63ab1945502279a9930def99aa7b11624b7f6248eeaddcf1a1d09&mpshare=1&scene=22&srcid=&sharer_sharetime=1587912725488&sharer_shareid=e064b298c8833d6439f69253db28e595#rd