共和分株式による統計的裁定取引(第10回):構造変化の検出
はじめに
共和分のテーマを調べていると、よく「酔っぱらいが犬を散歩している」という比喩に出会います。ときに離れて歩いたり、飼い主がふらふらと進んだり、犬が先に進んでから戻ってきたりしますが、両者はリードでつながれており、最終的には一緒に家にたどり着きます。しかし、もし何らかの理由でそのリードが切れたらどうなるでしょうか。
共和分は長期的な関係です。スプレッドは常に変動しますが、ポートフォリオのウェイトを調整し続けることで、同じペアやバスケットを比較的長期間にわたって取引し続けることができます。単純な相関に基づくペアであっても、スプレッドの調整を継続すれば、相関関係を長期間維持できる場合があります。とはいえ、相関関係であれ共和分関係であれ、関係が恒久的に続くことはありません。いずれ関係は弱まり、ペアやバスケットの構成資産は乖離し始め、ヘッジは経済的な意味を失い、最終的にはポートフォリオから除外されることになります。
通常、このプロセスは段階的に進行します。これは、これまで使用してきたツール、たとえばRolling Window Eigenvector Comparison (RWEC)やインサンプル/アウトオブサンプルADF(IS/OOS ADF)などによって監視および検出することができます。前回の記事では、こうした進行的な逸脱を実取引中に監視し、それに基づいてポートフォリオウェイトを更新するバックテスト手法を説明しました。
しかし、ときには資産間の結びつきが予期せぬ形で断たれることがあります。かつて男と犬をつないでいたリードが、突然切れてしまうのです。段階的に進むのではなく、突然にです。これは、数日や数週間かけて徐々に進行するのではなく、ある一瞬の出来事、すなわちブレークポイントとして発生します。
このような場合、私たちはできる限り早くそれを察知したいと考えます。そうでなければ、すでに共和分や相関関係が反転した、あるいは崩壊しているペアやバスケットに対して、ポートフォリオのウェイトを更新し続けてしまう可能性があります。では、通常の変動と関係の断絶とをどのように識別すべきでしょうか。市場ノイズの中から、恒常的な変化だけをどのように抽出すればよいのでしょうか。
たとえば、2025年4月2日に米国大統領が発表した対外貿易関税に関する声明を考えてみましょう。これは極めてインパクトの大きいニュースでした。世界中の複数の市場に影響を与えたのです。いわゆる「解放の日(Liberation Day)」は、私たちの時代における最も顕著なレジームシフトのひとつを引き起こしました。この出来事によって、多くの共和分ポートフォリオが翌日までに「解体」されたと考えるのは自然です。これは、グローバル資産間の相関やヘッジ比率を変化させる予期せぬショックでした。この大統領令は、発表前には米国政府のごく一部の関係者しか知り得なかったものであり、実務的には完全に予期せぬ出来事だったと言えます。その影響は幅広く、為替ペア(USD/CNH)、コモディティ(鉄鉱石、原油)、さらには株式市場にまで及びました。その結果、S&P500(UP500)と日経225(JPN225)の関係に見られるように、指数間の関係も劇的に変化しました。
これと類似した例として、Nvidia Co. (NVDA)とIntel Co. (INTC)の最近の提携が挙げられます。この発表によってINTC株が急騰し、株価間の通常の相関関係が反転しました。ただし、「解放の日」の発表が理論上ほぼ完全に予測不能であったのに対し、半導体業界の主要プレイヤーによる投資判断が「まったく予期できない」ことはありません。この種の決定は、取締役会での議論、ステークホルダーとの会合、専門メディアでのインタビューなどを経て進められます。市場は常にこれらを追跡し、大口投資家によって徐々に織り込まれていき、最終的に正式な提携発表として公表されるのです。
しかし、「まったく予期できなかった」米国政府の超高インパクトなニュースと、追跡され織り込まれていた企業ニュースという違いはあるものの、いずれも各市場において「構造変化」と呼ばれる現象を引き起こしました。どちらのケースも、通常の市場変動によって生じる変化をはるかに上回る影響をもたらしたのです。
以下では、構造変化とは何か、これまで用いてきた統計的手法がどのようにしてその兆候を示してくれるのか、Chow検定を用いてどのようにそれを確認できるのか、さらに累積平方和(CUSUM)を再帰的に計算することでどのように早期検出が可能となるのかについて見ていきます。
構造変化とは何か
「構造変化」という言葉自体は直感的で、「何らかの構造が壊れた」という意味で誰にでも理解できます。しかし、計量経済学や統計学においては、これに明確な定義があります。
「回帰モデルのパラメータが時間とともに予期せず変化すること」
本記事ではこれまで、形式的な数学や統計そのものにはあえて踏み込まず、統計ツールや手法の使い方に焦点を当ててきました。しかし、「構造変化」の形式的な定義について明確に理解しておくことは重要です。というのも、この用語に対する私たちの直感的な認識と、一般的な言葉の意味との違いをきちんと区別する必要があるからです。なぜなら、予期せぬ変化の対象となる「パラメータ」のひとつに、私たちが取引対象とするスプレッドが含まれているからです。したがって、この定義は、他のさまざまなパラメータと同様に、相関または共和分しているスプレッドが予期しない形で変化したときに、構造変化が発生することを意味しています。
ここで2つの点に注意が必要です。まず、予期せぬニュースや市場の動きが変化の原因となることが多いとはいえ、構造変化の定義における「予期せぬ(unexpected)」という言葉は、それらとは無関係です。これはあくまで回帰モデルの観点から見た「予期せぬ」であり、回帰関係がある方向に進んでいたにもかかわらず、突然別の方向へ転じた、すなわち傾きが予期しない形で変化したことを指します。
また、パラメータという言葉も、一般的な数学やソフトウェア開発で用いられる意味とは異なります。この文脈では、平均や標準偏差といったものもパラメータであり、スプレッドも分析対象となる重要な変数です。
それでは、具体例として、ある意味では予想されていたNVDAとINTCの提携発表を取り上げてみましょう。この提携は、これらの銘柄間のピアソン相関係数に関連する回帰パラメータに予期しない変化をもたらしました。
NVDAとINTCの提携
2025年9月18日、Nvidia (NVDA)は、PCおよびデータセンター向けチップの開発を目的として、Intel (INTC)との大規模な提携を発表しました。この50億ドル規模の投資はINTC株の上昇を引き起こし、両社の関係性を変化させ、その結果として相関関係も変化しました。この時点で、NVDAとINTCの安定したベータに依存しているあらゆるポートフォリオは、可能な限り速やかに構造変化の有無を確認すべき状況にあります。
発表の前週までは、NVDAとINTCの間には負の相関が存在しており、両者は逆方向に変動していました。この期間において、日次ベースでは相関はそれほど高くはなかったものの、半導体セクターのポートフォリオにおいては、一方を買い、もう一方を売るという形で取引されていた可能性は十分にあります。この時点では、両社はゼロサムゲームにおける競合として認識されていました。一方が勝てば他方が負ける、その逆もまた然りです。投資家からは、同じ市場シェアを争う2つの大きなプレイヤーとして見られていたのです。
下図は、2024年初頭から提携発表の前週までにおける、NVDAとINTCのピアソン相関を視覚的に示したものです。ここでは-0.71の負の相関が確認されます。

