目录
平稳序列
判断样本的平稳性
时间序列模型
参数选择
实验代码
1. 平稳序列
时间序列是一列观测值
的集合, 其中每个观测值是在时段
观测所得(
是自然数 ). 给定时间序列
, 如果对任意的
, 它满足下列条件:
i.
ii.
iii.
我们把它叫做(弱)平稳(weakly stationary)序列.(下文我们简称平稳序列.)
通俗地讲, 平稳序列的期望, 方差, 协方差不随时间变化. 例如,
服从同一个分布时, 它是平稳的.
例1 下图中的时间序列由
生成. 从直观上看, 这个序列是"平稳的".
Fig1. 平稳的时间序列
例2 下图的中的时间序列由
生成, 其中
,
. 它起初有明显地增长, 然后趋于平稳. 利用ADF检验(详情见下文), 我们发现该序列是平稳的(p-value < 0.01).
Fig2. 平稳的时间序列
Remark 弱平稳性的"弱"主要体现在时间序列在全局上是平稳的, 即,时间序列局部是波动的,但整体上看是平稳的, 或者随着时间的变化其样本的均值收敛.
2. 判断样本的平稳性
我们用统计学中假设检验的方法来判断样本的平稳性. 常用的是Augmented Dickey-Fuller(ADF)检验
Null Hypothesis
: 样本中存在unit root
, 则意味着样本是非平稳的.
Alternate Hypothesis
: 样本中不存在unit root. 如果拒绝
, 则意味着样本是平稳的.
在显著水平
的条件下, 我们可以通过计算p-value来接受或者拒绝
:
: 接受
.
: 拒绝
.
Python3中statsmodels.tas.stattools中的adfuller函数
from statsmodels.tsa.stattools import adfuller
def test_stationarity(data, alpha=0.05, print_detail=True):
""