我在Python中使用fbprophet进行时间序列预测,我想知道如何计算yhat
(预测)列。我使用了以下代码。
import quandl
import fbprophet
tesla = quandl.get('WIKI/TSLA')
tesla = tesla.reset_index()
tesla = tesla.rename(columns={'Date': 'ds', 'Adj. Close': 'y'})
tesla = tesla[['ds', 'y']]
prophet = fbprophet.Prophet()
prophet.fit(tesla)
future = prophet.make_future_dataframe(periods=365)
future = prophet.predict(future)
future
数据框包含以下列:
['ds', 'trend', 'trend_lower', 'trend_upper', 'yhat_lower', 'yhat_upper',
'seasonal', 'seasonal_lower', 'seasonal_upper', 'seasonalities',
'seasonalities_lower', 'seasonalities_upper', 'weekly', 'weekly_lower',
'weekly_upper', 'yearly', 'yearly_lower', 'yearly_upper', 'yhat']
我理解yhat
是预测,但它是trend, seasonal, seasonalities, weekly, yearly
还是其他的组合?
我尝试合并trend, seasonal, seasonalities, weekly, yearly
列,看看它们是否等于yhat
列,但它们不是:
future['combination'] = future['trend'] + future['seasonal'] + future['weekly'] + future['yearly'] + future['seasonalities']
print(future[['combination', 'yhat']].head())
combination yhat
0 57.071956 27.681139
1 55.840545 27.337270
2 53.741200 26.704090
3 51.874192 26.148355
4 47.827763 25.065950
我一直无法在文档中找到答案,但如果我错过了它就道歉。
答案 0 :(得分:2)
我是fbprophet
的初学者,但我想分享一下我的猜测。
即使我不确定它是否正确,下面的等式可能适用于先知的默认设置。
yhat = trend + seasonal
希望我的回答能帮到你!
答案 1 :(得分:1)
这似乎已经改变了。查看Github代码,yhat的计算如下
yhat =(趋势*(1 +乘数项)+加法项