図1:2024年1月1日から2025年9月13日までのNVDAとINTCのピアソン相関ヒートマップ
提携発表後、この相関は反転しました。次の図は、提携発表週からその後3か月間におけるピアソン相関を示したもので、+0.75の正の相関が確認されます。

図2:2025年9月15日から2025年12月17日までのNVDAとINTCのピアソン相関ヒートマップ
絶対値はほぼ同じなのにかかわらず、この時点以降、相関は正となり、両銘柄は同じ方向に変動し始めました。これまで市場全体から競合と見なされていた企業は、今や戦略的パートナーとして認識されるようになり、一方が成功すれば他方も成功する関係へと変化したのです。もはや同じ市場シェアを争う存在ではなく、協力してより強くなるために手を組んだのです。これは相関関係における急激な変化であり、純粋に数学的な観点から見れば、完全に予期せぬものです。このペアを含むいかなるポートフォリオも、再調整するか、あるいは停止する必要があります。
そしてここで、統計的裁定戦略における最も重要な問題に直面することになります。米国政府による対外貿易関税の発表は、その影響の範囲と規模において、一般の個人投資家にとっては完全に予期せぬものでしたが、NVDAとINTCの提携はそうではありませんでした。この種の動きは、経営陣レベルのプレスリリースやインタビュー、専門家の分析など、さまざまな情報源から追跡することが可能でした。常識的に考えれば、実際の発表の数週間前から市場に織り込まれていたと言えるでしょう。相関の反転自体は、厳密な数学的観点からは予期せぬものであったか、あるいは予想を上回るものであったかもしれませんが、資産間の関係が大きく変化すること自体は、決して予期せぬものではありませんでした。
両社が提携交渉を進めている間、市場は決して無反応だったわけではありません。むしろ、初期の単なる噂の段階から、2025年9月18日の正式発表に至るまで、ニュースが進展するにつれて、その内容は徐々に相関関係の中に織り込まれていきました。それは瞬間的な変化ではなく、ピークとなるイベントに至るまでのシグナルの蓄積の結果だったのです。
したがって、統計的裁定戦略において最も重要な問題は、構造変化へとつながるこうした相関関係の微細な変化を、どのように検出するかという点にあります。
RWECアラート
このペアをRWECで監視していたと仮定してみましょう。RWECの特徴や解釈については第8回で詳しく説明しているため、ここでは繰り返しません。重要なのは、このツールが連続する固有ベクトルの角度のコサイン距離を、あらかじめ設定した閾値と比較することで、ポートフォリオウェイトの安定性を測定するという点です。ローリングウィンドウごとに共和分ベクトルを計算し、それらを比較する仕組みです。したがって、このペアをRWECで監視していれば、関係性に異常な変化が生じた際にアラートを受け取ることになります。
以下のプロットは、NVDA/INTCペアにおける、2025年初頭から2026年初頭(本稿執筆時点)までの共和分ベクトルの推移とベクトル安定性を示しています。9月の提携発表でピークに達する急激な変化が、実際にはその約2週間前、8月20日頃から検出され始めていることがわかります。この時点では、それが単なる市場ノイズなのか、通常の変動なのか、あるいは構造変化の初期的な兆候なのかを判断する手段はありません。その時点で私たちが持っている提携に関する情報の量に応じて、解釈は大きく左右されるでしょう。データだけでは行動の判断には不十分なのです。

図3:NVDA/INTCペアのRWECプロット。H4、ルックバック504日
これらのプロットは、リアルタイムの取引ポートフォリオを監視している想定のため、日足ではなくH4(4時間足)で、ルックバック504日を用いて作成されています。注目すべき点として、2025年9月の関係性の反転をしっかり検出していることが挙げられます。提携前にはほぼゼロ付近で安定していた連続ベクトル間の角度が、発表後には150度を超える水準まで跳ね上がっています。そして約1か月後には再び安定状態に戻っています。
ここで重要な問題が浮かび上がります。RWECはスプレッドにおける異常な動きを検出し、通知することはできますが、それが構造変化であるかどうかを判断することはできません。なぜなら、この目的のために設計された手法ではないからです。RWECはある意味で「近眼」であり、時間に沿った変動を観測し、直近の変化を閾値と比較することに特化しています。しかし、スプレッドの履歴全体や、その変動が過去とどのような関係にあるかについては何も語りません。そこで登場するのが、Chow検定です。
Chow検定
Chow検定は、特定のブレークポイントが構造変化を引き起こしたかどうかを検証することを明確な目的として開発された手法です。その方法は非常に直感的で、データに対して3つの線形回帰を実行します。すなわち、ブレーク直前までの回帰、ブレーク直後からの回帰、そしてブレークが存在しなかったかのように全期間に対して行う回帰の3つです。そのうえで、前者2つの回帰結果を後者と比較し、F統計量とp値を算出します。F統計量が大きいほど、p値は小さくなり、分析対象データに構造変化が存在する可能性は高くなります。
Chow検定をおこなうには、あらかじめブレークポイントとなる日付(時系列上の一点)を指定する必要があります。この日付で構造変化が起きたと仮定し、それを基準として前後の回帰を実行します。
本記事の末尾には、これまで扱ってきたピアソン相関やRWECテストを実行するためのPythonスクリプトを掲載しています。これらの手法については本連載の過去記事で詳しく説明しているため、必要に応じて参照してください。
また、以下の添付にはChow検定を実行するためのPythonスクリプトも含まれています。これはChow検定のメイン関数です。価格データに加えて必要となる唯一のパラメータは、ブレークポイントの日付である点に注意してください。
def run_chow_test(self, data: pd.DataFrame, break_point_date: str): """ Performs the Chow test on the asset pair Y and X. Parameters: - data: DataFrame with columns [Y, X] (first column is Y, second is X) - break_point_date: String date (e.g., 'YYYY-MM-DD') for the structural break. """ if data.shape[1] != 2: raise ValueError("Input data must have exactly two columns (Y and X).") # Assign Y and X based on column order symbol_y = data.columns[0] symbol_x = data.columns[1] Y_full = data[symbol_y] X_full = sm.add_constant(data[symbol_x]) N = len(data) k = 2 # Number of parameters (intercept + slope) # 1. Split data at suspected break point break_date = pd.to_datetime(break_point_date) # Check if the break date is valid if break_date <= data.index.min() or break_date >= data.index.max(): raise ValueError("Breakpoint date is outside the data range.") # Data split df_pre = data[data.index < break_date] df_post = data[data.index >= break_date] N1 = len(df_pre) N2 = len(df_post) if N1 < k or N2 < k: raise ValueError("Insufficient data points in one or both sub-periods to estimate the model.") # 2. Full sample regression (restricted model) full_model = sm.OLS(Y_full, X_full).fit() ssr_full = full_model.ssr # 3. Separate regressions (unrestricted models) Y_pre = df_pre[symbol_y] X_pre = sm.add_constant(df_pre[symbol_x]) pre_model = sm.OLS(Y_pre, X_pre).fit() ssr_pre = pre_model.ssr Y_post = df_post[symbol_y] X_post = sm.add_constant(df_post[symbol_x]) post_model = sm.OLS(Y_post, X_post).fit() ssr_post = post_model.ssr # 4. Compute Chow test statistic numerator = (ssr_full - (ssr_pre + ssr_post)) / k denominator = (ssr_pre + ssr_post) / (N - 2 * k) F_stat = numerator / denominator # p-value p_value = f.sf(F_stat, k, N - 2 * k) results = { 'symbol_y': symbol_y, 'symbol_x': symbol_x, 'break_date': break_point_date, 'F_stat': F_stat, 'p_value': p_value, 'pre_beta': pre_model.params[1], 'post_beta': post_model.params[1], 'full_beta': full_model.params[1], 'N1': N1, 'N2': N2, 'ssr_full': ssr_full, 'ssr_pre': ssr_pre, 'ssr_post': ssr_post } results['full_intercept'] = full_model.params[0] results['pre_intercept'] = pre_model.params[0] results['post_intercept'] = post_model.params[0] # Determine the conclusion if p_value < 0.05: results['conclusion'] = "Reject H0 (Structural break detected)" else: results['conclusion'] = "Fail to reject H0 (No structural break evidence)" return results
このスクリプトを、NVDA/INTCのペアに対して、2025年9月18日をブレークポイントとして実行すると、以下のような出力とプロットが得られます。
--- Chow Test Analysis --- Pair: NVDA vs INTC Breakpoint: 2025-09-18 F-statistic: 568.7312 p-value: 0.000000 Conclusion: Reject H0 (Structural break detected) Pre-break Beta: -2.5947 Post-break Beta: 0.9506 Inserted Chow test result for NVDA/INTC into 'chow_results' table.

