使用Facebook先知在具有多个时间序列的数据框中进行时间序列预测

时间:2018-12-18 07:25:21

标签: python pandas facebook-prophet

我有以下数据框:

             fid         via
2015-01-18  id_22207  0.275056
2015-01-30  id_22207  0.306961
2015-02-23  id_22207  0.285065
2015-02-24  id_22207  0.337570
2015-02-27  id_22207  0.311612
2015-01-18  id_22208  0.371765
2015-01-20  id_22208  0.405391
2015-02-11  id_22208  0.354052
2015-02-24  id_22208  0.421126
2015-03-15  id_22208  0.454406

我想使用此数据框通过Facebook的prophet库进行时间序列预测。该库中有没有办法使用此数据框?棘手的部分是我有多个fid值,并且对于每个fid,我在via列中都有多个日期的数据。我想对以下情况的via列进行预测。数据框:

2015-03-18  id_22209
2015-03-20  id_22209
2015-03-21  id_22209
2015-03-24  id_22209
2015-03-25  id_22209

1 个答案:

答案 0 :(得分:1)

当前,prophet不支持多元时间序列预测或VAR。最好的选择是根据fid列拆分数据框后,在循环中创建预测。

library(tidyverse)
library(prophet)

lapply(split(df, f= df$fid), function(x) {
    # Prophet expects columns to be ds, y
    x <- x %>% rename(y = via, ds = date)

    # Create prophet forecasts
    # ...
})

编辑

没有注意到这个问题被标记为Python。

unique_fid = df['fid'].unique()
for fid in unique_fid:
    temp_df = df.loc[df['fid'] == fid,['date', 'via']]
    # Prophet expects ds and y as columns
    temp_df.columns = ['ds', 'y']
    # Create prophet forecasts
    # ...