在先前学习的使用ARIMA预测时间序列的文章中,对于如何确定参数p、d、q还是存在一些疑问,今天学习的这篇文章主要讲解的是如何确定p、d、q参数。
实验数据:链接: https://pan.baidu.com/s/14Nt8aU3NbgzBt2lA_jmB6Q 提取码: 8rbt
读取并观察数据
import pandas as pd
import matplotlib.pyplot as plt
import statsmodels.api as sm
data = pd.read_csv("arima-demo.csv",parse_dates=['date'],index_col='date')
print(data.head())
data.plot(figsize=(12,6))
从上图可知,存在一定的增长趋势。
时间序列的差分d
ARIMA 模型对时间序列的要求是平稳型。因此,当你得到一个非平稳的时间序列时,首先要做的即是做时间序列的差分,直到得到一个平稳时间序列。如果你对时间序列做d次差分才能得到一个平稳序列,那么可以使用ARIMA(p,d,q)模型,其中d是差分次数。
1阶差分:
diff1 = data.diff(1)
diff1.plot(figsize=(12,6))
目测已经平稳,再来看看2阶差分的效果:
diff2 = data.diff(2)
diff2.plot(figsize=(12,6))
可以看到二阶差分侯差异不大,所以这里d设置为1即可。
阶层 p 和阶数 q
现在我们已经得到一个平稳的时间序列,接来下就是选择合适的ARIMA模型,即ARIMA模型中合适的p,q。
第