2016-12-02 10 views
2

私は時系列モデルの構築に取り組んでいます。"forecast"パッケージのsimulate()とforecast()の差

forecastパッケージのsimulateファンクションとforecastファンクションの違いはわかりません。

私はarimaモデルを構築し、10年間の将来価値をシミュレートするためにそれを使用したいとします。データは時間単位で、年間データがあります。

forecastを使用して次の1000ステップ先読み予測を予測すると、次のプロットが得られます。

enter image description here

使用して予測方法は、それから私は、次の1000のシミュレーション値をシミュレートするsimulate機能を使用して、次のプロットを得ました。赤い線は、データポイントをシミュレートされた後

シミュレーション方法を

enter image description here

データポイントを使用。

後者の例では、将来の値をシミュレートするために次のコードを使用しました。 arima1が私の訓練を受けたARIMAモデルであるモデルの残差は非常に正常でないため、ブートストラップ残差が使用されている

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

パッケージの定義では、future=TRUEは、過去のデータに基づいて将来の値をシミュレートすることを意味します。

この2つの方法の違いは誰にでも分かりますか? simulate()は私にはるかに現実的な結果を与えるのですが、forecast()からの予測値は数回の繰り返しの後で一定に収束します(結果は多くの変動はなくsimulate())。

答えて

2

シミュレーションは、このシリーズの将来のサンプルパスです。

ポイント予測は、将来のすべての可能なサンプルパスの平均です。したがって、ポイント予測は、通常、データよりもはるかに変動が少ない。

forecast関数は、将来のサンプルパスの推定変動を含むポイント予測(平均)および間隔予測を生成します。

ARIMAモデルは、スキューネスのためにこの時系列には適切ではありません。まず変換を使用する必要があります。

+0

返信いただきありがとうございます。 –

関連する問題