gpt4 book ai didi

r - "forecast"包中simulate()和forecast()的区别

转载 作者:行者123 更新时间:2023-12-04 12:19:57 30 4
gpt4 key购买 nike

我正在构建时间序列模型。

但是,我无法理解 simulate 之间的区别。函数和 forecast forecast 中的函数包裹。

假设我建立了一个 arima 模型并想用它来模拟长达 10 年的 future 值。数据是每小时的,我们有一年的数据。

使用时forecast为了预测下一个提前 1000 步的估计,我得到了以下图。

使用预测方法

enter image description here

然后我用了 simulate函数来模拟接下来的 1000 个模拟值并得到以下图。

使用模拟方法

enter image description here

红线后的数据点为模拟数据点。

在后一个示例中,我使用以下代码来模拟 future 值。

simulate(arima1, nsim=1000, future=TRUE, bootstrap=TRUE))

哪里 arima1是我训练好的 arima 模型,使用 bootstrap 残差是因为模型残差不是很正常。

根据 forecast 中的定义包裹, future=TRUE意味着我们正在根据历史数据模拟 future 值。

谁能告诉我这两种方法有什么区别?为什么 simulate()给我一个更现实的结果,但来自 forecast() 的预测值只是在几次迭代后收敛到一个常数(来自 simulate() 的结果没有太大波动)?

最佳答案

模拟是该系列 future 可能的样本路径。

点预测是所有可能的 future 样本路径的平均值。因此,点预测通常比数据的可变性要小得多。
forecast函数产生点预测(平均值)和区间预测,其中包含 future 样本路径中的估计变化。

顺便说一下,由于偏度,ARIMA 模型不适合这个时间序列。您可能需要先使用转换。

关于r - "forecast"包中simulate()和forecast()的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40924862/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com