首页 > 解决方案 > 在时间序列预测中使用 SimpleExpSmoothing 时出错

问题描述

from statsmodels.tsa.api import ExponentialSmoothing, SimpleExpSmoothing, Holt

fit1 = SimpleExpSmoothing(train_df).fit(smoothing_level=0.2,optimized=False)

fcast1 = fit1.forecast(4).rename(r'$\alpha=0.2$')

fcast1.plot(marker='o', color='blue', legend=True)
fit1.fittedvalues.plot(marker='o',  color='blue')

我的数据框 train_df 有两列,第一列是股票价格,第二列是序列号(如 1,2,3...)

在这里,我试图使用指数平滑来预测这些股票的价值

这是错误

NotImplementedError:仅支持一维数据

标签: pythontime-seriessmoothingforecast

解决方案


最好能举个数据例子。不过,我自己创建了一个小数据示例。

from statsmodels.tsa.api import ExponentialSmoothing, SimpleExpSmoothing, Holt
import pandas as pd

以下内容按照您的描述创建一个 DataFrame:

train_df = pd.DataFrame({'stock':[80,90,105,130,160,200], 'number':[1,2,3,4,5,6]})

但是,您需要作为pd.SeriesStock 的输入:

train_ps = pd.Series(train_df['stock'])

最后,你把train_ps你的模型:

fit1 = SimpleExpSmoothing(train_ps).fit(smoothing_level=0.2,optimized=False)

fcast1 = fit1.forecast(4).rename(r'$\alpha=0.2$')

fcast1.plot(marker='o', color='blue', legend=True)
fit1.fittedvalues.plot(marker='o',  color='blue')

推荐阅读