X-13ARIMA-SEATSのバックテスト

予測精度について、ユーザーから多くの質問を耳にします。予測値と実際の値は密接に追跡するのか?トラッキングエラーはどの程度か?

もし過去にさかのぼるとすれば、その時点までに入手可能なデータのみを用いてモデルをキャリブレーションし、サンプル外予測を行うことができる。そして、異なる日付についてこの手順を繰り返す。

バックテストプロセスの終わりには、予測値の時系列を生成し、それを実際の時系列との関連で分析することができる。そうすれば、あらゆる種類の統計を計算することができる。

この記事は、あるユーザーからの具体的なサポートに関する問い合わせに端を発している:

“X-13ARIMA-SEATSによる季節調整値と最終値(非季節調整値)の予測のバックテストはどのように行えばよいですか?”

バックテストを実施するには、入力データセットだけが異なる複数のX13ASシナリオを実行する必要がある。

このチュートリアルでは、米国労働省(DOL)の1970年1月から2022年6月までの非農業部門雇用者数の月次データを使用する。

  1. X13 ウィザードを使用して、完全なデータセットを用いて X13 モデルを構築します。ウィザードは、モデル仕様(JSONテキスト)を指定したワークシートに書き込みます。
    X13ウィザードを使用してX13モデルを構築します。出力されるのは、JSONテキストによるモデル仕様です。
  2. 次に、空の列に、予測を行いたい期間をすべて列挙する。
    月」データ列は、予測したいすべての期間で構成される。
  3. データセットの開始からステップ(2)で指定した各期間までのデータ点数を計算する。
    データセットの開始から「月」列で指定された期間までのデータポイントを計算する。
  4. (1)のX13AS(.)式を、(3)の列の隣の別の列にコピーする。
    各予測期間について X13 の計算式を使用する。
  5. 入力データのセル範囲を NxSubset(.) の呼び出しで置き換える。NxSubset関数は第1引数として完全なデータセットを取るが、終了オフセットはステップ(3)からの列で計算される。
    NxSubset関数(黄色で強調表示)を使って、第1引数から第612引数までのデータセットを選択する(F10)。

    注:

    をご参照ください。 NxSubset(.) リファレンスマニュアル のページで詳細をご覧ください。

  6. さて、X13AS(.)関数は、ここまでのデータだけを使って新しいシナリオを構築する。
  7. X13ASCOMP(.) および X13ASFORE(.) 関数を使用して、この行の日付のコンポーネントまたは予測値を照会します。
    X13ASFORE(.)関数を使用して、隣接する日付の予測値を取得する。
  8. エクセルの組み込み関数VLOOKUP(.)を使って、各行の実際の値を照会する。
    VLOOKUP(.)関数を使用して、隣接する日付の実際のデータを取得する。
  9. 一番上の行の数式を、テーブルの残りの部分にコピーする。これにより、一連のX13モデルの計算が開始され、完了するまでに1分ほどかかることがある。
    選択した残りの期間に計算式をコピーした後のX13バックテスト出力表。
  10. 最後に、バックテストの値を実際の値と並べてプロットしてみよう。
    21年1月から2022年6月までのDOL雇用統計のバックテスト予測値と実績値のプロット。

結論

この例では、過去24ヶ月の非季節調整1ヶ月予報を計算したが、調査スパンを広げたり、異なるアウトプットを計算することは容易である。

バックテストの出力時系列を計算したら、MAPE、RMSE、MASE など、お好きな予測パフォーマンス指標(NumXL に含まれています)を使って、予測トラッキングエラーを定量的に記述します。

  添付ファイル

コメント

サインインしてコメントを残してください。

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています