简体   繁体   English

使用统计模型的ZeroDivisionError带趋势的Holt简单预测

[英]ZeroDivisionError in using statsmodels Holt Simple Forecasting with Trend

I am trying to forecast some data with Holt's linear method. 我正在尝试使用Holt线性方法预测一些数据。
- created some data -创建了一些数据
- dividing it into train and test -将其分为训练和测试
- training model -训练模式
- forecasting -预测
- plotting -绘图

Works well unless I want to run program with 7-element training set. 除非我想运行包含7个元素的训练集的程序,否则效果很好。 Works if I divide data in every other way. 如果我以其他方式划分数据,则可以使用。

Using: windows10, Anaconda, Spyder, python3.7 使用:Windows10,Anaconda,Spyder,python3.7

from statsmodels.tsa.holtwinters import Holt
import matplotlib.pyplot as plt
import pandas as pd 

data= [50, 48, 47, 45, 43, 40, 38, 35, 33, 32, 30, 28, 27, 26, 25 ]
df= pd.DataFrame(data)

#          working       #      throwing error   
#    for 2<a<7 & 7<a<14  #        for a=7  ONLY
############################################################
df_train= df[:a]         #     df_train= df[:a]  
df_test=  df[a:]         #     df_test=  df[a:]   
model = Holt(df_train).fit(smoothing_level=1, smoothing_slope=1)  # this is throwing error
preted = model.forecast(steps= len(df_test))

plt.plot(df,'-o', preted, '--or')`

File "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\holtwinters.py", line 889, in fit optimized=optimized) 文件“ C:\\ ProgramData \\ Anaconda3 \\ lib \\ site-packages \\ statsmodels \\ tsa \\ holtwinters.py”,第889行,适合优化=优化)
File "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\holtwinters.py", line 594, in fit use_boxcox=use_boxcox, lamda=lamda, remove_bias=remove_bias) 文件“ C:\\ ProgramData \\ Anaconda3 \\ lib \\ site-packages \\ statsmodels \\ tsa \\ holtwinters.py”,行594,适合使用use_boxcox = use_boxcox,lamda = lamda,remove_bias = remove_bias)
File "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\statsmodels\\tsa\\holtwinters.py", line 735, in _predict aicc = aic + (2 * (k + 2) * (k + 3)) / (self.nobs - k - 3) 文件_predict aicc = aic +(2 *(k + 2)*(k + 3))中的文件“ C:\\ ProgramData \\ Anaconda3 \\ lib \\ site-packages \\ statsmodels \\ tsa \\ holtwinters.py”,行735 self.nobs-k-3)

ZeroDivisionError: division by zero ZeroDivisionError:被零除

This is problem with statsmodels version 0.9.0, There is no problem in newest statsmodels version 0.10.1. 这是statsmodels 0.9.0版的问题,最新的statsmodels 0.10.1版没有问题。 Additionally conda is installing version 0.9.0 by default. 另外,conda默认情况下安装的是0.9.0版。 To solve problem open Anaconda Prompt with Admin privileges and type: 要解决问题,请使用管理员权限打开Anaconda Prompt,然后键入:

conda remove statsmodels
conda install statsmodels=0.10.1

(it can delete some other package but you can install them later) (它可以删除其他一些软件包,但您可以稍后安装它们)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM