-本当に“効く”ファクターを見極めるための分析-
STEP2では多くの特徴量(ファクター)を作成しました。しかし、ここで立ち止まるべき問いがあります。
「この中で、本当に使える特徴量はどれなのか?」
単に特徴量を機械学習に投入するだけでは、ノイズや未来リークのあるファクターまで含まれてしまい、モデルが不安定になったり、誤った結論を導いてしまう恐れがあります。そこで重要になるのが、実務でも多用される IC(情報係数)テストと分位点分析です。
IC(Information Coefficient:情報係数)とは?
ICは、ある特徴量とターゲットとの順位相関を数値化したもので、特徴量がどれだけ“効いているか”を定量的に判断できます。多くの場合、スピアマン順位相関(Spearman correlation)を使って評価します。
ICの目安 | 意味 |
---|---|
0.20以上 | 強い相関。積極的に採用 |
0.10〜0.20 | 相関あり。補助的に活用可能 |
0.00〜0.10 | 弱い or 無関係。除外候補 |
-0.20以下 | 逆相関。逆張り系として検討可能 |
ICの使い方
この数値を使うことで、たとえば以下のような判断ができます:
- RSIとリターンのICが0.25 → かなり効いている(入れるべき)
- ボリンジャーバンド上限とリターンのICが−0.18 → 逆張りとして検討
- VIXのICが0.02 → 相関弱く、モデルに入れても意味がないかも?
ICを計算することで、感覚や印象に頼らず、定量的な評価ができるようになります。
なぜスピアマン順位相関なのか?
ICを計算する際、多くの場合「スピアマン順位相関(Spearman correlation)」を使います。 これは、以下の理由から特に重視されています。
- 値の順番(順位)で相関を評価するため、外れ値に強い
- 線形ではない“緩やかな関係”も捉えられる
- 株価やリターンのような非正規分布のデータでも使える
たとえば、特徴量が大きいほど株価が上がる“傾向”はあるが、その関係が直線的ではない──というようなケースでは、スピアマン相関が適しています。
他の相関との違いは?
相関の種類 | 評価する内容 | 特徴 | 弱点 |
ピアソン相関(Pearson) | 値そのものの“線形な関係” | シンプルで速い | 外れ値に弱く、非線形を見逃す |
スピアマン順位相関(Spearman) | 値の“順位”の関係 | 順位ベースで外れ値に強く、非線形にも対応 | 単調でない関係(ジグザグ)には弱い |
ケンドール相関(Kendall) | 順位の一致率(ペアの整合性) | 精度が高くノイズにも強い | データ量が多いと計算が重い |
このように、スピアマン順位相関は「精度」「頑健性」「直感的な解釈」のバランスが非常に良く、クオンツ分析では多く使われているのです。
ICテスト手順
以下は、ICテストと分位点分析の基本的な進め方です:
- ターゲット(予測したい目的変数)を用意
- 例:翌日の上昇/下落(上がっていれば1、下がっていれば0)
- すべての特徴量とターゲットのスピアマン相関を一括計算
- Pythonでは
.corr(method='spearman')
を使えば簡単に計算できます
- Pythonでは
- 相関係数の高い順にランキング
- ICが高い特徴量を抽出(例:上位20個)
- 分位点分析で現実的な勝率差を確認
- 特徴量を5分位に分けて、Q1〜Q5のターゲット平均(勝率)差を見る
- ICと勝率差の両方を満たすファクターを選抜
- 実際のモデルや売買戦略に使えるファクターが残る
分位点分析とは?
分位点分析とは、ファクターの値を小さい順に並べて5つのグループ(=五分位、Q1〜Q5)に分け、 それぞれのグループで将来のリターンにどんな傾向があるかを比べる方法です。
たとえば、ある特徴量(例:RSI)を使って、
- Q1:RSIが最も低い20%の銘柄
- Q5:RSIが最も高い20%の銘柄
と分けたときに、
「Q5は将来リターンが高い、Q1は低い」という結果が出れば、このファクターは“効いている”と言えます。
これは非常に重要な分析で、ファクターが単に相関しているだけでなく、実際に売買戦略として使える形になっているかを確認できます。
分位点分析は、ICテストとセットで行うことで、ファクターの“現実的なエッジ”を立証する手段になります。
ICを使うメリット
- 有効な特徴量を事前にスクリーニングできる
- 無駄なノイズを除去してモデル精度を安定化できる
- 定量的な説明根拠を持てる(ファクターの説得力)
ICを確認せずに「全部入れて学習させればいい」とやると、かえってノイズでモデルがブレたり、未来リークの温床になったりするリスクがあります。
だからこそ、事前にICでふるいにかけておくのです。
まとめ:ICは“ファクターの健康診断”
このSTEP3では、次の3つの作業を行います:
- ターゲットのスピアマン相関(IC)を計算
- ICの高いものから候補を絞り、分位点分析で現実的なエッジを確認
- 未来リークを避けつつ、実用的な特徴量を抽出
これにより、「ただ作っただけの特徴量」から「モデル構築に耐えうる特徴量」へとふるい分けができました。
ICテストは、特徴量が本当に役立つかを診断する“健康診断”のようなものです。
ICの高い特徴量だけを残し、精度と解釈性の両方を担保したモデル設計をすることが、クオンツ分析の第一歩になります。
次ステップ:STEP4 モデル構築へ
このファクターをもとに、次はいよいよ STEP4:XGBoostによるモデル構築と評価 に進みます。
次回は:
- なぜXGBoostを使うのか?
- モデルの学習と評価方法
- 特徴量重要度の可視化
を扱っていきます。


実例:特徴量の再抽出、ICテストと分位点分析
これまでのSTEP(STEP0〜STEP2)の実例の振り返り
- STEP0:目的の設定
ミニ日経225先物において「朝8:45〜9:45の1時間で上昇する確率を予測するモデル」を構築することを目標としました。 - STEP1:ターゲットの設計
「8:45〜9:45で上昇したら1、下落したら0」という2値ターゲットを設定し、予測時点で取得可能な前日データのみを使用。未来リークを防ぐ構成としました。 - STEP2:特徴量の設計
米国指数、VIX、金利、為替などを用いて、前日終値との差(ギャップ)やモメンタム、前日リターンなど多数の単一特徴量を設計。
前回はSTEP2で作成した単一特徴量に対して、ICテストと分位点分析を行いました。しかし、抽出された20個の特徴量すべてが「IC値・分位点勝率差」ともに0.02以下と非常に低く、有効性が見込めるファクターが発見できませんでした。
そのため、今回はアプローチを変えて、2因子マトリクスを用いた分析を実施しました。
2因子マトリクスとは?
2因子マトリクスとは、2つの異なる特徴量(ファクター)を掛け合わせることで、より複雑で強力な予測力を持つコンボ特徴量を生成する手法です。
このアプローチの利点は以下のとおりです:
- 単体では弱い特徴量同士でも、組み合わせることで相関が強化される可能性がある
- 市場の複合的な動き(例:外部環境と価格の関係)を捉えられる
- 分散されたシグナルの中から“共鳴する組み合わせ”を探索できる
今回は、60000通り以上の因子の掛け合わせを生成し、それぞれに対してIC(スピアマン相関)および分位点分析を実施しました。
特徴量の抽出方法
今回、0.1以上という“強い相関”の条件を満たす特徴量は存在しなかったものの、0.09台の高IC値を持つ2因子特徴量が多数存在していたため、それらを一旦抽出対象としました。
0.09という水準は、過去の実務的な経験からも“準有効圏”と見なされることがあり、ここを起点に分位点勝率との一致を見ることで実用可能性を判断しました。
- 終値を含む未来リークの可能性がある特徴量をすべて除外
- 単一ファクター同士の全組み合わせを作成(掛け算)
- 各2因子特徴量に対してICおよび分位点勝率差を計算
- ICが0.09以上のものを一旦抽出
- ノイズ・冗長性・実務的な意味解釈の観点から13個に厳選
これまでの分析では、単一特徴量に対するICや分位点を確認してきましたが、今回はさらに一歩進んで、
2つの特徴量を掛け合わせた “2因子コンボ特徴量” に対してICおよび分位点分析を行いました。
また、過去に使っていた N225H1_close_ret_1d
のような終値を使った特徴量は、ターゲットが8:45〜9:45の変動であるため 未来リークに該当し、除外対象としました。
特徴量抽出の条件
- IC ≥ 0.09(Spearman相関)
- 上記条件を満たす2因子ペアの中から、冗長性・ノイズ性の高いものを除外
抽出された13個の2因子特徴量(一覧)
以下は最終的に選ばれた13個のコンボ特徴量と、それぞれのIC値・計算の意味を示した一覧です:
因子1 | 因子2 | IC | 計算式 |
Topix_low_from_open | Dow_ret_diff_1d | 0.0968 | Topixの安値と始値の差 × ダウのリターン差分 |
USDJPY_low_from_open | Sp500_ret_diff_1d | 0.0962 | ドル円の安値と始値の差 × S&P500のリターン差分 |
VIX_low_from_open | Sp500_ret_diff_1d | 0.0960 | VIXの安値と始値の差 × S&P500のリターン差分 |
VIX_low_from_open | Dow_ret_diff_1d | 0.0957 | VIXの安値と始値の差 × ダウのリターン差分 |
Nasdaq_low_from_open | Sp500_ret_diff_1d | 0.0950 | ナスダックの安値と始値の差 × S&P500のリターン差分 |
Topix_low_from_open | Sp500_ret_diff_1d | 0.0944 | Topixの安値と始値の差 × S&P500のリターン差分 |
N225_low_from_open | Sp500_ret_diff_1d | 0.0916 | 日経平均の安値と始値の差 × S&P500のリターン差分 |
N225_low_from_open | Dow_ret_diff_1d | 0.0914 | 日経平均の安値と始値の差 × ダウのリターン差分 |
Nasdaq_low_from_open | Dow_ret_diff_1d | 0.0928 | ナスダックの安値と始値の差 × ダウのリターン差分 |
US02Y_low_from_open | Sp500_ret_diff_1d | 0.0920 | 米2年債の安値と始値の差 × S&P500のリターン差分 |
US05Y_low_from_open | Sp500_ret_diff_1d | 0.0939 | 米5年債の安値と始値の差 × S&P500のリターン差分 |
US10Y_low_from_open | Sp500_ret_diff_1d | 0.0907 | 米10年債の安値と始値の差 × S&P500のリターン差分 |
USDJPY_low_from_open | Dow_ret_diff_1d | 0.0905 | ドル円の安値と始値の差 × ダウのリターン差分 |
このSTEPでは、機械学習によって“何が効いているか”が明確になりました。
これにより、「どの特徴量がどれだけ効いているか?」を機械学習の力で定量的に検証する段階に進みます。
次回もお楽しみに!

