【发布时间】:2021-12-24 18:45:30
【问题描述】:
假设我每年观察一次数据,并且我需要仅根据时间序列中的单变量历史观察得出最佳当前估计值。
| date | id | value |
|---|---|---|
| 2005-12-31 | ABC | 3150000 |
| 2006-12-31 | ABC | 5970000 |
| 2007-12-31 | ABC | 6640000 |
| 2008-12-31 | ABC | 6390000 |
| 2009-12-31 | ABC | 7130000 |
| 2010-12-31 | ABC | 7270000 |
| 2011-12-31 | ABC | 7030000 |
| 2012-12-31 | ABC | 7360000 |
| 2013-12-31 | ABC | 7470000 |
| 2014-12-31 | ABC | 7810000 |
| 2015-12-31 | ABC | 8690000 |
| 2016-12-31 | ABC | 8910000 |
| 2017-12-31 | ABC | 2820000 |
| 2018-12-31 | ABC | 4380000 |
| 2019-12-31 | ABC | 2720000 |
| 2020-12-31 | ABC | 2480000 |
| 2021-03-31 | ABC | w |
| 2021-06-30 | ABC | x |
| 2021-09-30 | ABC | y |
| 2021-12-31 | ABC | z |
我的想法是拟合 ARIMA 模型,然后在 ARIMA 模型的状态空间表示上使用卡尔曼滤波器来得出对下一次观察的最佳估计。
-
假设我不想只预测下一个年度数据点,而是得出季度估计值(w、x、y、 z),我的估计越远离最后的真实观察,就越不确定。有没有办法解决这个问题,你会怎么做?
-
我如何将预测的不确定性整合到估计中,离最后的真实观察越远?
-
ARIMA + KF 是解决这个问题的最合适的方法吗,还是您能想到其他解决问题的方法?
我对用 R 或 Python 解决这个问题漠不关心。
感谢您分享您的想法。
这是我的数据集:
structure(list(date = c("2005-12-31", "2006-12-31", "2007-12-31",
"2008-12-31", "2009-12-31", "2010-12-31", "2011-12-31", "2012-12-31",
"2013-12-31", "2014-12-31", "2015-12-31", "2016-12-31", "2017-12-31",
"2018-12-31", "2019-12-31", "2020-12-31", "2021-03-31", "2021-06-30",
"2021-09-30", "2021-12-31"), id = c("ABC", "ABC", "ABC", "ABC",
"ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC",
"ABC", "ABC", "ABC", "ABC", "ABC", "ABC", "ABC"), value = c("3150000",
"5970000", "6640000", "6390000", "7130000", "7270000", "7030000",
"7360000", "7470000", "7810000", "8690000", "8910000", "2820000",
"4380000", "2720000", "2480000", "w", "x", "y", "z")), class = "data.frame", row.names = c(NA,
-20L))
【问题讨论】:
标签: python r forecasting arima kalman-filter