ロジスティック回帰におけるモデルの選択とモデルのパフォーマンス


9

ロジスティック回帰におけるモデルの選択とモデルのパフォーマンスについて質問があります。3つの異なる仮説に基づく3つのモデルがあります。最初の2つのモデル(zとxという名前を付けます)は、各モデルに1つの説明変数のみを持ち、3番目のモデル(wという名前を付けます)はより複雑です。私はwモデルの変数選択にAICを使用し、次に従属変数を最もよく説明する3つのモデルのどれを比較するのにAICを使用しています。wモデルのAICが最も低いことがわかりました。モデルの予測能力についてのアイデアを得るために、そのモデルでいくつかのパフォーマンス統計を実行したいと考えています。私が知っているのは、このモデルは他の2つよりも優れているということですが、それほど優れているわけではありません。

すべてのデータを使用してモデルを学習したので(3つのモデルをすべて比較できるようにするため)、モデルのパフォーマンスをどのようにすればよいですか?私が集めたものから、AICを使用してモデル選択から取得した最終モデルでk分割交差検証を実行することはできませんが、すべての説明変数を含めて最初から開始する必要がありますか?これがAICで選択した最後のモデルだと思いますが、そのパフォーマンスを知りたいのですが、モデルにバイアスがかかる可能性があるため、すべてのデータをトレーニングしたことを実感してください。したがって、すべてのフォールドのすべての説明変数から最初から開始する必要がある場合、いくつかのフォールドに対して異なる最終モデルを取得します。最良の予測力を提供するフォールドからモデルを選択し、それを完全なデータセットに適用して比較できますか?他の2つのモデル(zおよびx)とのAIC?またはそれはどのように機能しますか?

私の質問の2番目の部分は、過剰パラメーター化に関する基本的な質問です。私には156のデータポイントがあり、52は1、残りは0です。wモデルには14の説明変数を選択できますが、パラメーター化が多すぎるため、すべてを含めることはできません。観測値が最も少ない従属変数のグループの10%のみを使用する必要があることを読みました。私にとっては5だけでしょう。生態学の質問に答えようとしていますが、単純に生態学に基づいて従属を最もよく説明していると思う開始変数を選択しても大丈夫ですか?または、開始説明変数をどのように選択しますか?一部の変数を完全に除外するのは適切ではないと感じています。

だから私は本当に3つの質問があります:

  • 交差検証を使用して完全なデータセットでトレーニングされたモデルでパフォーマンスをテストしても問題ありませんか?
  • そうでない場合、交差検証を行うときに最終的なモデルをどのように選択しますか?
  • 開始パラメーターをどのように選択すれば、パラメーター化しすぎますか?

私の乱雑な質問と私の無知のため申し訳ありません。同様の質問がされたことは知っていますが、それでも少し混乱しています。どんな考えや提案にも感謝します。

回答:


7

データのテストセットを使用してモデルを検証する方が良いことは事実です。ただし、自分のしたことについて正直である限り、モデルがデータに対してどれだけうまく機能したかを示すことができます。あなたが本当にできないことは、それが他のデータでこれをうまく行うと言うことです:それはおそらくしません。残念ながら、多くの出版された記事は少なくともこの誤った考えを示唆しています。

あなたが尋ねる

単純に生態学に基づいて依存を最もよく説明していると思う開始変数を選択してもよいですか?

それは大丈夫であるだけでなく、自動化されたスキームよりも優れています。実際、これらも最終的な変数になる可能性があります。それは、ある程度、その分野の知識の程度に依存します。あなたが研究していることについてあまり知られていない場合は、より探索的なアプローチが必要になる場合があります。しかし、特定の変数をモデルに含める必要があると考える正当な理由がある場合は、必ずそれらを入れてください。重要ではないとしても、それらをそこに残しておくことを主張します。


1

モデルを選択する場合は、チェリーピッキングよりも徹底的な検索を行い、各モデルに重みを付ける方がよいと思います。変数は14しかありませんが、これは確かに実現可能です。特にサンプルサイズが小さいため、16384の異なるモデルが法外に大きくなることはありません。また、次のように定義された正規化された重みも調べます。

