1

我有每月数据并将我的 y 转换为 log(y) 并使用一些额外的回归器来使用prophet model.我从 201601 到 202008 有 60 个数据点。

这是我的模式:

holidays = pd.DataFrame({
        "holiday":"New_Year",
        "ds": pd.to_datetime(["2015-11-30","2016-11-30","2017-11-30","2018-11-30","2019-11-30","2020-11-30"]),
        "lower_window":-15,
        "upper_window":90
    })
m = Prophet(interval_width=0.95,holidays=holidays)

for c in cols:
        m.add_regressor(c)

m.fit(data)
train_forecast = m.predict(data)

我训练和测试相同的数据,因为我只有 60 分。

现在谈到重要问题,我想将任何异常值/异常标记为未来几个月的早期预警(假设是 6 个月的预测)202009 to 202012

当前方法:我取 yhat 的均值和标准差,然后在这 60 个数据点上绘制第一条、第二条和第三条线。无论超出 3std,我都将其标记为预警。这是正确的方法吗?

问题 1:由于我采用了 interval_width=0.95,所以我对未来数据的预测是否总是落在预测值的 3 std.deviation 之内?在那种情况下,我永远不会有异常。

我也在许多博客中看到了这种方法:

y_original > forecasted['yhat_upper'] = 1
y_original< forecasted['yhat_lower']= -1

但是对于看不见的数据(6个月的未来)我不会有y_original权利??因此,该方法不适用于预测值。

问题 2:如何使用现有的 Prophet 模型来标记未来预测值的异常?

4

0 回答 0