我正在構建時間序列模型。「預測」包中模擬()和預測()之間的區別
但是,我無法理解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()
的結果沒有太大波動)?
感謝您的回覆! –