図4:Chow検定プロット(NVDA/INTC、ブレークポイント:2025年9月18日)
プロットは非常に明確です。NVDAとINTCの提携発表日をブレークポイントとして設定すると、明らかに異なる2つのレジームが現れます。負の相関から正の相関へ、逆方向の動きから同方向の動きへと変化しています。この結果がどのようにそのストーリーを語っているのかを見ていきましょう。
ブレーク前の回帰直線(青)は、傾きが-2.59です。これは提携前に取引していたであろうベータです。この時点では、INTCの価格が上昇するとNVDAの価格は下落する傾向があり、市場は両社を競合として評価していました。変化を無視していれば、この関係に基づいた取引を続けていたことになります。
しかし、50億ドルの投資ニュースを受けて関係は反転しました。ブレーク後の回帰直線(赤)は傾きが0.95となり、両者の価格は同じ方向に動くようになります。市場は両社をパートナー、あるいは互いの成功の恩恵を受ける存在として評価し始めたのです。これが、変化を認識した後に採用すべき関係です。
黒い破線は、Chow検定における「制約付きモデル(Restricted Model)」を表しています。これは、関係が変化しなかったと仮定した場合の回帰であり、2つのレジームの平均のようなものと考えることができます。しかし、このモデルはすでに存在しない関係に基づいているため、誤差を平均的に増加させ、結果として損失を拡大させることになります。
もしこの分析を実取引の監視に用いていたなら、F統計量の568という値は「撤退」シグナルと解釈されるべきです。これは単なる市場ノイズではなく、恒常的なレジームシフトであることを示しています。また、p値は、このようなF統計量が構造変化が存在しない場合に観測される確率を示していますが、実質的にゼロに近い値です。
したがって、このペアを用いた平均回帰戦略を運用していた場合、このプロットは青い直線で表される旧モデルを停止し、赤い直線で表される新モデルへ切り替えるべきタイミングを明確に示しています。そうしなければ、黒い破線が示すように誤差は徐々に増大していきます。
このように、Chow検定は関係における根本的な変化が発生したことを数学的に証明する手段と捉えることができます。企業の合併や買収、金融政策の変更(特にFX市場)、予期せぬ決算結果、規制の変更などは、こうしたレジームシフトを引き起こしやすい代表的なイベントです。
ただし、Chow検定が構造変化の検出において強力である一方で、いくつかの制約も存在します。そのひとつはすでに見た通り、事前にブレークポイントの日付を指定する必要がある点です。また、2資産間にしか適用できず、3銘柄以上のバスケットには直接使用できません。さらに、時間足に依存する制約として、ブレークポイント以降にある程度十分なデータが存在しなければ、最低限の精度で検定を実行できないことがあります。
Chow検定はどれくらい早く構造変化を検出できるのか
Chow検定は本質的に確認のためのツールであり、早期警告ツールではありません。その計算方法の性質上、構造変化が発生した瞬間にそれを検出することはできません。実際に関係が変化したことを証明するためには、疑われるイベントの後に一定量のデータ、いわば「バッファ」が必要になります。この「必要なデータ量」には、数学的な最小値と実務的な最小値の2つがあります。数学的には、ブレーク後に必要なデータポイント数は、モデルのパラメータ数と同じです。シンプルなペアトレードの場合、これは2つ(切片と傾き)です。
理論上は、「解放の日」の直後、わずか2日分のデータでも検定は実行可能です。しかしこの場合、全期間を通した回帰(ブレークがなかったと仮定する制約付きモデル)は、イベント後わずか2日分のデータしか含まないことになり、統計的な意味を持ちません。したがって、この数学的最小値は実務上ほとんど役に立ちません。
信頼できる結果、すなわちp値が0.05未満となるような検定結果を得るには、単なるノイズではなく新しいレジームであると識別できるだけの十分なデータが必要です。日次ベースの取引では、5〜10本程度のバーで高いF統計量が観測され始めることもあります。特に、「解放の日」(関税145%)のような強烈なイベントの場合です。しかし、文献調査や実証テストの多くは、20〜30本程度のバーがあって初めて、第2期間のOLS推定が安定し、第1期間と比較可能になることを示唆しています。
2025年4月2日に、米国大統領が対外貿易関税の大幅引き上げを発表した「解放の日」のケースに戻りましょう。このイベントの翌日や、同週末(4月4日)時点では、有意なChow検定結果を得ることはできません。意味のあるF統計量を得るには、およそ10〜15営業日程度待つ必要があります。
ここで、S&P500と日経225のペアでChow検定を実行してみましょう。日本製品には当初25%の関税が示唆され、その後15%をベースラインとしつつ、セクターごとの例外や個別合意が導入されました。これにより、通常は安定している米国と日本の株価指数間の相関関係が攪乱されました。そのため、2025年4月3日以降に構造変化が発生していると考えるのが妥当です。
--- Chow Test Analysis --- Pair: US500 vs JPN225 Breakpoint: 2025-04-02 F-statistic: 57.5019 p-value: 0.000000 Conclusion: Reject H0 (Structural break detected) Pre-break Beta: 0.0656 Post-break Beta: 0.0822 Inserted Chow test result for US500/JPN225 into 'chow_results' table.

図5:2025年4月3日をブレークポイントとしたS&P500/日経225のChow検定プロット
傾きの反転 vs 切片のシフト
この検定結果は、S&P500と日経225の相関に構造変化があったことを明確に示しています。しかしここで見られるのは、図4で示されたNVDAとINTCの提携後のケースとは異なる種類の構造変化です。この場合、関係の反転は起きておらず、ベータにも顕著な変化は見られません。ブレーク後も両資産は正の相関を維持しており、ブレーク前のベータ(0.07)とブレーク後のベータ(0.08)はほぼ同一です。
NVDAとINTCの提携が傾きの反転を引き起こしたのに対し、米国の対外貿易政策の変更は、これらの指数の線形回帰において切片のシフトをもたらしました。両者は依然としてほぼ同じ感応度(傾き)で一緒に動いていますが、その間のギャップは拡大しています。青と赤の回帰直線は物理的に離れており、黒の破線は大きな誤差なしにそれらの間を通過することができません。
これらの情報はプロットを見るだけでも直感的に把握できますが、構造変化が発生したことを数学的に確実に示しているのは、F統計量56とp値0という結果です。
D1からH4の時間足において構造変化を確認するには少なくとも2週間程度が必要であることを踏まえると、構造変化につながる可能性のある変化をどのように早期に察知すればよいのでしょうか。NVDA/INTCの提携発表においてRWECが示したように、できるだけ早い段階でアラートを得るにはどうすればよいのでしょうか。
再帰的検出によってできる限り早くブレークを捉える
残差の累積和を監視することで、異なる回帰(ブレーク前、ブレーク後、制約付きフルモデル)における誤差が一方向に継続的に蓄積し始めた瞬間に、システムは警告を出すことができます。すなわち、このテストはアラームを生成できます。この手法はCUSUMとして知られています。
Chow検定が特定のブレークポイント/日付において構造変化が存在するかを静的に確認するのに対し、CUSUMは再帰的です。つまりモデルが徐々に破綻し始めていないかを継続的に監視します。
この手法はcusum_monitor.pyスクリプトに実装されています。主関数はトレーダーの観点から見ると非常にシンプルで、実際の計算の大部分はstatsmodelsライブラリのRecursiveLS()関数が担っています。
def run_early_warning(self, data: pd.DataFrame): # Regression: Y = a + bX y = data.iloc[:, 0] x = sm.add_constant(data.iloc[:, 1]) # We use simple OLS residuals for the CUSUM calculation res = RecursiveLS(y, x).fit() cusum_values = res.cusum nobs = len(cusum_values) # Manually calculate the 5% significance bound # The threshold for the CUSUM test at index 't' critical_val = 0.948 limit = critical_val * (np.sqrt(nobs) + (2 * nobs / np.sqrt(nobs))) current_val = cusum_values[-1] is_breaking = np.abs(current_val) > limit return is_breaking, res
NVDAとINTCを日足でCUSUMモニターにかけ、ライブ監視しているかのように2025年6月1日から12月30日まで検証しました。目的は明白で、2025年9月18日の提携発表という構造変化を、この再帰的監視がどれほど早く検知できるかを確認することでした。
MT5 ConnectedStarting simulation for ['NVDA', 'INTC']... Initial training window: 70 bars. CRITICAL SIGNAL on 2025-09-19 The model has deviated beyond the 95% confidence interval.

