自動更新機能を備えた予測モデル

このニュースレターのテーマは、予測モデル(ARMA、GARCH、回帰など)を、新しいデータ・ポイントが利用可能になり、予測が自動更新されたときに、あなた(または他の誰か)が容易にメンテナンスできるように設定することです。

実証のために、S&P 500 ETF の月次リターンについて GARCH モデルを定義し、パラメー タの値をキャリブレーションし、その後 36 ヶ月間のボラティリティ 予測期間構造を構築した。 その後、新たなデータ・ポイントを挿入し、予測開始日を繰り上げ、予測値を更新するモデルを観察した。

なぜ気にする必要があるのか?

しかし、多くのスプレッドシートは、同僚と共有され、時々修正され、長い間残っています。 自動更新のためにワークシートを準備するのは比較的簡単です。 一度行えば、簡単に新しいデータポイントを追加したり、既存のデータポイントを修正したりすることができ、最小限の労力で計算が更新されるのを確認することができます。

準備はできた!

データ準備

このチュートリアルでは、2010年1月から2019年11月までのS&P 500 ETF (SPY)の月次対数リターンを使用します:

この図は、2010年1月から2019年11月までのS&P 500の月次対数リターンを示している。 このデータセットには日付成分と値がある。

まず、現在のデータセットにプレースホルダーを追加する。 日付を進め(例:2019年12月、2019年1月)、その値として「#N/A」を入力する。

この図では、時系列データセットの末尾にプレースホルダーデータポイントを追加するプロセスを示している。各新しいデータポイントは、有効な日付と#N/Aの値を持つ。

モデリング

このデータセットの時変月次ボラティリティ・ダイナミクスを捉えるために、学生のイノベーションを用いたGARCH(2,2)を選択した。 モデルを定義するには、ワークシートで空のセルを探し、"NumXL" ツールバーの "GARCH" アイコンをクリックすると、GARCH ウィザードがポップアップします。

この図では、GARCHウィザードが表示されている。 入力データセットは、データセットの末尾に挿入されたプレースホルダ・データ・ポイントを含む入力時系列のセル範囲を参照する。

入力データ」セクションで、月次リターンのセル範囲を選択する。 NumXL 関数は、入力セル範囲の両端にある "#N/A" 値のオブザベーションを破棄しますので、心配しないでください。

モデル仕様セクションでARCHとGARCHを選択し、次数を2に設定する。 イノベーションセクションで "Student t-distribution "をクリックする。 ここで、"OK "ボタンをクリックして、選択を確定する。

この図は、NumXL GARCH ウィザードが作成した GARCH(2,2) モデル表である。

GARCH ウィザードはモデル・テーブルを生成し、そのパラメーターの値を有効だが最適でない値に 初期化します。 GARCH パラメータの最適値を見つけるには、モデル・テーブルのヘッダー・セルを選択し、"NumXL" ツールバーの "Calibrate" アイコンをクリックします。 Microsoft Solver がポップアップし、すべての値が設定される。 Solve をクリックする。

この図は、データセットとGARCHモデルの適合度を最適化するために初期化された値を持つMicrosoftソルバーを示している。

マイクロソフトのソルバーはGARCHプロセスの最適解を探索する。

この図は、ソルバーが最適解を見つけた後のソルバーの結果ウィンドウを示している。

データ探索

先に、NumXL関数は入力セル範囲内の "#N/A "に等しい値のオブザベーションを破棄すると述べた。 データセットがどこで終わるかをどうやって知るのですか?

上の質問に答えるには、まず2つの関数でデータセットのサイズを計算する必要がある: RMNA(.)とCOUNT(.)である。 RMNA(.) は、"#N/A" のデータポイントを捨てて、欠落していないオブザベーションの配列を返し、COUNT(.) は、この配列のサイズを返します。

この図は、COUNT関数とRMNA関数を使った入力データセットの有効サイズの計算式を示している。

Excelに組み込まれているINDEX(.)関数と、上記のデータセットのサイズを使えば、データセットの終了日を計算することもできる。

この図は、INDEX関数と入力データセットの有効サイズを使用して、データセット内で値が欠落していない最後のオブザベーションの日付を計算する式を示している。

まとめると、119個の値が欠落していないデータセットがあり、最新の観測は2019年11月に行われた。

予測

このチュートリアルでは、今後 36 ヶ月間の月次ボラティリティ予測を作成する必要があります。 これを行うには、モデル・テーブルのヘッダー行を選択し、NumXL ツールバーの「予測」 アイコンをクリックします。

