时序序列预测与自回归模型的相关调研
最近在做这相关的研究,看了不少相关理论与研究,记录一下这几天的调研结果。
平稳性分析
- 平稳性检验:
- 检验平稳性:
- 平稳:格兰杰检验;
- 非平稳:协整检验;
说明:协整检验中每个序列要求为单整,单整通俗的说就是做一次差分之后为平稳序列的序列。
ADF检验平稳性
需要statsmodels库支持,安装:pip install statsmodels
。
from statsmodels.stats.diagnostic import unitroot_adf
unitroot_adf(sequence)
返回的值分别是:检验值、p-value、滞后阶数、自由度、(常数)显著性表
(-18.366072596009424, 2.2226297238330224e-30, 27, 3448, {‘1%’: -3.4322479625901536, ‘5%’: -2.8623786111734746, ‘10%’: -2.567216407968438}, -25430.320661028072)
非平稳序列的平稳方法–差分(神经网络结构中是通过残差连接实现的)
差分的方法获取平稳序列,一次不行就多次。但是,一旦差分其实我们丢失了原始序列的一些信息,而且往往很难从实际的意义上去解释差分后拟合的结果。
seq = seq[1:] - seq[:-1]
对残差进行异常值过滤(四分位数法)是个不错的滑动平均滤波方法。
# 四分位数滤波
def _diff_smooth(ts, timedelta=None):
if timedelta is None:
timedelta = lambda minutes: minutes
dif