予測モデルの検証を、より厳密に

2026年10月27日公開

ChatGPT Image 2026年8月7日 17_10_42
FactDecodeの予測モデルの学習・検証方法を見直しました。過去の各検証期間でファクターを選び直し、予測先の結果が学習に混ざらないよう、時間の境界を厳密に管理します。最終モデルは結果が確定した利用可能な履歴で再学習し、任意の予測期間でも共通の方式で分析できるようにしました。

将来の結果を見ない、より厳密なOOS検証へ

予測モデルを評価するとき、過去のデータによく当てはまることと、まだ見ていないデータでも予測力が維持されることは、必ずしも同じではありません。FactDecodeでは今回、時間の流れに沿ってモデルを学習・評価する仕組みを見直しました。

過去の各検証期間について、その時点で結果が確定していたデータだけを学習に使用します。さらに、学習期間と検証期間の境界で、予測先の結果が重複しないように管理します。これにより、将来の結果を知った状態でモデルを評価してしまうリスクを抑え、より適切なOut-of-Sample(OOS)検証を行います。

OOS評価では、学習に使っていない期間の結果を確認できます。全体の評価だけでなく、検証期間ごとの違いも把握できます。

ファクターの選定も、検証期間ごとにやり直す

予測モデルの検証では、どのファクターを使うかという判断も重要です。すべての期間の結果を見てから有利なファクターを選んでしまうと、過去の検証成績を実際以上によく見せるおそれがあります。

今回の改善では、各検証期間で、そこまでの履歴に基づいてファクターを選び直し、モデルを構築する方式を採用しました。また、ファクター候補の履歴条件も見直し、比較に必要な履歴を確認しながら、データの開始時期が新しいファクターを必要以上に早く除外しないようにしています。

ただし、候補に残ることと、最終的に採用されることは別です。各期間での選定結果に基づいて利用するファクターを判断することで、ファクターの選定からモデルの評価までを、より一貫した時系列の検証として扱えるようにしました。

最終モデルには、学習可能な履歴を活用

過去の予測力を検証することと、現在の予測に使うモデルを学習することには、それぞれ異なる役割があります。これまでの方式では、最終モデルの学習に使えるデータの一部を、学習から除外していました。

今回の改善では、ファクター選定とモデル設定を決めた後、予測先の結果が確定している学習可能な履歴を使って、最終モデルをあらためて学習します。これまで最終学習に使用していなかった後半の履歴も活用することで、利用可能な情報をより有効に使えるようにしました。一方、OOS検証では、各検証期間より先の結果を学習に使わないという境界を維持しています。

短期から長期まで、共通の分析方式に

今回の学習・検証方式は、特定の資産や予測期間だけに限定していません。5日・20日・60日・120日・240日などのプリセットに加え、30日や90日など任意の正整数で指定した予測期間にも、同じ分析方式を適用します。

なお、FactDecodeの予測期間は暦日数ではなく、分析対象データの観測数を表します。また、分析に必要な履歴が不足している場合は、無理にモデルを構築せず、分析を開始できない理由を確認できるようにしています。

保存済みの分析結果はそのまま

今回の改善は、新しく実行する分析に適用されます。これまでに保存したRunの予測値やOOS評価を再計算することはなく、以前の方式で得られた結果も引き続きResultsから確認できます。

今回の変更は、予測モデルの検証方法と最終学習の整合性を高めるためのものです。将来の予測精度や投資成果の向上を保証するものではなく、外部データの公表時点や改定履歴を完全に再現できることを意味するものでもありません。

FactDecodeはこれからも、予測値だけでなく、その予測をどのように評価し、どのファクターが選ばれたのかを確認できる分析環境を目指して改善を続けます。