TL;DR
- 過去データで p<0.05 出た戦略の多くは、未知データで再現しない
- 原因: IS / OOS 分離の不徹底、grid search による暗黙の multiple testing、cherry-picking
- 対策: Bonferroni / Benjamini-Hochberg 補正、walk-forward validation、検定数の事前固定
- 100 random walk pair を検定すれば 5 個は偶然 p<0.05 が出る — それを「edge」と勘違いする構造
Hook
「あなたが見つけた edge は、本当は 16 個試した中の 1 個かもしれない」
retail quant が backtest を回して「年率 +X%、Sharpe 2.0、p<0.05」と出した瞬間、戦略開発の最も危険な瞬間が来ている。p-value が低いのは「edge がある」のではなく「16 回試したから」かもしれない。
Background
統計学における p-hacking (data dredging) は、検定を繰り返して偶然有意に見える結果を選び出す 行為。Bailey, Borwein, Lopez de Prado, Zhu (2014) “Pseudo-Mathematics and Financial Charlatanism” は、quant strategy 研究での p-hacking が業界全体に蔓延していると批判した。
retail でも同じ罠が出る。grid search でパラメータ範囲を試し、最良値を選ぶ。それは本質的に 複数検定 であり、「最良値」が偶然有意である確率は高い。
教科書的事実
100 個の独立な random walk pair に対して相関検定を α = 0.05 で実行すれば、期待値で 5 個 は偶然有意になる。それらは何の関係もない random walk なので、edge ではない。だが「最も有意な相関」を選んで「これは関係がある」と結論したら、それは p-hacking。
Theory — IS / OOS 分離と最適化原則
過学習を避ける最低限の規律は IS (In-Sample) / OOS (Out-of-Sample) 分離。
標準的アプローチ
- データを 2 分割 (例: 70% IS、30% OOS、もしくは時系列で前半 IS / 後半 OOS)
- IS でパラメータ最適化
- OOS は一度だけ評価
- OOS で性能が IS と同等なら採用、乖離大なら過学習
ここで重要なのは「OOS は一度だけ」。OOS 結果を見て IS を修正する循環に入った瞬間、OOS は IS の延長になり、過学習を再生産する。
Walk-Forward Validation
時系列での自然な拡張。
[----train1----][test1]
[----train2----][test2]
[----train3----][test3]
直近 N 期間で訓練、次の M 期間で評価、ずらして繰り返す。各 test 区間の OOS 性能を連結して評価する。regime change への robustness が測れる。
Multiple Testing 補正
複数戦略・複数パラメータを同時に検定する場合:
- Bonferroni 補正: p < α/k を要求。k=10 で p < 0.005 が必要。conservative
- Benjamini-Hochberg (FDR): 順位 i で p_(i) ≤ (i/k)·α を満たす最大の i まで有意。large k で実用的
詳細は Lopez de Prado (2018) AFML Ch. 7-8 を参照。
Concrete example
教科書的な思考実験。100 個のランダムなパラメータ組み合わせを backtest し、Sharpe を計算する。α = 0.05 でテストすると:
- 期待値で 5 個は偶然 p<0.05
- そのうち最大 Sharpe を選ぶと、確実に有意に見える
- だがこの「最大 Sharpe」は本質的にノイズ
これを Bonferroni 補正すれば、p < 0.05/100 = 0.0005 を要求。極端に有意な結果以外は棄却される。本物の edge ならこのバーを越える、偽物なら越えない。
Limitation / Counter-argument
1. Bonferroni は過剰に conservative
検定数が多いと、Bonferroni では本物の edge も棄却されかねない。Benjamini-Hochberg が代替だが、こちらは「有意項目内の偽陽性割合」を制御する別の概念。状況に応じた使い分けが要る。
2. retail で完全 OOS 分離は難しい
retail researcher は時間 budget 制約で「同じデータを何度も触る」。OOS を見ない規律を保つのは精神的に困難。Pre-registration (公開仮説) や封筒方式 (結果を物理的に封印) のような工夫が要る。
3. データそのものが汚染されている
OOS 分離をしても、利用するデータセット自体に survivorship bias、look-ahead bias、selection bias がある。OOS を綺麗にしても、データが汚染されていれば結果は信用できない。
4. Walk-forward の re-optimization 頻度
walk-forward を回す時、再最適化の頻度を上げすぎると過学習に近づき、下げすぎると regime に追従できない。経験則は「N 期間で安定的に再最適化」が一般的だが、最適頻度は商品依存。
Practical takeaway
retail が p-hacking を避けるための具体策:
- grid search 後の最良値を信用しない: 最良の代わりに「上位 N の中央値」を選ぶ。Lopez de Prado 推奨
- 検定数を事前固定: 「10 戦略中ベストを選ぶ」と最初に宣言。後から増やさない
- OOS を見る回数を制限: できれば 1 回。物理的に封印するなどの工夫
- Walk-forward を回す: 単一の OOS より、複数 test 区間の OOS 平均を見る
- 再現実験を組む: backtest 結果を別期間・別商品で再現できるか確認。再現しなければ偽物
ただしこの 5 つを実行しても OOS で残る戦略がライブで効く保証はない。これは bare minimum であって、合格条件ではない。
まとめ
backtest で p<0.05 が出ても、それが「16 個試した 1 個」でないかを疑う規律が retail quant を救う。検定数を意識し、Bonferroni / BH で補正し、walk-forward で時系列 robust を測り、OOS は 1 回しか触らない。これが基本姿勢。
「過去データで有意」を信じて live に入れた瞬間、その edge が偶然だったかどうかが残酷に検証される。それを backtest 段階で代替する作業が、本記事のテーマ。
参考文献
- Bailey, D.H., Borwein, J., Lopez de Prado, M., Zhu, Q.J. (2014). Pseudo-Mathematics and Financial Charlatanism. Notices of the AMS, 61(5), 458-471.
- Lopez de Prado, M. (2018). Advances in Financial Machine Learning. Wiley. Ch. 7, 8.
- Benjamini, Y., Hochberg, Y. (1995). Controlling the False Discovery Rate. Journal of the Royal Statistical Society B, 57(1), 289-300.
- Harvey, C.R., Liu, Y. (2014). Backtesting. Journal of Portfolio Management, 42(1), 13-28.
- Pardo, R. (2008). The Evaluation and Optimization of Trading Strategies. Wiley.