python statsmodels.api,statsmodels.tsa.arima_model
免费学习推荐:python视频教程
导入必要包和模块
从科学计算导入统计数据导入熊猫作为警察局导入matplotlib.pyplot作为pltimport statsmodels.api作为钐从statsmodels.tsa.arima.model导入阿里马从statsmodels.graphics.tsaplots导入绘图_预测
PLT。RC params[ font。sans-serif ]=[ sim hei ]#用于正常显示中文标签PLT。RC params[轴。unicode _ MINUS ]=False #用于正常显示负号1.读取数据并画图
data=pd.read_csv(数据/客运量. csv ,index_col=0)data.index=pd .指数(sm。运输安全管理局。日期工具。dates _ from _ range( 1949 , 2008 )#将时间列改为专门时间格式,方便后期操作data.plot(figsize=(12,8),marker=o ,color=black ,ylabel=客运量)#画图#本文所使用的客流量时间序列数据:https://下载。csdn。net/下载/weixin _ 45590329/14143811
#时间序列折线图如下所示,显然数据有递增趋势,初步判断数据不平稳
2.平稳性检验
adfuller(data,regression= c )sm运输安全管理局。ad fuller(数据,回归= NC )sm。运输安全管理局。ad fuller(数据,回归=ct )进行三种形式的自动测向仪单位根检验,如部分结果所示,发现序列不平稳
3.对数据作一阶差分处理
diff=数据。差异(1)差异。dropna(原地=真)diff。plot(figsize=(12,8),marker=o ,color=black)#画图作出数据一阶差分后折线图,初步判断平稳
4.对一阶差分数据进行平稳性检验
adfuller(diff,regression= c )sm。运输安全管理局。ad fuller(diff,regression= NC )sm。运输安全管理局。ad fuller(diff,regression=ct )如图所示,说明序列平稳
5.确定ARIMA(p,d,q)阶数
fig=plt.figure(figsize=(12,8))ax1=fig . add _ subplot(211)fig=sm。图形。运输安全管理局。plot _ ACF(差异。价值观。squeeze(),lags=12,ax=ax1)#自相关系数图一阶截尾,决定MA(1)ax2=fig . add _ subplot(212)fig=sm。图形。运输安全管理局。plot _ pacf(diff,lags=12,ax=ax2)#偏相关系数图一阶截尾,决定AR(1)根据自相关系数图高级通信功能高级通信功能和偏自相关系数图PACF,将原始数据确定为ARIMA(1,1,1)模型
6.参数估计
模型=ARIMA(数据,顺序=(1,1,1))。fit()#拟合模型model.summary()#统计信息汇总#系数检验params=model.params#系数tvalues=model.tvalues#系数英语字母表中第二十个字母值bse=model.bse#系数标准误pvalues=model.pvalues#系数英语字母表中第十六个字母值#绘制残差序列折线图resid=model.resid#残差序列fig=plt.figure(figsize=(12,8))ax=fig . add _ subplot(111)ax=model。残油。plot(ax=ax)#计算模型拟合值适合=型号。predict(exog=data[[ TLHYL ]])http://www . Sina.com/
#8.1.检验序列自相关sm。统计数据。德宾_沃森(型号。残油。值)# DW检验:靠近2——正常;靠近0——正自相关;靠近4——负自相关#8.2.AIC和比克准则model.aic#模型的美国化学师学会(美国化学家协会)值model.bic#模型的比克值#8.3.残差序列正态性检验stats.normaltest(resid)#检验序列残差是否为正态分布#最终检验结果显示无法拒绝原假设,说明残差序列为正态分布,模型拟合良好#8.4.绘制残差序列自相关图和偏自相关图fig=plt.figure(figsize=(12,8))ax1=fig . add _ subplot(211)fig=sm。图形。运输安全管理局。plot _ ACF(resid。价值观。squeeze(),lags=12,ax=ax1)ax2=fig . add _ subplot(212)fig=sm。图形。运输安全管理局。plot _ pacf(resid,lags=12,ax=ax2)#如果两图都零阶截尾,这说明模型拟合良好7.模型检验
#预测至2016年的数据。由于阿里马模型有两个参数,至少需要包含两个初始数据,因此从2006年开始预测predict=model.predict(2006 , 2016 ,dynamic=True)print(predict)#画预测图及置信区间图fig,ax=plt.subplots(figsize=(10,8))fig=plot_predict(model,start=2002 ,end=2006 ,ax=ax)legend=ax.legend(loc=左上角http://www . Sina.com/8.预测大量免费学习推荐,敬请访问
以上就是学习使用大蟒的统计模型模块拟合阿里马模型的详细内容,更多请关注盛行信息技术软件开发工作室其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。