コンテンツにスキップ

時系列予測の評価と統計 — 「良くなった」を信じる前に確認すること

作成日: 2026-11-01
位置づけ: 特徴量(ニュースなど)を足して予測が良くなったと言うときの、評価のズルと統計の基礎。特定の実験結果は含めない。
関連: ニュース知識グラフで価格予測_モデルの部品_基礎知識_整理


0. 概要

一言で: 「良くなった」と言うには、ズルが入らない評価と、偶然を疑う統計の両方が要る。直し方によって、改善率は数分の一に縮むことがある。

1. 評価のズル(過大評価の 5 要因)

flowchart LR
    Old["見かけの改善率<br>大きい"]
    F1["平均同士の比<br>外れ値を改善に数える"]
    F2["最終エポックを採用<br>検証損失の振れで決まる"]
    F3["正規化のリーク<br>全データで fit"]
    F4["run 数が少ない<br>順位が確定しない"]
    F5["売買の日付ずれ<br>答えを見て売買"]
    New["修正後の改善率<br>小さい"]
    Old --> F1
    Old --> F2
    Old --> F3
    Old --> F4
    F1 --> New
    F2 --> New
    F3 --> New
    F4 --> New
    F5 -.->|売買評価のみ| New
要因 何が起きるか 直し方
平均同士の比 対照(Baseline)の一部の run が外れ値で悪化すると、平均同士の比ではそれが「改善」になる seed を揃えた対応比較にする
最終エポック採用 検証損失は終盤も数倍振れることがある。最終エポックが山に当たるかで結果が決まる 検証損失が最小のエポックの重みを復元する
正規化のリーク スケーラを分割前の全データで fit。テスト期間のレンジが訓練に漏れる 訓練区間だけで fit
run 数が少ない 差が run 間のばらつきと同程度だと、順位を確定できない run を増やし、事前に必要数を見積もる
売買の日付ずれ \(d\) の予測を、\(d\) の終値(答え)で売買する \(d-1\) の終値の時点で判断し、\(d-1 \to d\) の値動きで損益を取る

直し方が逆向きに効くことがある。片方だけ直した数値は誤解を招くので、全部直した状態だけで議論する。

2. 統計: 偶然を疑う

対応のある比較

  • 提案と対照を同じ seed 同士で比べる。seed ごとの差を取るので、学習の運のばらつきが相殺される
  • 改善率は 2 通り出す。平均同士の比(外れ値に引きずられる)と、seed ごとの改善率の中央値(頑健)。食い違うなら、平均が少数の大きな勝ちに支えられている

検定(2 つ並べる理由)

検定 見るもの 強み・弱み
対応のある t 検定 seed ごとの差の平均 検出力が高いが、外れ値に弱い
Wilcoxon 符号順位検定 seed ごとの差の順位 外れ値に強いが、検出力は低め

t 検定だけ有意で Wilcoxon が境界的なら、平均の改善が少数の大きな勝ちに支えられているサイン。

多重比較の補正(Holm 法)

  • 比較を何本もやると、偶然 p<0.05 になるものが混ざる。比較の本数ぶん基準を厳しくする
  • Holm 法: p 値を小さい順に並べ、\(i\) 番目を \(\alpha / (m - i + 1)\) と比べる。上から順に見て、落ちたら以降も棄却しない。Bonferroni より検出力が高い
  • 比較の本数を後から増やすと、補正後の p は上がる。何本比べたかを必ず書く

効果量と検出力

  • Cohen's \(d_z\): seed ごとの差の平均 ÷ その標準偏差。「差がばらつきの何個分か」。0.2 小、0.5 中、0.8 大が目安
  • 検出力: 本当にある差を見つけられる確率。検出力 80%(有意水準 5%)に必要な run 数の目安は
\[ n \approx \frac{7.85}{d_z^2} \]
  • 相対関係で掴む: 必要な run 数は効果量の二乗に反比例する。差が半分になると run は 4 倍。現実的に回せない数の差は、「効かない」と扱うのが妥当

3. イベントスタディ: スコアは先行指標か

  • 問い: ニュースの重要度スコアが高い日のあとに、値動きが大きくなるか
  • 日単位(その日の最大スコア)で集計し、Jonckheere-Terpstra 検定(グループに順序があるとき、単調な増減を見る検定)で調べる
  • 当日の値動きと対応するだけなら、そのスコアは同時点の指標で、先行指標ではない。同じ日の記事数でも同程度に説明できるなら、スコアの付加価値は小さい
  • 同じ日の記事は値動きを共有するので、記事単位でなく日単位で集計する

4. 売買評価(バックテスト)

指標 意味
累積リターン 期間全体の損益
シャープレシオ リスク調整後リターン。年中取引される市場なら年率換算は \(\sqrt{365}\)
最大ドローダウン 高値からの最大の下落幅
Buy & Hold 初日に全額買って持つ。最低限の比較基準
閾値 \(\theta\) 予測が現在価格より \(\theta\) 以上高ければ BUY、低ければ SELL、そうでなければ HOLD
\[ \text{signal}_{d-1} = \begin{cases} \text{BUY} & \hat{p}_d > p_{d-1}(1+\theta) \\ \text{SELL} & \hat{p}_d < p_{d-1}(1-\theta) \\ \text{HOLD} & \text{otherwise} \end{cases} \]
  • 設定を明示する: 現物のロングのみか、空売りありか、全額投入か、手数料はいくらか
  • 勝ちがどの取引から来たかを見る。閾値を上げたときの見かけの勝ちが、暴落日の 1 回の買いを持ち続けただけ、ということがある。予測が前日より系統的に高く出る(上方向の偏り)と、一度買うと売りシグナルが出にくい
  • 予測精度(RMSE)の改善は、収益に直結しない。向きの的中率がランダム並みなら、売買には使えない

5. 数字を見るときのチェックリスト

  1. 比較は同じ seed 同士か。平均同士の比になっていないか
  2. 採用した重みは最良エポックか。最終エポックではないか
  3. 正規化・特徴量の統計は訓練区間だけで作ったか
  4. run 数は十分か。差の大きさ(\(d_z\))から必要数を見積もったか
  5. 比較は何本か。多重比較の補正をしたか
  6. 平均と中央値が食い違っていないか
  7. 売買評価は、判断に使った情報がその時点で手に入ったものか
  8. 勝ちがどの取引から来たか。1 回の偶然に依存していないか

6. 参考

  • Fischer & Krauss (2018) "Deep Learning with Long Short-Term Memory Networks for Financial Market Predictions", European Journal of Operational Research
  • Leung et al. (2021) "The Promises and Pitfalls of Machine Learning for Predicting Stock Returns", The Journal of Financial Data Science

作成: 2026-11-01 / 最終更新: 2026-11-01