文章目录
数据
数据网站:National Aeronautics and Space Administration Goddard Institute for Space Studies
主要分析的是北美陆地表面温度。
训练数据:1990.1-2019.12.
测试数据:2020.1-2020.11
开始只选取了120即10的数据来进行分析,但是到最后发现模型有很多的波动之后,去问老师,老师说这是数据太少导致波动太大造成的,所以建议我们再多训练一些数据。就之后进行模型的定阶而言,至少需要三四百的数据。最后我们选取了360个数据,即30年的数据。
关于模型定阶所需要的阶数,最后展现的lags的选取,老师建议选择
l a g s = n lags=\sqrt{n} lags=n因为只有这样才会才合理。具体为什么合理,我弄明白之后,回来补充!后来又猜测,应该是大数定律。
流程
大致流程:
1、首先画出原始数据的时序图,
2、接着,查看原始时间序列是否稳定,不稳定的话,需要转化成稳定的时间序列;
如果不稳定,可采用一阶12步差分、指数平滑法、小趋势项法等来消除趋势项和季节项。一般,需要先消除趋势项,再消除季节项。因为趋势项如果不消除,会对后来季节项的去除有影响。
如果时序图呈指数形式增长,则还需要取对数,之后再尝试以上方法来消除趋势项和季节项。
如果方差和自协方差不平稳,使用Box-Cox变换,来使得数据变得平稳。
具体参考第2章 时间序列的预处理
3、尝试使用上面的几种去除趋势项和季节项的方法之后,需要检测你去除的效果。一般需要使用平稳性检验。经常使用的是单位根检验,即ADF检验,之后直接掉包即可。还有DF检验、PP检验。具体参考:单位根检验
4、白噪声检验。在进行平稳性的检验之后,还需要继续对消除趋势项和季节项之后的序列进行白噪声检验。因为一旦在进行两步处理之后,你的时间序列就没有了任何的信息,那就不需要分析了,因为我们已经将里面的信息提取完全了(也就是榨干净了)。即,原来的时间序列中只包含趋势项、季节项和随即向(白噪声)。分析终止。
5、若没有通过白噪声检验,则需要进行ARIMA的建模。可能还有其他的时间序列模型,但是我们在这里只分析ARIMA模型,即差分后的ARMA模型。
6、建模首先需要进行模型的定阶。定阶一般使用的是自相关图和偏自相关图。根据AR、MA、ARMA模型分别的自相关系数和偏自相关系数的拖尾性和截尾性来进行判断。
简单写一下
| 模型 | 自相关系数 | 偏自相关系数 |
|---|---|---|
| AR | 拖尾 | (p阶)截尾 |
| MA | (q阶)截尾 | 拖尾 |
| ARMA | 拖尾 | 拖尾 |
这里的判断,人工一般是找不到最优的。比如说,在进行MA模型定阶的时候,截尾最大的阶数是12,即查过95%置信区间的是12阶的,但是这里的12阶并不是最优的。所以我们需要使用借助 AIC和BIC准则来进行判断。
一般,当样本容量n比较小时,使用AIC;当样本容量n比较大时,使用BIC。这里,我们360个数据使用的时BIC 准则。
7、 进行模型定阶之后就可以将原始数据传入到SARIMAX模型中去训练,得到一个模型啦。得到模型之后,主要利用模型来进行预测。在python包中,这个模型(类)中有很多很有用的方法,残差和预测等等 。
流程分割
1 画图
首先读取数据,将原始数据的图画出来,肉眼观察是否是平稳时间序列。
如果是,则直接平稳性检验和白噪声检验步骤;没有则进行下一步。

2 季节项和周期项的去除
季节项和周期项的去除。
这里面有讲时间序列的预处理。主要介绍了三种办法:1差分,常见的一阶12步消除趋势项和季节项。2、Box-Cox变换。3、结合1和2来去除。
此外,我们课本上还提及到两种办法:1、小趋势项法,2、滑动平均法。
至于具体怎么实现,可以一个个关键字搜索学习。
我使用的方法1,一阶12步差分得到的图形如下:

3 平稳性检验
主要使用的是ADF,即单位根检验。
原假设 H 0 H_0 H0:存在单位根,即数据是不平稳的。
备择假设 H 1 H_1 H1:不存在单位根,数据平稳。
这里使用的检验方法一般是P-值检验,所以当p小于上面给出的在10%, 5%, 2.5%, 1%时,则拒绝原假设,平稳;否则,不拒绝原假设,数据不平稳。假设检验中的P值
关于原假设和备择假设
平稳性检验和白噪声检验
# 平稳性检验
from statsmodels.tsa.stattools import adfuller
result = adfuller(df.diff(1).dropna().diff(12).dropna())
# result = adfuller(no_season) # 与上面的等价
print(u'一阶12步差分序列的平稳性检验\n', result)
result:
一阶12步差分序列的平稳性检验
(-9.08927532353749, 3.863646256069488e-15, 14, 332, {
'1%': -3.4502011472639724, '5%': -2.8702852297358983, '10%': -2.5714292194077513}, -87.4608194311453)
看到 3.863646256069488e-15 << 0.01 or 0.05
p-value远小于0.01, 0.05
所以拒绝原假设,认为序列非白噪声,可以接着进行下一步。
4 白噪声检验
在消除趋势项(差分、指数平滑、或者小趋势法)之后,看是否是白噪声。
在消除季节项之后,需要进行白噪声检验。
原因:当你进行数据平稳化操作之后,如果是白噪声就不需要进行下面的分析了。即,处理之后所得数据无任何信息。
主要使用LB统计量,即使用Q函数。
H 0 : ρ 1 = ρ 2 = ⋯ = ρ k H_0: \quad \rho_1 = \rho_2 = \cdots =\rho_k H

本文详细介绍了对北美陆地表面温度数据进行时间序列分析的过程,包括数据预处理、平稳性检验、白噪声检验、ARIMA模型的构建和模型评价。通过差分和Box-Cox变换消除趋势和季节性,使用ADF检验和Ljung-Box检验确认数据稳定性。最终选用SARIMAX模型,并通过AIC/BIC准则确定模型阶数,对模型残差进行检验,确保其为白噪声。模型预测结果显示良好,MSE、MAE和R2-score体现了模型的预测能力。
最低0.47元/天 解锁文章
3万+

被折叠的 条评论
为什么被折叠?



