时间序列中p,q值选择
1.模型识别:
对平稳时间序列Yn,求得其自相关函数(ACF)和偏自相关函数(PACF)序列。
若PACF序列满足在p步截尾,且ACF序列被负指数函数控制收敛到0,则Yn为AR(p)序列。
若ACF序列满足在q步截尾,且PACF序列被负指数函数控制收敛到0,则Yn为MA(q)序列。
若ACF序列和PACF序列满足皆不截尾,但都被负指数函数控制收敛到0,则Yn为ARMA序列。
2.模型定阶:
对于有N个观察值的序列,求得相应于AR(p)、MA(q) 和 ARMA(p,q)三种模型的残差方差,出现模型最小残差方差时的模型阶数就是各个模型的最佳阶数。
3.模型参数估计:
AR模型的参数可以根据ACF序列构成的矩阵及其矩阵之间的转化关系求得。
MA模型的参数采用线性迭代法即可求出。
ARMA模型参数估计方法是按上述求解AR模型和MA模型参数的方法分别对AR和MA模型进行参数估计,即可得到ARMA模型的参数。
4.模型估计函数:
根据对应的模型以及估计参数等带入估计函数计算出估计值。
python中使用Statsmodel库进行p,q值选择
最近工作中用到时间序列模型中的ARMA(ARIMA),需要自动选择p,q值,但是我查到的资料都是根据自相关图和偏自相关图来观察拖尾和截尾,以此来选择p,q值,刚开始时一筹莫展,后来灵机一动,为何不看下导入的statsmodel库中对应画图的函数调用时用的源代码呢:
import statsmodels
print statsmodels.__file__
根据输出找到源代码所在位置,用来画偏自相关图的代码部分为:
版权声明:本文为xiaodongxiexie原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。