72lab
指標の実践とバックテスト· レッスン 4 / 7· 7 分

パラメーターの最適化と過剰最適化 Overfitting

パラメーターを過去で「最高」になるよう調整しても、たいていはノイズを覚えただけです。アウトオブサンプルのテストこそが本当の試験です。

このレッスンは無料です。アカウントを登録すると、インタラクティブ・シミュレーションを使えます

どのレッスンにも、ドラッグや再生ができるインタラクティブ・シミュレーションと確認クイズがあり、登録すれば無料で使え、学習の進み具合も自動で保存されます。まずはこのレッスンのテキスト版の解説をどうぞ。

まだ決めかねていますか?まずは第 1 レッスンを見てみましょう(登録不要)「複数指標のコンフルエンス」。

テキスト版の解説 · 指標の実践とバックテスト レッスン 4「パラメーターの最適化と過剰最適化」

パラメーターを過去で「最高」になるよう調整しても、たいていはノイズを覚えただけです。アウトオブサンプルのテストこそが本当の試験です。

尖った山は崩れ、高原は安定

ある「魔法の値」でだけ特に良く、周りのパラメータはそこそこ、という場合は、たいていノイズを覚えてしまっただけです。これが過剰最適化(オーバーフィッティング)です。周りのパラメータも広く良好な「高原」のほうが信頼できます。

データの一部を試験問題として残しておく

インサンプルのデータでパラメータを選び、一度も見ていないアウトオブサンプルのデータで検証します。この試験にも合格してはじめて、さらに研究する価値があります。

試すほど、注意が必要

同じデータで何百通りものパラメータを試せば、最良のものは単に一番運が良かっただけの可能性が高いです。これをデータスヌーピングといいます。パラメータの調整はできるだけ控え、理屈が通っていて、周りのパラメータも良好な設定を優先しましょう。

このレッスンのポイント

  • 過剰最適化:パラメーターが過去のデータに完璧に合っているのに、新しいデータではひどい成績になることです。
  • ある期間のデータで最適化し(インサンプル)、一度も使っていない別の期間のデータで検証します(アウトオブサンプル)。
  • 頑健な戦略は、ある「魔法の数字」でだけ機能する(尖った山)のではなく、パラメーターの周辺一帯でそれなりの成績を出します(台地)。
  • 試すパラメーターの組み合わせが多いほど、たまたま見栄えのよい結果に当たりやすくなるので、アウトオブサンプルの検証がいっそう重要になります。

実際に試してみよう

次の練習は、このレッスンのインタラクティブ・シミュレーションで取り組めます:

  1. まずヒートマップを見ましょう。インサンプルで「最良」の琥珀色のマスはどのパラメータですか? その周りのマスは何色ですか?
  2. 「アウトオブサンプルで検証」をクリックしましょう。尖った山のプラスのリターンはいくつになりましたか? 例題の「インサンプル +80%、アウトオブサンプル −20%」と同じ現象です。
  3. 水色の点線の枠(高原)のインサンプルとアウトオブサンプルの平均を比べましょう。悪くはなりましたが、崩れましたか?
  4. 高原ゾーン内のマスをいくつか、尖った山の隣のマスをいくつかクリックして、2 つの期間のリターンの違いを見てみましょう。

クイズと解説

1. あるパラメーターはインサンプルでリターン +80%、アウトオブサンプルで −20% でした。最も考えられる原因は?
答え:過剰最適化。過去のノイズを覚えてしまったからです。
2. パラメーターが頑健かどうかを判断するには、何を見るべきですか?
答え:パラメーターの周辺一帯がどれもよい成績か。「尖った山」より「台地」のほうが信頼できます。
3. 同じ期間のデータで 500 通りのパラメーターを試し、最もよいものを選びました。次に最もすべきことは?
答え:最適化に使っていないアウトオブサンプルのデータで検証する。試すほど、たまたまよい結果に当たりやすくなります。それが運かどうかを確かめられるのは、見たことのないデータだけです。

このレッスンの用語

  • データスヌーピング (Data Snooping):同じ過去データで大量のルールやパラメータを試し続けると、たまたま見栄えの良い組み合わせが必ず見つかりますが、それは多くの場合ただの運です。
  • インサンプル (In-Sample):パラメータの最適化に使った期間の過去データです。
  • アウトオブサンプル (Out-of-Sample):最適化には使わず、戦略の検証のためだけに取っておいたデータです。
  • 過剰最適化(オーバーフィッティング) (Overfitting):パラメータを過去のデータに合わせすぎた状態で、新しいデータではうまくいきません。
パラメーターの最適化と過剰最適化(指標の実践とバックテスト) · 72lab