我倾向于像这样使用 fbprophet 来预测时间序列单变量:
import pandas as pd
from fbprophet import Prophet
import matplotlib.pyplot as plt
plt.style.use('fivethirtyeight')
stock = 'FB'
df = pd.read_csv('C:/Bla/' + stock + '.csv')
df['Date'] = pd.DatetimeIndex(df['Date'])
df = df.rename(columns={'Date': 'ds',
'Close': 'y'})
my_model = Prophet(
weekly_seasonality=True
, interval_width=0.95
)
my_model.fit(df)
future_dates = my_model.make_future_dataframe(periods=5, freq='B')
future_dates.tail()
forecast = my_model.predict(future_dates)
forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail()
my_model.plot(forecast, uncertainty=True)
plt.show()
我认为现在还可以使用多个自变量进行预测(使用 add_regressor?)。有人这样做吗?如果是这样,您能提供一些代码示例吗?让我们假设上述 df 中的自变量称为 X1。谢谢!
最佳答案
除非在拟合期间添加附加回归器,否则无法使用附加回归器进行预测。如果您想向模型添加回归量,您应该按照以下步骤操作(直接取自文档):
def nfl_sunday(ds):
date = pd.to_datetime(ds)
if date.weekday() == 6 and (date.month > 8 or date.month < 2):
return 1
else:
return 0
df['nfl_sunday'] = df['ds'].apply(nfl_sunday)
m = Prophet()
m.add_regressor('nfl_sunday')
m.fit(df)
future['nfl_sunday'] = future['ds'].apply(nfl_sunday)
forecast = m.predict(future)
fig = m.plot_components(forecast)
关于python - 在 fbprophet 模型中使用多个自变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52118803/