Giacomini–White検定:条件付き予測精度を調べる
Giacomini–White検定で、予測時点に既知の条件によって予測精度が変わるかを調べる方法、検定関数の選び方、結果から分かる範囲を解説します
このガイドの内容平均的な精度と条件付き精度は異なる問いに答えます
短い要約
Giacomini–White(GW)の枠組みは、予測を作る時点で利用できる情報が、2つの予測の相対的な損失と結び付くかを問います。平均スコアでは見えない差を捉えられますが、結論は事前に選んだ予測方法、評価期間、損失関数、条件変数に左右されます。
平均的な精度と条件付き精度は異なる問いに答えます
テスト標本で予測Aの平均損失が予測Bより小さかったとします。その平均値には、有用なパターンが隠れているかもしれません。市場が落ち着いているときはAの方が良くても、ボラティリティが高いときにはBが良い場合があります。平均ではどちらが優れていたかを知りたいなら無条件の比較が適切です。予測時点で分かっていた情報から、今後どちらの予測が良くなりそうかを判断できるかが問いなら、条件付き予測能力を調べます。
GiacominiとWhiteは、指定した損失関数と情報集合のもとで予測方法を比べる問題として定式化しました。予測課題に合った損失を定義できれば、点予測、区間予測、確率予測、密度予測に適用できます。評価対象には予測を生成する推定手順も含まれます。そのため、ローリング窓、固定した学習標本、重み付け規則は、結果を見てから変更してよい細部ではなく、評価する予測方法の一部です(Giacomini and White, 2006)。
条件付き検定は構造変化検定と関係しますが、同じ検定ではありません。条件付き検定は相対損失が選んだ情報と系統的に結び付いているかを調べます。構造変化検定は、未知または指定した時点でパラメーターや関係が変化したかを調べます。Diebold–Mariano検定の解説では、平均損失を比較する無条件の問いを扱います。条件付きの問いでは、どの情報を条件にするかを明示する必要があります。
予測、実現値、情報の時点を先にそろえます
予測起点(t)の後で観測される対象を(Y_{t+1})とします。ŷA,t+1とŷB,t+1は同じ対象、予測期間、単位、情報締切時刻に対応していなければなりません。値が小さいほど良い損失(L)を使う場合、損失差を次のように定義します。
dₜ₊₁ = L(Yₜ₊₁, ŷA,ₜ₊₁) − L(Yₜ₊₁, ŷB,ₜ₊₁)
この符号規約では、正の値はAの損失の方が大きく、その予測起点ではBが有利だったことを意味します。負ならAが有利です。予測起点ごとに1行を作り、両方の予測を同じ実現値で採点します。当時入手できた予測値、データの版、モデルの版も保存してください。後から改訂された入力値や、その時点以降に入手した情報を使って過去の予測を作り直してはいけません。
条件変数も予測起点で既知でなければなりません。過去の情報だけで計算したボラティリティ推定値、事前に公表されたイベント指標、遅行させた損失差、過去の観測値だけから作った市場状態などが例です。(t)以降に測定された変数で、(t+1)にどちらが良かったかを説明すれば、先読みバイアスが生じます。
スコアは予測対象に合わせます。二乗誤差は条件付き平均の予測に使える選択肢の1つですが、ボラティリティ、分位点、密度の予測にも自動的に適切とは限りません。一方のモデルが分散を、もう一方が標準偏差を予測するなら、まず同じ量の予測にそろえてください。検定を使っても、異なる問いが同じ問いに変わるわけではありません。
ボラティリティ予測では、両方を同一の実現分散の定義とサンプリング間隔で採点します。一方が日中価格を対象とし、もう一方が夜間リターンも含むなら、損失差は予測能力ではなく対象の違いを反映するかもしれません。市場休場中の変動、サンプリング頻度、欠測値、実現値の尺度をどう扱うかを決め、同じルールを一貫して適用します。実現値にノイズがある場合、その測定誤差は両方の損失スコアに影響するため、解釈に含めてください。
条件付き帰無仮説を示し、検定関数を選びます
比較に使う情報を(𝒢ₜ)とすると、理想化した帰無仮説は次のとおりです。
H₀: E[dₜ₊₁ | 𝒢ₜ] = 0
これは、指定した情報を条件とした期待損失差がゼロであることを意味します。1期先のGW検定では、時点(t)に利用可能な情報から作る事前指定の検定関数ベクトル(h_t)を使い、この条件付きの命題を次のモーメント条件に変換します。
H₀,ₕ: E[hₜ dₜ₊₁] = 0
(h_t)には定数を含められ、その項は平均損失差を捉えます。ほかの要素には、市場状態、遅行させた相対損失、結果を見る前に決めた非線形変換などを入れられます。たとえば(S_t)が時点(t)に分かる高ボラティリティの二値指標なら、(h_t=(1,S_t)')を使って定数モーメントと、損失差がその状態に結び付くかを調べられます。
有限個の検定関数で試せるのは、その関数が定めるモーメントだけです。棄却は、検定の仮定のもとで、選んだモーメントの少なくとも1つがゼロと整合しないことを示します。あらゆる状態で普遍的に最良のモデルを特定したり、考えられるすべての状態変数に関係があると証明したりするものではありません。棄却できなくても、条件付きの性能が等しいと証明したことにはなりません。定数だけを使う検定は無条件のモーメント比較であり、すべての条件を幅広く探索するものではありません。
どのモデルが勝つかを調べる前に、損失、操作変数、変換、標本、予測期間を決めます。結果を見てから状態指標、閾値、ラグを追加すると、新たな探索問題が生じます。条件付き検定だけでは、その選択による影響は補正されません。
各状態変数を作るタイミングも固定します。全標本でボラティリティの上位20%を求めて過去の起点を分類すると、将来の観測値が過去の閾値に影響します。各起点までの情報だけで閾値を推定するか、その日より前に公表されたルールを使います。連続状態変数では、単位と中心化・標準化の方法を事前に決めます。よく似た指標を複数入れるとモーメントが重複し、共分散行列の逆行列を計算しにくくなるため、明確に解釈できる最小限の集合を使います。
Wald統計量を作り、基準分布を解釈します
検定関数が(q)個なら、(g_{t+1}=h_t d_{t+1})のベクトルを作ります。その標本平均は次のとおりです。
ḡ = (1/n) Σₜ gₜ₊₁
1期先のGW統計量は、次のWald形式です。
GW = n ḡ′ Ω̂⁻¹ ḡ
(Ω̂)はモーメントベクトルの共分散行列を推定します。帰無仮説と論文の正則条件のもとで、統計量は自由度(q)の漸近カイ二乗分布に従います。したがって検定関数の数は基準分布を決め、検出力にも影響します。弱い変数や重複した変数を多く入れると、有用な情報があまり増えないまま共分散推定が不安定になることがあります。
1期先の設定では、帰無仮説のもとでモーメントベクトルがマルチンゲール差分構造を持つため、原論文の検定では標本の二次モーメントを使った推定量を利用できます。別の予測期間、重複する実現値、またはこの設定からの逸脱がある場合は、検定の仮定と依存構造に合った分散推定量が必要です。別の検定で使ったHAC帯域幅をそのまま流用せず、選んだ実装の定式化に従ってください。Newey and West(1987)の推定量を含む一般的なHAC共分散手法は、必要な設定で使うものであり、GWに共通の帯域幅を指定する処方箋ではありません。結果の信頼性は共分散推定と予測設計に左右されます。
(Ω̂)が選んだモーメントから安定して推定できるかも確認します。ほとんど同じ検定関数、特定状態の観測数が極端に少ない指標、過剰な交互作用項は、特異または不安定な行列を作り得ます。逆行列が小さなデータ修正で大きく変化し、統計量をゆがめることもあります。各関数がどの条件や予測能力の差を表すのかを明らかにし、関数数とモーメント共分散を報告してください。結果を見てから役に立たない関数を削除することも、別の選択として開示する必要があります。
p値は、明示したモーメント制約が基準分布と検定の仮定に照らしてデータに合わないという証拠です。AまたはBが真のモデルである確率でも、売買ルールが利益を上げる確率でもありません。棄却の意味が分かるように、統計量、自由度、p値、検定したモーメントを具体的に報告します。
<!-- learn:illustration -->

2つの状態の例で平均に隠れた差を確認します
1期先の予測起点が8つあるとします。(S_t=0)は平穏な状態、(S_t=1)は高ボラティリティ状態を表します。仮想の損失差(d_{t+1}=L_A-L_B)が、平穏な4起点では−2、−2、−2、−2、高ボラティリティの4起点では+2、+2、+2、+2だったとします。負の値はA、正の値はBに有利です。
8起点全体の平均はゼロなので、この小さな例では無条件の損失差はありません。一方、平穏状態の平均は−2、高ボラティリティ状態の平均は+2です。状態によって相対順位が逆転しています。(h_t=(1,S_t)')を使えば、定数モーメントと高ボラティリティ状態のモーメントが入り、このパターンと整合するかを検定できます。
この8つの値は仕組みを説明する例であり、信頼できる推論には少なすぎます。実際には、予測の推定方法、状態変数を事前に決めたか、起点数、損失差モーメントの時間変動を考慮する必要があります。状態ごとの図だけから、パターンが今後も続くと結論付けることはできません。
推定期間も予測方法の一部として扱います
GWの原論文の漸近理論では、標本外予測数が増える一方で最大推定窓の長さを有限に保ち、予測推定の不確実性を残します。ローリング窓と固定した推定標本は、この基本設定に合います。窓の長さや、データ依存で窓を選ぶ規則は予測方法の一部なので、事前に定めて報告します。
予測モデルを再推定する場合には、この点が重要です。パラメーター推定を無視した比較では、過去データから学習する過程の不確実性を見落とすことがあります。GWは明示した条件のもとで、入れ子・非入れ子モデルの予測を扱えますが、すべての拡大型窓の実装や推定量に対して同じ保証があるわけではありません。原論文の1期先の枠組みでは有限窓が仮定されており、通常の拡大型窓はその仮定の範囲外です。実際の予測生成方法と設定が違うなら、その設定に対応する結果を使ってください。
この検定が適切な窓を自動的に選ぶわけでもありません。短い窓は最近の状態に適応しやすい一方、観測数が少なくなります。長い窓や拡大型窓は推定を安定させる一方で、古くなった関係を残すかもしれません。事前に決めた評価手順で比較し、窓選択も記録します。Giacomini and Rossi(2010)は不安定な環境で相対予測性能の時間的な推移を調べる別の検定を提案しています。関連する問いですが、基本的なGW条件付き検定と同じ統計量ではありません。
条件付きで棄却されたからといって、リアルタイムで使う予測選択の売買ルールが得られるわけではありません。評価標本で操作変数と損失差が関連しても、安定して実行可能な切替規則になるとは限りません。現在の情報から予測を選ぶなら、過去の観測値だけでルールを定義し、その推定と判断の不確実性を含めて、後続の未使用期間で評価します。
GWをDM、入れ子モデル検定、不安定性検定と区別します
Diebold–Mariano検定は評価標本における2つの予測の平均損失が等しいかを問います。GWは選んだ情報が相対損失と結び付いているかを問いますが、無条件比較を特殊なモーメント制約として含みます。2状態の例のように、平均スコアが同じでも条件ごとの相対性能は違うことがあります。
予測モデルが入れ子で、同じ平均二乗予測誤差かが課題なら、Clark–West補正のように異なる帰無仮説や推定ノイズに対処する方法が対象になる場合があります。多くの売買ルールや予測を探索した後、候補のどれかに優位性があるかを問うなら、WhiteのReality CheckまたはHansenのSPA検定など、候補群全体を扱う手法が必要です。選んだ1組への条件付き検定は、それ以前の広い探索を取り消しません。
相対精度と選択した操作変数の関係より、時間とともに性能がどう変化したかが問いなら、不安定性や反転を調べる検定の方が適切かもしれません。Giacomini and Rossi(2010)はそのような予測比較を扱います。問いに合わせて手法を選び、棄却をそのままレジーム切替型の売買戦略の証拠とみなさないでください。
候補モデルが複数残るときは、候補を繰り返し比較して選んだ水準で区別できないモデルの集合を残す方法が別の問いに答えます。Model Confidence Setの解説でその方法を説明しますが、GW分析に使う条件の事前指定に代わるものではありません。
検出力の低さと繰り返し検定を考慮します
条件付き検定には多くのデータが必要なことがあります。標本を平穏期と高ボラティリティ期に分ければ、それぞれの比較を支える観測数が減ります。検定関数を増やせばモーメント数と自由度も増加します。条件の多くが相対損失と弱くしか関係しない場合、実際に条件付き差があっても検出力が低い可能性があります。
米セントルイス連邦準備銀行のMcCrackenのワーキングペーパーは、単純な二乗損失の例でGW検定の存在、サイズ、検出力を調べています。シミュレーションでは、検討された設定で検定サイズは適切に保たれる一方、検出力は概して低い結果でした(McCracken, 2020)。これは全ての適用に当てはまる数値予測ではなく、解釈上の注意です。棄却できない結果は情報不足や低い検出力の反映かもしれず、予測を交換可能と証明したものではありません。
状態の定義、閾値、期間、損失関数、評価日を何度も変えて試すと、偶然の発見が増えやすくなります。候補にした検定をすべて記録し、探索分析と事前指定した確認標本を分けてください。候補群の中に予測力のある戦略があると主張するなら、その群に合った多重検定またはデータスヌーピング手法を使います。条件付き操作変数を増やすだけで証拠が強まるわけではありません。
比較するモデルが複数ある場合、候補群全体への手法はペアごとの条件付き検定と別の問いに答えます。Model Confidence Setの解説では、反復比較によって選んだ水準で区別できないモデルを集合に残す方法を説明しています。それでもGW分析で使う条件を事前に決める作業は必要です。
他の読者が再現できるよう設計を報告します
両方の予測方法と推定手順、モデルが入れ子か、対象と期間、評価日を示します。損失関数と(d_{t+1})の符号規約を明記してください。(h_t)の各要素、その計算方法、いつ観測可能になるか、結果を見る前に決めたかを説明します。
予測起点の間隔、推定窓の規則、データの版、共通標本の規則、標本外起点数、検定関数数、共分散推定量、基準分布、統計量、自由度、p値を報告します。期間が重複するか、依存性をどう扱うかも記します。検定結果だけでなく、平均損失と損失差の要約値も提示してください。
ほかに試した検定関数、閾値、窓、損失関数、予測の組み合わせも列挙します。同じ観測値でモデルや条件変数を選び、そのまま検定した場合も明示してください。確認的な結果でなくても情報にはなります。透明に報告すれば、読者が結論の範囲を判断し、独立した検証を設計できます。
よくある質問
Q1Giacomini–White検定はDiebold–Mariano検定と同じですか?
いいえ。Diebold–Marianoは平均損失が等しいかに注目します。1期先のGW枠組みは選んだ条件付きモーメントを検定し、無条件モーメントを可能な制約の1つとして含みます。
Q2棄却すれば、どの市場局面でも使う予測を特定できますか?
いいえ。検定の仮定のもとで、選択したモーメントの少なくとも1つがゼロと整合しないことを示します。結果は選んだ操作変数、標本、損失に依存し、あらゆる状態での性能を保証しません。
Q3棄却されるまでボラティリティの閾値を追加してもよいですか?
それは条件変数の探索になります。できる限り事前に変数を定め、試した仕様をすべて報告してください。広い予測力を主張するなら、別の確認標本か候補群に合った補正を使います。
Q4条件付き予測能力があれば、売買戦略は利益を出しますか?
いいえ。この検定は予測損失を比較します。売買を主張するには意思決定ルールを定義し、約定、手数料、資金調達費用、市場インパクト、リスクを別に評価する必要があります。 主な研究 - Giacomini and White, “Tests of Conditional Predictive Ability” (2006) - Giacomini and Rossi, “Forecast Comparisons in Unstable Environments” (2010) - McCracken, “Tests of Conditional Predictive Ability: Existence, Size, and Power” (Federal Reserve Bank of St. Louis Working Paper, 2020) - Diebold and Mariano, “Comparing Predictive Accuracy” (1995) - Newey and West, “A Simple, Positive Semi-Definite, Heteroskedasticity and Autocorrelation Consistent Covariance Matrix” (1987)
出典
問題を報告
この記事のリンクを含むメールを準備します。送信すると Mark に報告が届きます
クイックチェック
記事を読み終えたら、3問で確認しましょう
問題 01
dₜ₊₁ = L(A) − L(B)のとき、損失差が正なら何を意味しますか?
答えを選ぶと解説を確認できます