【问题标题】:Negative values in time series forecast时间序列预测中的负值
【发布时间】:2019-07-31 10:11:04
【问题描述】:

我正在尝试在 python 中使用 ARIMA 对 136 年的月降雨量数据集执行单变量时间序列预测。

我的数据集是这样的:

年降雨量

2000-01-01 0

2000-02-01 128.2

2000-03-01 0

2000-04-01 289.3

。 . .

我有两个问题。

1) 我的预测结果有负值,尽管训练集中没有,而且从逻辑上讲降雨值不应该是负值。我的原始数据图如下。

下面是测试数据和预测值的图表。如您所见,预测值的红色曲线延伸到 0 以下。

2) 由于我有月度数据,因此下个月某些行的降雨量从 0 直接变为高值,在这种情况下,当前值不依赖于之前的观测值,这是自回归。这是导致问题的原因并且不适合我吗?我已经尝试使用年度数据,但这也不适合,并且使用季度频率会中断我的数据集区域的实际季风周期。

【问题讨论】:

  • 这和 Python 有什么关系?对我来说,这似乎是一个关于统计的问题
  • 我正在使用 Python 实现它,因此任何有助于解决该问题的 python 代码 sn-ps 都会很有用。但是,你是对的。我已将统计信息添加到我的标签中。

标签: python statistics time-series arima


【解决方案1】:

模型会给出最好的猜测。

它只是根据观察到的输入推断出一个负预测值。这就是“外部逻辑”的用武之地。只需将预测传递给将负值替换为 0 的函数即可。这是一种常见做法。

就这么简单:

df[df < 0] = 0

【讨论】:

    猜你喜欢
    • 2020-04-30
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 2015-05-19
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多