我正在使用statsmodels
指数平滑法进行时间序列分析。我正在尝试重现结果
https://www.statsmodels.org/devel/examples/notebooks/generated/exponential_smoothing.html
具有特定的dataframe
(与示例格式相同,但只有一个结果)。以下是代码行:
from statsmodels.tsa.api import ExponentialSmoothing, SimpleExpSmoothing, Holt
fit = ExponentialSmoothing(dataframe, seasonal_periods=4, trend='add', seasonal='mul', initialization_method="estimated").fit()
simulations = fit.simulate(5, repetitions=100, error='mul')
fit.fittedvalues.plot(ax=ax, style='--', color='green')
simulations.plot(ax=ax, style='-', alpha=0.05, color='grey', legend=False)
fit.forecast(8).rename('Holt-Winters (add-mul-seasonal)').plot(ax=ax, style='--', marker='o', color='green', legend=True)
但是,当我运行它时,我得到了错误
TypeError: __init__() got an unexpected keyword argument 'initialization_method'
但是当我检查 in 的参数时ExponentialSmoothing
,statsmodel
是initialization_method
其中之一,所以我不知道那里发生了什么。
继续前进,我initialization_method
从代码中的参数中删除ExponentialSmoothing
,然后在下面的行中出现另一个错误
AttributeError: 'ExponentialSmoothing' object has no attribute 'simulate'
再次,我去检查是否simulate
在最新版本中不被弃用,statsmodels
不,它仍然是一个属性。
我升级了statsmodels
,我升级了pip
,我仍然得到同样的错误。
那里发生了什么?
提前感谢您的帮助!