最后更新于
最后更新于
这里介绍时间序列中的各种统计检验的方法, 主要是检验原理和应用场景.
单位根检验, ADF检验, 作用是检验时间序列的平稳性.
检验一个单变量自回归模型(AR模型)是否存在单位根. 单变量自回归模型指的是AR(1), 即:
单位根存在时有以下的表现和性质:
时, 单位根不存在, 时, 单位根存在
单位根不存在时, 时间序列是平稳的, 即时, 是平稳序列
之所以时, 时间序列是平稳的, 原理在于:
当时:
上面的推到过程中使用到了:
第二行: AR模型的迭代
第五行: 项的消失是因为是常数项, 其方差为0
第七行: 所有误差项的方差是相同的, 都是
第八行: 等比数列的求和公式
因此可以得到时间序列的方差是一个常数, 即. 这满足平稳序列的方差是个常数的性质.
当时:
因此, 此时时间序列的方差是一个与时间有关的函数, 肯定是非平稳的.
以上是单位根与平稳性关系的原理. 整个平稳性检验的过程为:
通过线性回归方法拟合出自回归模型.
需要注意的是, 这里假设的自回归模型不是AR(1), 而是包含若干个lag
的AR(p)
这里p参数的选择, 在statsmodels.tsa.stattools.adfuller
中都有体现
使用AIC或BIC评价线性模型拟合的结果, 选取最好的
在Python
中的使用方法为:
KPSS检验也是用来检验时间序列平稳性的方法.
KPSS检验的原假设等价于时间序列是平稳的, 因此, 只要得到的p值不小于显著性水平即可说明时间序列是平稳的.
KPSS检验中构建了一个比较复杂的统计量, 且这个统计量服从的分布也不是常用的几种分布. 通过论文作者给出的不同显著性水平对应的临界统计值表和线性插值的方法, 对计算得到的统计量, 计算得到其p值, 做出判断.
在Python
中的使用方法为:
目标: 检验时间序列是否具有自相关性, 换句话说是对序列的随机性进行的检测. 白噪声序列可以通过检测, 具有自相关性的序列(如可以使用AR
模型进行建模的序列)则不能通过检测.
如果所有的自相关系数中有一个显著不为0, 则认为时间序列是有相关性的, 就要拒绝原假设, 因此备择假设为:
构造检测需要使用的统计量:
注意, 接受原假设意味着接受时间序列是相互独立的, 即为白噪声序列.
用途: Ljung-Box test常用在对模型(如ARIMA)拟合之后的残差序列进行检验, 如果残差序列能够通过检测, 说明残差序列是白噪声序列, 模型拟合的效果很好.
原假设为, 即时间序列是不平稳的
根据公式自动得出
使用统计量, 从开始, 逐步自减1, 直到统计量低于5%显著性水平. 这里的检验是对回归系数进行的检验
根据拟合好的模型, 只选取p[0]
即项的相关系数进行检验, 检验的方法是MacKinnon
, 得到对应p值, 进行判断, 并返回结果
使用方法参考.
使用方法参考.
检验方法: 通过序列本身的自相关系数的值, 判断指定lag
范围内的自相关系数集合是否都为0, 其中是人为指定的判断范围.
因此, Ljung-Box test假设时间序列是完全随机的, 各个值之间没有相关性, 完全独立, 因此原假设为:
其中是时间序列的长度. 这个统计量服从自由度为的分布. 因此对于显著性水平, 当时, 拒绝原假设, 否则接受原假设.