この図は、GARCHモデルの予測ウィザードを示しています。 最新のオブザベーションは、プレースホルダ・データポイントを含む入力データセットを参照していることに注意してください。

最新のオブザベーション "セクションで、欠損値のあるオブザベーション(すなわち#N/A)を含む "B "列のセル範囲を選択する。

NumXLはGARCHモデル自体によって計算されたサンプル内のボラティリティを使用する。 OK "ボタンをクリックする。

予測ウィザードは、入力データセットの終了後に測定されるステップ(つまり月)で時間単位を表現する予測表を生成します。

この図は、NumXLウィザードが作成した36ヶ月後の予測表である。 時間単位としてステップ(例:月)を使用していることに注意してください。

時間が経つにつれて、新しいデータポイントを追加すると、最後のオブザベーションの(値が欠落していない)日付が進み、予測表のステップ単位の解釈に影響を与える。 この問題に対処するために、予測表の左側に、対応するカレンダーの日付を指定する列を追加しました。

各ステップに対応する日付を計算するために、以下のようにNxEDATE(.)関数とCONCAT(.)関数を使用する:

この図は、NxEDATE 関数を使って予測表の各期間の暦日を計算する式を示しています。

データセットの終了日を使用して、NxEDATE(.)はNヶ月後のデータを返します。Nは予測表のステップ数です。

新しいデータが週末や祝日に重なった場合はどうなりますか? データセットが金融時系列なので、日付は平日でなければなりません。そうでない場合は、日付を次に近い営業日に移動します(NxAdjust(.))。

この図は、NxAdjust(.)関数を使用して、計算された日付を次の最も近い勤務日に調整する式を示しています。

それだけだ! 予測表と月次ボラティリティの期間構造曲線を見てみよう。

この図は、日付カレンダーの列と、その後36ヵ月間のボラティリティ・ターム構造の予測表を示したものである。

GARCHモデルは、過去の水準(すなわち3.8%)と比較して低いボラティリティ環境を示しているが、今後1年間のボラティリティは着実に上昇すると予測している。

データポイントの追加

2019年12月の月次リターンが-0.6%の場合、どうなるかを検証してみよう。

ステップ 1: データセットに新しい値を入力する。

この図は、新しいデータ・ポイントと所定のプレースホルダーを置き換えるプラグイン処理を示している。

ステップ 2: 観察する

この図は、データセットのサイズと終了日、予測表とボラティリティの期間構造曲線の計算を更新したものである。

入力データセットのサイズが120に増え、終了日が2019年12月になった。

予測表では、ステップ1に対応する日付が2020年1月になり(2019年12月だった)、ボラティリティの期間構造が異なっている(より滑らかでない)。

ステップ 3: 上級

上の予測表は、先にキャリブレーションしたのと同じGARCHプロセス、特にパラメータの値を使用している。

議論のために、モデルを再キャリブレーションしたいが、ARCH/GARCH次数(すなわち、PとQ)とイノベーション分布(例えば、student t)は同じままであると仮定しましょう。

先ほどと同じように、GARCH モデル表のヘッダー行を見つけて選択し、NumXL ツールバーの "Calibrate" アイコンをクリックする。

ソルバーがポップアップしますが、今回は、前回の実行時のパラメーターの最適値で最適化が開始(つまり初期値)されます。 したがって、迅速な変換が期待できる。

この図は、新しいデータポイントを持つデータセットを使ってGARCHモデルを再キャリブレーションするプロセスを示しています。

最適化プロセスを開始するには、"Solver "ボタンをクリックします。

完了すると、ソルバーは "Find Solution "ダイアログを表示する。 OKボタンをクリックすると、新しいパラメータの値がモデル・テーブルにコピーされます。

再キャリブレーションが予測に与える影響を調べるには、表(およびプロット)の予測値 を見てください。

結論

このチュートリアルでは、モデルを自動更新するための2つのステップを検討しました:

  • 入力データセットの末尾にプレースホルダ・データポイントを追加する、
  • プレースホルダ・データポイントを持つデータセットをモデルに選択し、予測する。

時間が経過し、新しい観測が実現すると、その実際の値を(#N/Aの代わりに)データセットに入力し、エクセルは参照するすべてのセル(例えば、予測表)の計算を更新する。

  添付ファイル

コメント

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

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