さまざまなモデルまたは含める機能の数を選択しようとすると、2つのアプローチが考えられます。
- データをトレーニングセットとテストセットに分割します。さらに良いことには、ブートストラップまたはk-fold交差検証を使用します。トレーニングセットで毎回トレーニングを行い、テストセットの誤差を計算します。テストエラーとパラメーターの数をプロットします。通常、次のようになります。
- パラメーターの値を積分することにより、モデルの尤度を計算します。すなわち、を計算し、これをパラメーターの数に対してプロットします。次に、次のようなものを取得します。
だから私の質問は:
- これらのアプローチは、この問題を解決するのに適していますか(モデルに含めるパラメーターの数を決定するか、いくつかのモデルから選択する)。
- それらは同等ですか?おそらくない。特定の仮定の下で、または実際に同じ最適モデルを提供しますか?
- ベイジアンモデルなどで事前知識を指定するという通常の哲学的な違い以外に、各アプローチの長所と短所は何ですか?どちらを選びましたか?
更新: AICとBICの比較 に関する関連する質問も見つけました。私の方法1はAICと漸近的に等価であり、方法2はBICと漸近的に関連しているようです。しかし、BICはLeave-One-Out CVと同等であることも読んでいます。これは、LOO CVがKフォールドCVに等しい場合、トレーニングエラーの最小値とベイジアン尤度の最大値が等しいことを意味します。おそらく非常に興味深い論文「Jun Shaoによる「線形モデル選択のための漸近理論」」はこれらの問題に関連しています。