python最简单的时间序列预测,python 时间序列模型

  python最简单的时间序列预测,python 时间序列模型

  为什么要用Python?经典的Python机器学习库Scikit-learn,没有内置用于时间序列分析的API,但是Python也有时间序列模型,主要是statsModels的tsa模块,ARMA,ARIMA等算法。此外,在模型建模所需的一系列判别操作和检查中,还提供了平滑度检查、白噪声检查、是否有差异(熊猫库中有差异方法)、AIC和BIC模型的步长确定等方法和功能。

  导入模块

  import panda aspportnumpyasnpimportmatplotlib。pyplotportstatmodels。apiassmfromstatmodels。graphics.api导入6是时序图数据. plot一家餐厅的销售数据=pd.read _ excel (Timelist.xlsx ,index_col= date )。

  稳定性检查:

  从图中可以看出,时间序列是不稳定的,但是否稳定也可以通过adf检查或Kpss检查来判断。

  from stats models . TSA . stattoolsportfuller,kpssADF=adfuller(data[销售数量])# print)df test)ADF out=PD . ser rer("暂停的观察次数")print (ADF输出(KPSS测试=KPSS))

  结果表明,adf检测到的P值远大于0.05,而KPSS检测到的P值与0.05相差不大,可以判断该时间序列是不稳定的。ADF检测:

  静态测试1.813771

  p值0.998376

  滞后用户10.000000

  KS检验:(0.4503223095873123,0.05546452172960678,10,{10%: 0.347, 5%: 0.463, 2.5%: 0.574)

  差分处理

  对不稳定数据进行处理,并进行差分处理。

  Diff1=data.diff(1) #主差异处理diff 1=diff 1 . dropna))diff 1 . columns=[][差异销售]

  差异后,检查平滑度。

  Print ("ADF检测差异后的稳定性")ADF=ADfuller) diff1)("差异销售"(print) ADF2))))))))))))。

  检测结果表明,p值为0.022,小于0.05,差值后序列稳定(-3.5656236723537,0.026744048798,0,35,(1%):-3。56666.76667676667

  白噪声检测,结果:[统计,p值]

  Fromstatsmodels。统计数据。诊断ImportCORR _ LjungboxPrint(白噪声检测结果:,acorr_ljungbox) diff1,lags=1))

  白噪声检测结果表明,0.00077的P值远小于0.05,因此差分序列是稳定的非白噪声序列。白噪声检测结果:(array([11.30402222]],array) [0.0077339])

  模型步骤

  1)根据序列的自相关和偏自相关特性确定灰度。

  fromstatsmodels . graphics . tsaplotsportplot _ ACF,plot_pacf#一阶差分的时间序列的均值和方差几乎是稳定的,所以差分数d可以设为1。#自相关图和偏相关图plot _ acf (diff1)。show () plot _ acf (diff1)。show())。

  一阶差分后序列的自相关图

  一阶差分后序列的偏自相关图

  2)通过相对最优的模型辨识,得到bic信息最少的模型阶数。

  from stats models . TSA . ARIMA _ model import # step,一般p,q的最大值为数据长度的十分之一qmax=int(len(data)/10)qmax=int(len)data)/10)BIC _矩阵=[] forpinrange) pmax1q)。适合(。bic)除外:tmp . append(none)BIC matrix . append。

  计算出的BIC数据是432。46360 . 38686868686

  423.628276 426.073601楠楠

  楠楠

  430.317524楠楠436.334434343436

  BIC的p和q的最小值是0和1。

  建立ARIMA (0,1,1)模型

  模型=ARIMA(数据,(0,1,1))。适合)))))。

  模型检查

  需要检查模型检测的残差是否为白噪声序列,然后才能进行预测。

  Resids=model.resid # residual,#表示残差是纯随机序列,即白噪声序列print( residual的白噪声检测结果:,acorr_ljungbox(resids,lags=1))要求检测残差独立性,durbin_watson是print(Durbin_Watson检测结果)和sm。统计数据。

  检测结果如下:白噪声检测的P值为0.95,残差为白噪声,durbin_watson检测结果为1.973,2附近表示满意残差独立,qq图显示正态分布残差的白噪声检测结果:(arrarason

  durbin_watson试验的结果:19960.688686866617

  现在,您可以使用训练好的模型进行预测。

  Print(model.forecast(5))预测5天的返回结果:预测结果、标准误差、置信区间(array ([266288,2023))。50866.68668686661

  5073.78819955]、

  数组([73.08574135、142 . 68322、187、223 . 22236736767

  254.95712673]、

  数组([ 4730.72083205,5017.2116737 ],[ 4644.96626651,5202.87721258 ]),

  [ 4606.29994008,5341.45451235 ],[ 4585.18710806,5462.4783177 ],

  [ 4574.08141355,5573.49498555 ] )

  PRED=模型。预测(2015 . 2 . 7),)2015 . 2 . 15),dynamic=true,typ=levels )预测的时间段是2015-02-074873。

  2015-02-08 4923.921740

  2015-02-09 4973.877226

  2015-02-10 5023.832713

  2015-02-11 5073.788200

  2015-02-12 5123.743686

  2015-02-13 5173.699173

  2015-02-14 5223.654660

  2015-02-15 5273.610146

  频率:D、数据类型:float64

  预测趋势图

  fig,ax=PLT . subplots(ax=data . loc(2015/1/20(:)。plot)ax)fig=model . plot _ predict())ax

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • ,,Python中利用LSTM模型进行时间序列预测分析的实现
  • 时间序列adf检验怎么判断平稳性,
  • python时间序列模型,python时间序列预测代码
  • 用python实现ARIMA时间序列预测实例,python时间序列预测的方法
  • python时间序列分析模块,用python实现ARIMA时间序列预测实例
  • 时间序列模型用于哪种预测,时间序列预测模型实验报告
  • 时间序列分析难不难,时间序列分析问题
  • 基于lstm的时间序列预测,基于cnn的时间序列预测模型
  • Eviews时间序列模型,时间序列回归模型步骤
  • 时间序列分析基于r期末考试,时间序列分析选择题
  • 时间序列预测的基本前提,简述常用的几种时间序列预测方法
  • 时间序列的多元线性回归模型,时间序列的经典线性回归模型的基本假定是什么
  • adf检验 python,如果时间序列zt经过adf检验
  • stata时间序列数据处理,时间序列数据怎么用stata做回归分析
  • 时间序列分析及其应用-基于R语言实例(原书第4版),时间序列分析r语言答案
  • 留言与评论(共有 条评论)
       
    验证码: