from timemachines.skatertools.data import hospital_with_exog
from timemachines.skatertools.visualization.priorplot import prior_plot
import matplotlib.pyplot as plt
k = 11
y, a = hospital_with_exog(k=k, n=450, offset=True)
f = fbprophet_exogenous
err2 = prior_plot(f=f, k=k, y=y, n=450, n_plot=50)
print(err2)
plt.show()
9条答案
按热度按时间p4rjhz4m1#
您可以使用add_regressor方法在Prophet中添加其他变量。
例如,如果我们想预测变量
y
,也使用附加变量add1
和add2
的值。让我们首先创建一个示例df:
并拆分训练和测试:
在训练预测器之前,我们可以添加使用额外变量的回归器。这里
add_regressor
的参数是训练df中附加变量的列名。然后,predict方法将使用附加变量来预测:
请注意附加变量应具有未来(测试)数据的值。如果你没有它们,你可以先用单变量时间序列预测
add1
和add2
,然后用add_regressor
和预测的add1
和add2
作为附加变量的未来值来预测y
。从文档中,我了解到t +1的
y
预测将仅使用t +1时add1
和add2
的值,而不是它们在t,t-1,...,t-n时的值,因为它使用y
。如果这对你很重要,你可以用滞后创建新的附加变量。另请参见this notebook,其中有一个使用天气因素作为自行车使用量预测的额外回归因子的示例。
pjngdqdw2#
要对多个因变量进行预测,您需要使用向量自回归来实现该时间序列。
在VAR模型中,每个变量都是其过去值和所有其他变量过去值的线性函数。
有关VAR的更多信息,请访问https://www.analyticsvidhya.com/blog/2018/09/multivariate-time-series-guide-forecasting-modeling-python-codes/
vddsk6oq3#
我很困惑,如果Prophet以多元方式工作,似乎没有协议,请参阅github问题here和here。根据一些评论,Quise的答案和一个不错的youtube教程,你可以在某种程度上围绕多元功能做一个工作,请看这里的视频:https://www.youtube.com/watch?v=XZhPO043lqU
waxmsbnn4#
这可能有点晚了,但是如果你在2019年阅读这篇文章,你可以使用LSTM,Keras实现多变量时间序列。
omqzjyyz5#
您可以使用timemachines包用一行代码完成此操作,该包将prophet Package 在函数形式中。请参见prophet skaters。下面是一个用法示例:
请注意,您可以将k设置为您想要的任何值。这是要使用的前几步。现在要小心,因为当先知说多元时,他们实际上指的是预先已知的变量(a参数)。它并没有真正解决多变量预测。但是你可以使用facebook的skater_recursive来使用prophet来预测外生变量,然后再预测你真正关心的那个变量。
说了这么多,我强烈建议你阅读先知的critique,并在愤怒地使用它之前检查它在Elo ratings上的位置。
8wigbo566#
原来问题的答案是肯定的!
这里是一个链接到特定的神经预言家文档,其中有几个如何使用多变量输入的例子。对于neuralprophet,这些被称为“滞后回归”。
https://neuralprophet.com/html/lagged_covariates_energy_ercot.html
w8rqjzmb7#
是的,我们现在确实可以应用多元时间序列预测,这是解决方案。https://medium.com/@bobrupakroy/yes-our-favorite-fbprophet-is-back-with-multivariate-forecasting-785fbe412731
zd287kbt8#
VAR是一个纯粹的计量经济学模型,但在阅读了大量关于预测的文献后,我发现VAR也无法捕捉趋势。因此,我们没有一个好的预测,但VAR仍然是多变量分析的主力模型。我认为prophet不是一个多变量的,而是使用ML模型,如RF,XGBOOST,NNET。但请记住,如果你想捕捉趋势,那么要确定哪种模式更好。否则就去深度学习
yizd12fk9#
我在阅读第一个问题的所有答案。我也有类似的问题;我有一个用于时间序列预测的多变量数据,我的数据结构如下所示:data Head of Temp, Humidity and PM25 for DATATIME (each 30s)
这可能是最好的策略或方法(propheta,LSTM或Keras),并向我展示运行项目的初始代码行。
谢谢!!!