python - 在时间序列预测中使用 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:仅支持一维数据
解决方案
最好能举个数据例子。不过,我自己创建了一个小数据示例。
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.Series
Stock 的输入:
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')
推荐阅读
- python - 同一行不同列上的Python Tkinter文本不对齐
- docker - Dockerfile 映像构建:Dockerfile 中的“RUN wget”导致部分文件下载,但构建完成且没有错误
- listview - Xamarin,ListView,如何从 ListView 中的复选框中获取值?
- javascript - 我尝试了一些ajax请求,但它不起作用
- python - 返回一个给出错误的类的实例
- sql - Get first day of yyyyMM format
- javascript - 使用 React Hooks 在 React Native 中按设定的时间间隔自动刷新 JSON 数据
- javascript - 创建 discord.js 频道后获取 ID
- c - 变量“DM”周围的堆栈已损坏
- wdk - 微过滤器和 IRP_MJ_DIRECTORY_CONTROL 操作后