私はRに二項家族glmを当てはめており、説明変数のグループがあり、最良のものを見つける必要があります(測定値としてのR2乗は問題ありません)。説明変数のランダムな異なる組み合わせをループするスクリプトを記述してから、どれが最高のパフォーマンスを発揮するかを記録する以外には、どうすればいいかわかりません。また、leaps
パッケージleapsの関数は、ロジスティック回帰を実行していないようです。
どんな助けや提案も大歓迎です。
私はRに二項家族glmを当てはめており、説明変数のグループがあり、最良のものを見つける必要があります(測定値としてのR2乗は問題ありません)。説明変数のランダムな異なる組み合わせをループするスクリプトを記述してから、どれが最高のパフォーマンスを発揮するかを記録する以外には、どうすればいいかわかりません。また、leaps
パッケージleapsの関数は、ロジスティック回帰を実行していないようです。
どんな助けや提案も大歓迎です。
回答:
ステップワイズおよび「すべてのサブセット」メソッドは、一般的に悪いです。「Stepwiseの停止:Stepwiseメソッドが悪い理由と、David Cassellと私(SASを使用しましたが、レッスンは適用されます)またはFrank Harrell Regression Modeling Strategiesの使用方法」を参照してください。自動的な方法が必要な場合は、LASSOまたはLARをお勧めします。ロジスティック回帰のLASSOパッケージはここから入手できます。別の興味深い記事は、ロジスティックの反復LASSOに関するものです。
ロジスティック回帰は最尤法で推定されるため、ここでleaps
は直接使用しません。延長leaps
にglm()
機能があるbestglmパッケージ(通常勧告は以下のように、そこにビネットを参照してください)。
また、David W. Hosmer、Borko Jovanovic、Stanley Lemeshowの記事「Best Subsets Logistic Regression // Biometrics Vol。45、No。4(1989年12月)、pp。1265-1270(通常、大学のネットワークを通じてアクセス可能)。
R2R2 is not an appropriate goodness-of-fit measure for logistic regression take an information criterion AICAIC or BICBIC
bestglm
、leaps
計算のためにバックエンドで使用します!したがって、データセットにNAがあると失敗し、次のようなメッセージが表示されますError in leaps.setup(x, y, wt = weights, nbest = nbest, nvmax = nvmax, : NA/NaN/Inf in foreign function call (arg 3)
が、興味深いことに、私のデータセットにはNAがなく、いくつかのゼロがありますが、この関数は文句を言い、その正確なメッセージを与えます!!
1つのアイデアは、ランダムフォレストを使用し、それが出力する変数重要度測定を使用して、最適な8つの変数を選択することです。別のアイデアは、「boruta」パッケージを使用してこのプロセスを数百回繰り返し、モデルにとって一貫して最も重要な8つの変数を見つけることです。