図6:NVDA/INTCペアのCUSUMプロット(2025年9月19日にアラーム)
このプロットから、この手法がモデルの逸脱を高い精度で監視できることが確認できます。アラームは2025年9月19日に発火しており、NVDAとINTCの提携発表の翌日にあたります。あえて言うなら、このアラームは可能な限り早く発生したと言えます。では、なぜこれほど高い精度で、しかも迅速に検出できたのでしょうか。
破線はモデル安定性に関する95%信頼区間を示しています。このトンネルの中にある限り、資産間の関係は統計的に一貫しているとみなされます。
青い線はモデル誤差の累積和です。これが破線のトンネルを外れたとき、モデルはもはや関係性を正確に予測できていないことを意味します。これがトリガー日となります。
先に述べた通り、米国政府による関税発表と、NVDA/INTCの提携発表との違いは、予期されていたかされていなかったかという点にあります。米国政府による関税発表は、少なくとも理論的には予期されていないイベントでした。ある意味では予想されていたとしても、その規模の面では予想外でした。一方で、NVDAとINTCの提携は、民間企業同士の戦略的合意であり、市場参加者によって事前にある程度予見されていた可能性が高いイベントです。正式な発表日があったとはいえ、その時点で起こり得るとされていた提携のシグナルはすでに市場によって織り込まれていました。このような段階的な先取りはプロットにも反映されており、2025年9月18日の発表日まで関係性が徐々に変化していったことが示されています。
その翌日には、モデルにおける「誤差」の蓄積を確認するような急激な変化が発生します。累積和の結果がトリガーとなります。私たちは継続的に監視しているため、より早い段階で警告を受けることになります。CUSUM手法が数時間単位で高い精度を発揮できるのは、この誤差の蓄積を追跡し続けているためです。このツールを実取引の監視に使用していれば、発表の前であっても行動することが可能です。これは疑いなく取引上の優位性となります。
なお、図3のRWECもまた、この警告的な動きを提携発表の数週間前に捉えていました。 第8回で見たように、RWECはIS/OOS ADFと併用することで、実取引のポートフォリオの監視およびリバランスに使用できます。これらを併用することで、再帰的CUSUMと同様にモデルのドリフトを追跡することができます。RWECはヘッジ比率のリアルタイムな推移を提供します。ローリングウィンドウ手法を用いることで、RWECは小さく重なり合うウィンドウを観測し、それぞれの時間区間における固有ベクトルを計算します。
理想的なペアトレードにおいては、この固有ベクトル(すなわちウェイト)は安定しているべきです。RWECがこれらの連続する固有ベクトルに一貫した変化を示し始めると、それはベクトルドリフトの兆候を意味します。これはしばしば、ヘッジが非効率になりつつあることを知らせる早期警告システムとなります。NVDA/INTCに関しても、Chow検定で確認された大規模な構造変化の前に、市場が提携を織り込み始めた段階でRWEC分析はすでに固有ベクトルのドリフトを示していました。
では、なぜChow検定や再帰的CUSUMを使わずにRWECだけに依存しないのでしょうか。
これは選択の問題ではありません。実際には、これらはすべて異なる理由と状況のもとで併用すべきものです。Chow検定は静的なツールであり、モデルがすでに崩壊していることを示すもので、その役割は確認的なものです。一方でRWECは動的なツールであり、モデルに更新やリバランスが必要であることを示します。これはすでに私たちの監視ツール群に含まれています。そしてCUSUMは、構造変化が発生する前に最も早く警告を発する動的手法です。実取引監視のパイプラインに組み込まれたときに特に効果を発揮し、それが次回のテーマである「実取引監視の自動化」につながります。
結論
本記事では、資産ペアのヘッジ比率やスプレッドにおける構造変化を早期に検出する手法として、再帰的CUSUM評価を紹介しました。また、同様の用途を持つ手法としてRWECと比較し、ほぼリアルタイムに近い検出性能を確認しました。
さらに、NVDAとINTCの提携を例に取り上げ、このような「完全には予想外ではないが、市場には事前に織り込まれていた」イベントであっても、CUSUM手法によって構造変化を高精度に検出できることを示しました。
この構造変化検出手法を通じて、統計的裁定戦略を試行し始めるために必要な基礎的知識については一通り整理しました。しかし、本連載を締めくくるにあたり、データ分析における専用データベースの利用について触れないわけにはいきません。これは、ローカルなプロトタイプ段階から実運用へ移行するために不可欠な要素です。そのため、専用データベースをパイプラインに組み込む方法が本連載最終回のテーマとなります。
最終回では、スクリーニング、スコアリング、そしてライブ監視を完全自動化し、通常の価格データだけでなく複数のデータソースを用いて、事実上無制限の銘柄ユニバースを管理する方法について解説します。
| ファイル名 | 説明 |
|---|---|
| chow.py | 資産ペアに対してChow検定を実行するPythonスクリプト |
| cusum_monitor.py | 資産ペアに対して再帰的CUSUM(早期警告)を用いたChow検定を実行するPythonスクリプト |
| pearson.py | 資産ペアに対してピアソン相関テストを実行するPythonスクリプト |
| rwec_plot.py | 資産ペアまたはバスケットに対してRWECを実行するPythonスクリプト |
MetaQuotes Ltdにより英語から翻訳されました。
元の記事: https://www.mql5.com/en/articles/20946
警告: これらの資料についてのすべての権利はMetaQuotes Ltd.が保有しています。これらの資料の全部または一部の複製や再プリントは禁じられています。
この記事はサイトのユーザーによって執筆されたものであり、著者の個人的な見解を反映しています。MetaQuotes Ltdは、提示された情報の正確性や、記載されているソリューション、戦略、または推奨事項の使用によって生じたいかなる結果についても責任を負いません。
プライスアクション分析ツールキットの開発(第56回):CPIを用いたセッションの受容と拒否の解読
MQL5取引ツール(第11回):ヒートマップおよび標準モード対応相関行列ダッシュボード(ピアソン、スピアマン、ケンドール)
ラリー・ウィリアムズの『市場の秘密』(第8回):ボラティリティ、ストラクチャー、時間フィルターの組み合わせ
Python-MetaTrader 5ストラテジーテスター(第4回):テスター入門
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索