Python如何进⾏Arima建模?
ARIMA模型(英语:Autoregressive Integrated Moving Average model),差分整合移动平均⾃回归模型,⼜称整合移动平均⾃回归模型(移动也可称作滑动),是时间序列预测分析⽅法之⼀。Arima定阶⽐较困难,Python中的auto_arima可以帮助我们实现⾃动定阶。
⽅法/步骤
1
⾸先,导⼊相应auto_arima,没有则要先安装pyramid。
from pyramid import auto_arima
python新手代码你好
import pandas as pd
2
然后,输⼊数据,可根据实际情况读取数据⽂件。
data=pd.DataFrame({'gdp':[1.21,1.34,1.47,1.66,1.96,2.29,2.75,3.55,4.59,5.1,6.09,7.55,8.53,9.57,10.44,11.02,11.14,12.14,13.61],
'year':[2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018]})
data=data.set_index('year')
print("data",data)
3
对数据进⾏分割,按照7:3的⽐例分割训练集和测试集
train=data[:int(0.7*len(data))]
print("训练集",train)
test=data[int(0.7*len(data)):]
print("测试集",test)
# #绘图查看训练集合测试集
import matplotlib.pyplot as plt
train.plot()
test.plot()
plt.show()
4
对训练集数据进⾏模型训练。
model=auto_arima(train,trace=True,error_action="ignore",suppress_warnings=True) model.fit(train)
代码中trace表⽰是否显⽰尝试过的模型,这些选择TRUE,可以看到auto_arima的⾃动定阶过程。
结果中根据⾃动⽐较,到AIC最⼩时对应的ARIMA(p,d,q)参数值,这⾥得到的结果是ARIMA(2,2,1)。如图所⽰。
5
利⽤刚才建⽴的ARIMA(2,2,1)模型,对测试集数据进⾏预测。
gdp_pre=model.predict(n_periods=len(test))
gdp_pre=pd.DataFrame(gdp_pre,index=test.index,columns=["Prediction"])
print("forecast:",gdp_pre)
#绘制拟合曲线
plt.plot(train,label="Train")
plt.plot(test,label="test")
plt.plot(gdp_pre,label="Prediction")
plt.legend()
plt.show()
从拟合图可以看出,Arima模型对短期的预测能⼒较好,但是在较远的时期则具有⼀定偏差。
6
评价模型,计算均⽅根误差。
from math import sqrt
ics import mean_squared_error rms=sqrt(mean_squared_error(test,gdp_pre)) print("均⽅根误差rms:",rms)
根据结果可知,本次建模的均⽅根误差为3。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。