我正在构建时间序列模型。“预测”包中模拟()和预测()之间的区别
但是,我无法理解forecast
软件包中的simulate
函数和forecast
函数之间的区别。
假设我构建了arima模型,并且想用它来模拟未来值长达10年的模型。数据是每小时,我们有一年的数据。
当使用forecast
预测下一个1000步提前估计时,我得到了下面的图。
使用预测方法
然后我用的simulate
功能来模拟未来1000个模拟值,并得到了以下情节。
使用模拟方法
数据点红线是模拟数据点之后。
在后面的例子中,我用下面的代码来模拟未来的值。
simulate(arima1, nsim=1000, future=TRUE, bootstrap=TRUE))
其中arima1
是我训练的ARIMA模型,引导残差使用,因为模型残差不是非常正常的。
根据forecast
包中的定义,future=TRUE
意味着我们将根据历史数据模拟未来值。
谁能告诉我这两种方法有什么区别?为什么simulate()
给了我一个更现实的结果,但是预测值forecast()
在多次迭代后收敛于常数(simulate()
的结果没有太大波动)?
感谢您的回复! –