wメートル=[Σlexp12[ClCメートル]]1

これらの重みは、AICが対数尤度の2倍プラスベータの数の2倍であると仮定しています。最適なモデルの重みが近い場合は、それを使用します。それ以外の場合は、総重量が近いモデルの結果を平均化する必要があります。通常発生するのは、変数の「コア」グループは常に含まれるべきであり、「非コア」セットに対する不確実性と、重要度の高い変数の3番目のセットは重要度の高いモデルには決して表示されません。11

AICをBICまたは他のペナルティベースのICに置き換えて、使用される特定の複雑性ペナルティに重みがどの程度依存するかを確認することもできます。


すべての可能なモデルでAICを使用することは、非常に多様性のあるプロセスであり、そのパフォーマンスについて疑問に思います。広い一般論で言えば、これを変数選択問題と考えるのは必ずしも論理的ではなく、むしろペナルティ(縮小)問題と考えることができます。
フランクハレル2012

モデルの選択に極端な多様性がないプロセスはありますか?あなたは巨大な離散空間を扱っています-これは常に多数の比較につながります。問題は、モデルに対する暗黙の事前が妥当なものであるかどうかということです。
確率

よく置きます。しかし、ほとんどのモデル選択演習は不要(つまり、節約はあなたの友達ではありません)であり、事前分布がまったくない結果だと思います。
フランクハレル2012

私も同意します。たとえば、正規分布を使用するかt分布を使用するかなど、モデル構造の問題にはベイズ因子が最もよく使用されると思います。それらは共変量選択には役に立たないが、収縮と比較して非効率的です。
probabilityislogic

コメントが遅くなってすみませんが、Rでこれを計算する簡単な方法を知っていますか?リストまたはマトリックスにAIC:sがあります。私はRにかなり慣れていないため、複雑な関数の構築は困難です。ありがとう!
mael 2012

0

「相互検証を使用して完全なデータセットでトレーニングされたモデルでパフォーマンスをテストしてもいいですか?」に答えるには いいえ、これは問題ないと思います。3つのモデルすべてをデータセットの同じサブセットに適合させる必要があります。次に、交差検証を実行して、どちらが優れているかを確認します。


1
だから私があなたを正しく理解しているなら、私はすべてのモデルに対して1つのトレーニングと1つのテストセットだけを使うべきですか?それでも最後のモデルに5つの変数を使用できますか、それとも過剰パラメーター化のリスクですか?そして、トレーニングとテストセットが1つしかない場合はリスクではありません。これは、分割したデータが比較的少ない場合に分割される場所に大きく依存するためです。または、心配する必要はありませんか?それ以外の場合は、これが最も正しい方法であると感じます。
mael

0

交差検証を使用して完全なデータセットでトレーニングされたモデルでパフォーマンスをテストしても問題ありませんか?

私はそうは思いません。おそらく、より良い方法は、繰り返し交差検証を使用して3つのモデルのそれぞれを評価することです。事前の知識に基づいて機能を選択した場合、機能の選択について心配する必要はありません。この方法では、モデルのパフォーマンスを評価できます。

そうでない場合、交差検証を行うときに最終的なモデルをどのように選択しますか?

繰り返し交差検証を使用してモデルのパフォーマンスを評価したら、利用可能なすべてのデータを使用して最終モデルをトレーニングできます。

開始パラメーターをどのように選択すれば、パラメーター化しすぎますか?

私が正しく理解している場合:上記の寄稿者が提案したように、エリアの事前の知識に基づいて機能を追加するか、過剰検証を回避するために交差検証内で機能選択を実行する必要があります。この同じ特徴選択手順は、最終的なモデルをトレーニングするときにすべてのデータに適用されます。このモデルを使用して、モデルの一般化されたパフォーマンスを報告することはできません。これは、相互検証の推定に基づいている必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.