Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何修复Python中statsmodels的Holt和Holt Winters函数中的“TypeError”_Python_Statsmodels_Holtwinters - Fatal编程技术网

如何修复Python中statsmodels的Holt和Holt Winters函数中的“TypeError”

如何修复Python中statsmodels的Holt和Holt Winters函数中的“TypeError”,python,statsmodels,holtwinters,Python,Statsmodels,Holtwinters,我使用这样的数据 data = [253993,275396.2,315229.5,356949.6,400158.2,442431.7,495102.9,570164.8,\ 640993.1,704250.4,767455.4,781807.8,776332.3,794161.7,834177.7,931651.5,\ 1028390,1114914] 然后,我导入statsmodels并使用Holt的方法 将matplotlib.pyplot作为plt导入 从statsmodels.ts

我使用这样的数据

data = [253993,275396.2,315229.5,356949.6,400158.2,442431.7,495102.9,570164.8,\
640993.1,704250.4,767455.4,781807.8,776332.3,794161.7,834177.7,931651.5,\
1028390,1114914]
然后,我导入statsmodels并使用Holt的方法

将matplotlib.pyplot作为plt导入 从statsmodels.tsa.Holt导入指数平滑、SimpleExpSmoothing、Holt 霍尔特法 fit1=Holtdata。fitsmoothing_level=0.8,smoothing_slope=0.2,optimized=False l1,=plt.plotlistfit1.fittedvalues+listfit1.forecast5,标记='o' fit2=Holtdata,指数=真。fitsmoothing_level=0.8,smoothing_slope=0.2,optimized=假 l2,=plt.plotlistfit2.fittedvalues+listfit2.forecast5,marker='o' fit3=孔数据,阻尼=真。fit3=平滑水平=0.8,平滑斜率=0.2 l3,=plt.plotlistfit3.fittedvalues+listfit3.forecast5,marker='o' l4,=plt.plotdata,标记='o' plt.legendhandles=[l1,l2,l3,l4],labels=[Holt的线性趋势,指数趋势,加性阻尼趋势,'data',loc='best',prop={'size':7} 节目 fit2中引发了异常

-------------------------------------- TypeError回溯最近一次呼叫last 在里面 3 l1,=plt.plotlistfit1.fittedvalues+listfit1.forecast5,标记='o' 4. -->5 fit2=Holtdata,指数=真 6 fit2.fitsmoothing_level=0.8,smoothing_slope=0.2,optimized=False 7 l2,=plt.plotlistfit2.fittedvalues+listfit2.forecast5,marker='o' g:\competition\venv\lib\site packages\statsmodels\tsa\holtwiners.py in\uuuuu init\uuuu self,endog,指数,阻尼 851定义初始自我,结束,指数=假,阻尼=假: 852趋势='mul'如果指数,则为'add' ->853超高压,自启动,趋势=趋势,阻尼=阻尼 854 855 def fitself,平滑度=无,平滑度=无,阻尼度=无,优化度=真: g:\competition\venv\lib\site packages\statsmodels\tsa\holtwiners.py in\uuuuuu init\uuuu self、endog、趋势、潮湿、季节、季节、时段、日期、频率、缺失 389 self.trending=趋势在['mul','add'] 390自调味料=季节性['mul','add']
->391如果self.trend=='mul'或self.self.sequential=='mul'和endog我对这个库不是很有经验,但它似乎想要一个系列而不是数据列表。引入pandas.pd并将数据转换为pd.系列:

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

data = [253993,275396.2,315229.5,356949.6,400158.2,442431.7,495102.9,570164.8,\
640993.1,704250.4,767455.4,781807.8,776332.3,794161.7,834177.7,931651.5,\
1028390,1114914]

series = pd.Series(data)

# Holt's Method
fit1 = Holt(series).fit(smoothing_level=0.8, smoothing_slope=0.2, optimized=False)
l1, = plt.plot(list(fit1.fittedvalues) + list(fit1.forecast(5)), marker='o')

fit2 = Holt(series, exponential=True).fit(smoothing_level=0.8, smoothing_slope=0.2, optimized=False)
l2, = plt.plot(list(fit2.fittedvalues) + list(fit2.forecast(5)), marker='o')

fit3 = Holt(series, damped=True).fit(smoothing_level=0.8, smoothing_slope=0.2)
l3, = plt.plot(list(fit3.fittedvalues) + list(fit3.forecast(5)), marker='o')

l4, = plt.plot(series, marker='o')
plt.legend(handles = [l1, l2, l3, l4], labels = ["Holt's linear trend", "Exponential trend", "Additive damped trend", 'data'], loc = 'best', prop={'size': 7})
plt.show()

你是想接受答案还是什么,这样我就可以得到分数了?对不起,我刚刚看到了。谢谢。