過学習(overfitting)とは何か、なぜ生じるか、その結果どうなるか。
対策法は何か。
これを「数式なし」で解説してみました。
よく言われる
「過学習を避けるため、ロジスティック回帰に入れられる因子はアウトカムの個数÷10まで」
などの理論背景がわかります。
Contents
過学習(Overfitting)とその対策【数式なしで解説】
そもそも過学習(overfitting)とは何でしょう。
一言で言うとこうなります:
「予測モデルの性能が良すぎてしまい、そのデータでしか通用しないモデルとなってしまうこと」
******
アメリカンフットボールの全国大会、Super Bowlでの勝者により、その年の経済がどうなるか、かなり強力に予測されます。
National football league (NFL)のチームが勝つと、以降の経済成長率は14%上回り、
American football league (AFL)のチームが勝つと、10%低下する。
これが偶然である確率(p値)はなんと470万分の1である。
これが過学習です。
この論調は因果関係を意図していますが、因果関係なわけがないですね。
そのデータ(今まででは、ということ)でしか通用しない解析結果なわけです。
知りたいのは「一般化されうる結果」ですよね。
*******
さて。
研究においては、この問題は常につきまといます。
集められるサンプル数(臨床研究では患者数)なんてたかがしれています。
一方、予測の候補となる特徴量はかなり多い。
この記事では、
・何が原因で過学習が生じるか
・過学習の結果どういう問題が生じるか
ということを、数式なしで説明していきます。
*以下、予測モデルに関する話です。因果推論とは、少し異なります(研究の多くは因果推論です)。
しかし、過学習に関して、その統計的な意味合いがわかるかと思います。
何が原因で過学習が生じるか
2つ原因があります。
・モデルが不確かであること
・モデルのパラメータが不確かであること
それぞれ、
・Testimation bias(Winner’s curse, regression to the mean)
・Optimism
というバイアスに繋がります。
この2つを理解することから始まります。
それぞれ解説していきます。
*なお、「バイアス」と言う言葉が意味するものは、学問によって異なります。
ここでは、「真の(一般化されうる)予測性能からの乖離」を意味しています。
原因1:モデルが不確かであること
どのようなモデルを使うか、解析する前に予め決めておかないといけない、という事です。
でも研究では、データが揃ってからモデルの変数を決めること、普通にありますよ?
とおっしゃる方。
それが間違っているのです。。。。。。。
全く関係ない因子でも予測因子となりうる話
例えば、あるアウトカム(院内死亡)を予測するモデルを作りたいとします。
手元には、本当は全く関係ないと言い切れる因子(その日の服の色が黒、名前の頭文字がAである、など)が20個もあります。
するとどうなるか。
例えばp<0.05で「有意に関連する」と考えることにします(p値についての解説はこちら)
これを基準とすれば、かなりの確率で20個の内一つは有意に死亡と関連しますよね。
もしその因子(例えば服の色)をモデルに入れたらどうなるか。
服の色が死亡を予測するモデルができてしまいます!!!!
つまり、その因子によりアウトカムがover-estimateされてしまうのです。
でもそれが通用するのはそのデータ内だけの話。
→明らかに真実は異なりますよね。
明らかにバイアスが生じています。
これが「Testimation bias」
これが「モデルが不確かである」ためのバイアスです。
統計的な解析結果(test)を基にモデルを作っている(estimation)ことによるバイアス(bias)
なので、
Testimation bias
と呼ばれたりします。
Univariate screeningを想定して(この記事参照)、
より一般的に言えば:
・b (coefficient)がp<0.05なら、b=b
・bがp≥0.05 なら、b=0
という、明らかに正当性の無い操作を行っており、そのためバイアスが生じています。
このバイアス、他にもこんな言い方があります:
✅Winner’s curse(p<0.05で”勝った”因子は必ずバイアスされている、という呪い)
✅Regression to the mean(その一回のp<0.05はたまたまだ、というニュアンス)
Regression to the meanはとても重要な概念なので、詳細に解説します。
👇
「Regression to the mean」のニュアンス
Regression to the meanは、本来は次のような考えです。
具体例が一番わかりやすいです。
秋学期の期末試験で、あるクラスでトップ10%の集団を考えます。
彼らは冬の期末試験でもトップ10%を維持するか?
少なくとも、その集団の何人かは平均に近づきますよね、ほぼ確実に。
たまたま高得点だった人がいるから。
そして、その逆もしかり(たまたま低得点だった人は平均に近づく)
→これがregression to the meanです。
つまり、
その因子がoutlier(トップ10%とかp<0.05とか)であるのは「たまたま」であるため、検定を繰り返すと(他のデータで確かめると)outlierから外れる(=強い予測因子でなくなる)
という事です。
よって、
P<0.05というたまたまな観測結果をもとにモデルを組むと、そのモデルは妥当性がない=Tesimation biasとなる
ということになります。
*この事をselection bias(モデルに含まれる因子を選択する過程でバイアスが生じること)とも言いますが、いわゆる疫学のselection bias(collidor bias)とは意味合いが異なります。
「バイアス」という言葉は学問によって意味が全然違うので、非常に紛らわしいのです。。。。
モデルにつかう予測因子は「前もって」決めるべき
モデルの構築過程で統計検定を使うことで、モデルは信頼性が低くなってしまうのです。
これはどんな状況にも言えます。
例えば:
✅連続変数について、その2乗の変数を入れるか(linearityにflexibilityを加えるため)
→その2乗の変数がp≥0.05だから入れない、というのはtestimation biasです。
✅interactionを入れるか
→そのinteraction termがp≥0.05だから入れない、というのはtestimation biasです。
✅連続変数をROCのbest cutoffで0-1のカテゴリ変数として使う
→その統計操作が、普通再現性がありません。
つまり「モデルが前もって決められている」以外、必ずバイアスが生じてしまうのです!!
これをはっきり認識しておきましょう。
でも多くの場合、モデルを前もって決めること、できませんよね。
この解決方法が、いわゆる「internal validation」になります。
詳細はこちらにて。
原因2:モデルのパラメータが不確かであること
では、もしモデルが仮に正確に前もって決められていたら?
残念ながら、なんとそれでもバイアスが生じてしまうのです!!!!!
(モデルに複数の因子が含まれる場合)
これは、「統計モデル」自体が内包するlimitationです。
全てのモデルは不確実である
統計モデルの因子、それぞれのβに「Standard Error」があります。
(当然ですよね)
これはそれぞれのβ(パラメータ)に不確実性がある事を意味しています。
そして当然ですが、βが大きいほどStandard Errorが大きい。
つまり、より強い予測因子がより強くバイアスされうるのです。
*Regression to the meanの例でもあります。
つまり、
強力に予測されている因子ほど、その影響度合いが過大評価されている可能性が高い
というバイアスが生じているのです!!!
Optimism:サンプル数が重要
このバイアスは
Optimism(モデルが楽観的すぎる;他のデータには通用しない)
と言われます。
「overfitting」は、よくこのことを指して使われます。
当然ですが、サンプル数が増えればβのStandard Errorは減りますね。
つまりサンプル数が大きければ、このバイアスは弱くなります。
ざっくりシミュレーションしてみると、
「予測因子×10以上のサンプル数」がある場合、このバイアスが大きな問題でなくなる
ことがわかります。
理論をかっ飛ばして、この事実が広く知れ渡っているのでした。
*これは「external validation」で対応すべき問題です。
結論
過学習(Overfitting)とは、モデルがそのデータに適合しすぎてしまい、異なるデータでの予測パフォーマンスが落ちることを言います。
原因は2つあり、
・モデルが不確かであること → Testimation biasが生じる
・モデルのパラメータが不確かであること → Optimismが生じる
ではまた。