重回帰モデルに含める変数の選択


35

現在、多重線形回帰を使用してモデルを構築しています。私のモデルをいじくり回した後、どの変数を保持し、どの変数を削除するかをどのように決定するのが最善かわからない。

私のモデルは、DVの10個の予測子から始まりました。10個すべての予測変数を使用した場合、4つが有意と見なされました。明らかに正しくない予測子の一部のみを削除すると、最初は重要ではなかった予測子の一部が重要になります。私の質問に私を導きます:どの予測子をモデルに含めるかをどのように決定するのですか?すべての予測変数を使用してモデルを一度実行し、重要でない予測変数を削除してから再実行する必要があるように思えました。しかし、それらの予測子の一部のみを削除すると他の予測子が重要になる場合、このすべてに対して間違ったアプローチを取っているのではないかと疑問に思われます。

私はと信じて、このスレッドは私の質問に似ていますが、私は私が正しく議論を解釈していますが不明です。おそらくこれはより実験的なデザインのトピックですが、誰かが共有できる経験があるかもしれません。


これに対する答えは、目標と要件に大きく依存します。単純な関連付けを探しているのか、それとも予測を目指しているのか。解釈可能性はどのくらいですか?プロセスに影響を与える可能性のある他の出版物の変数に関する情報はありますか?変数の相互作用または変換されたバージョンはどうですか:それらを含めることができますか?など。良い答えを得るには、何をしようとしているかについて、より詳細に指定する必要があります。
ニックサブベ

あなたが尋ねたものに基づいて、これは予測のためです。他の変数への影響は、可能な関連付けを提供します。それらの間に相互作用はありません。変換する必要があるのは1つの値だけであり、それはすでに行われています。
cryptic_star

1
どの予測変数を含めるべきかという理論はありますか?測定した変数が多く、理論がない場合は、観測のセットを保持して、モデルの作成に使用されなかったデータでモデルをテストできるようにすることをお勧めします。同じデータでモデルをテストおよび検証することは正しくありません。
ミシェル

クロスバリデーション(ニック・サッベが説明しているように)、罰せられた方法(Dikran Marsupial)、または事前理論に基づいて変数を選択する(Michelle)はすべてオプションです。ただし、変数の選択は本質的に非常に難しいタスクであることに注意してください。なぜこれが非常に潜在的であるのかを理解するために、ここでの私の答えを読むと役立つかもしれません:algorithm-for-automatic-model-selection。最後に、問題がこのアクティビティの論理構造にあることを認識する価値があります。コンピュータが自動的にそれを行うか、自分で手動で行うかではありません。
GUNG -復活モニカ

この投稿への回答からもチェック:stats.stackexchange.com/questions/34769/...
jokel

回答:


19

私のコメントに対するあなたの反応に基づいて:

予測を探しています。したがって、係数の(に)有意性に依存するべきではありません。あなたはより良いでしょう

  • 予測のニーズを最もよく表す基準を選択します(たとえば、誤分類率、ROCのAUC、重み付きのこれらの形式など)。
  • 対象の各モデルについて、この基準を評価します。これは、たとえば、検証セットを提供する(幸運または金持ちの場合)、クロス検証(通常は10倍)、または関心の基準が許可するその他のオプションを提供することによって実行できます。可能であれば、各モデルの基準のSEの推定値も見つけます(たとえば、クロスバリデーションで異なるフォールドの値を使用して)
  • これで、基準の最適値を持つモデルを選択できるようになりましたが、通常、最適値の1つのSE内にある最も類似したモデル(最小変数)を選択することをお勧めします。

WRT 関心の各モデル:ここはかなりのキャッチに位置しています。10の潜在的な予測子を使用すると、潜在的なモデルのトラックが増えます。このための時間またはプロセッサを持っている場合(または、モデルが十分に速くフィットし、十分に評価されるようにデータが十分に小さい場合):ボールを持ってください。そうでない場合は、経験に基づいた推測、順方向または逆方向のモデリング(ただし、有意性の代わりに基準を使用)、またはより良い方法でこれを行うことができます:合理的なモデルのセットを選択するアルゴリズムを使用します。これを行う1つのアルゴリズムは、ペナルティ付き回帰、特になげなわ回帰です。Rを使用している場合は、パッケージglmnetを接続するだけで準備完了です。


+1ですが、なぜ「SEの中で最も価値のある最もwithin約なモデル(最小変数)を選択する」のかを正確に説明できますか?
rolando2

パーシモニーは、ほとんどの場合、必要なプロパティです。解釈を高め、新しい被験者がモデルを使用するために必要な測定回数を減らします。話のもう一方の側面は、基準に対して得られるものは、SEに一致する推定値にすぎないということです:チューニングパラメーターに対する基準推定値を示すかなりの数のプロットを見てきました。ピーク。そのため、1 SEルール(これは任意ですが、受け入れられている慣行)は、より多くの節約を提供するという付加価値でこれからあなたを守ります。
ニックサブベ

13

これに対する簡単な答えはありません。重要でない説明変数の一部を削除すると、それらと相関する他の説明変数が重要になる場合があります。これには何の問題もありませんが、モデルの選択を少なくとも部分的には科学ではなく芸術にします。これが、実験がこの問題を回避するために説明変数を互いに直交に保つことを目的とする理由です。

従来、アナリストはモデルに対して一度に1つずつ変数を段階的に加算および減算し(これまでと同様)、個別に、またはtまたはFテストで小グループで変数をテストしていました。これに伴う問題は、共線性によってそれらの組み合わされた効果(または非効果)が隠されている場合、サブラクト(または追加)する変数の組み合わせを見逃す可能性があることです。

最新の計算能力では、説明変数の2 ^ 10 = 1024の可能なすべての組み合わせに適合し、AIC、BIC、または予測力(たとえば、値を予測する能力など)の可能な基準のいずれかによって最適なモデルを選択できますモデルの適合に使用するセットから分離したデータのテストサブセットの)。ただし、1024モデルを(暗黙的または明示的に)テストする場合は、古典的なアプローチからp値を再考する必要があります。注意して処理してください...


両側のプラスとマイナスの高レベルのウォークスルーに感謝します。それは私が疑ったことの多くを確認しました。
cryptic_star

11

予測パフォーマンスのみに関心がある場合は、すべての機能を使用し、リッジ回帰を使用してトレーニングサンプルの過剰適合を回避することをお勧めします。これは基本的に、ミラーのモノグラフの付録に記載されているアドバイスです。「回帰におけるサブセット選択」であるため、合理的な血統が付いています!

これは、データの固定サンプル(AIC、BIC、相互検証など)に基づいたパフォーマンス推定に基づいてサブセットを選択すると、選択基準に有限の分散があるため、以下を実行できるためです。選択基準自体をオーバーフィットします。つまり、選択基準を最小化することから始めると、一般化のパフォーマンスは向上しますが、選択基準を減らすほど一般化は悪くなります。運が悪い場合は、最初に使用した回帰モデル(つまり、すべての属性を持つモデル)よりもパフォーマンスの悪い回帰モデルを簡単に作成できます。

これは、データセットが小さい場合(選択基準の分散が大きい場合)、およびモデルの選択肢が多数ある場合(たとえば、フィーチャの組み合わせを選択する場合)に特に発生します。調整が必要なスカラーパラメーターであるため、正規化は過剰適合しにくいようです。これにより、モデルの複雑さのより制約されたビューが得られます。 。


0

跳躍ライブラリを使用します。変数をプロットすると、y軸には調整されたR ^ 2が表示されます。最も高いR ^ 2でボックスが黒い場所を確認します。これにより、多重線形回帰に使用する必要がある変数が表示されます。

以下のワインの例:

library(leaps)
regsubsets.out <-
  regsubsets(Price ~ Year + WinterRain + AGST + HarvestRain + Age + FrancePop,
         data = wine,
         nbest = 1,       # 1 best model for each number of predictors
         nvmax = NULL,    # NULL for no limit on number of variables
         force.in = NULL, force.out = NULL,
         method = "exhaustive")
regsubsets.out

#----When you plot wherever R^2 is the highest with black boxes,
#so in our case AGST + HarvestRain + WinterRain + Age and the dependent var.is Price----#
summary.out <- summary(regsubsets.out)
as.data.frame(summary.out$outmat)
plot(regsubsets.out, scale = "adjr2", main = "Adjusted R^2")

これは、既知の問題があるいわゆる「最適なサブセット」の選択とはあまり区別できません。
GUNG -復活モニカ

leaps 「最適なサブセット」を明示的に計算しますが、異なるサイズのサブセットから選択する方法はお勧めしません。(それはあなたとあなたの統計聖職者の間の問題です。)
steveo'america

おもしろいことに、leaps「Alan MillerによるFORTRAN77コード[...]は、彼の著書「回帰におけるサブセット選択」で詳細に説明されています」、この質問に対する別の回答でDikranが言及している本に基づいています:-)
jorijnsmit


-2

相関分析を最初に行ってから、Dvと相関するものだけを回帰に含めないのはなぜですか?


2
これは一般的に、どの変数を選択するかを選択する方法としては貧弱です。たとえば、相関行列を使用して回帰の予測変数を選択するを参照してください相関分析は重回帰とはまったく異なります。後者の場合、「部分的な除外」(他の変数が考慮されると回帰勾配が関係を示す)を考慮する必要があるためですが、相関行列はこれを示しません。
シルバーフィッシュ

これは質問に対する答えを提供しません。十分な評判たら、投稿コメントできるようになります。代わりに、askerからの説明を必要としない回答を提供してください。- レビューから
Sycoraxは、Reinstate Monicaを言う

1
@GeneralAbrialこれは、短い質問であります、これ質問への答えだと思います。これは問題の良い解決策ではありませんが、それがアップ/ダウン投票の目的です。(「理由」は著者からの明確化の要求ではなく、修辞的な質問として意図されていると思います。)
Silverfish

-4

私のアドバイザーは、これについて別の可能な方法を提供しました。すべての変数を一度実行してから、あるしきい値を満たしていない変数を削除します(しきい値をp <.25に設定します)。すべての変数がその.25値を下回るまでその方法を繰り返し、重要な値を報告します。


1
こんにちは、アリー、@ Peter Ellisが彼の答えの2番目の段落で言及したことです。そこにある彼の2番目の文は、この手法がもたらす問題をカバーしています。モデルに入れる予測変数を教えている理論がありますか?
ミシェル

はい、@ Michelleはこのアプローチに対する責任を強調する権利があります。非常にarbitrary意的な結果を生成する可能性があります。
rolando2

はい、すべての背後にある理論があり、それを拡張したいと考えています。特に、特定の社会的手がかり(音声など)がどのように相互作用するかを検討しています。どれが既に影響力を持っているか、あるいは持っていないかを認識しています。ただし、より詳細なバージョンを提供しようとしています。したがって、スピーチは質問、意見、評価などに分類される場合があります
。– cryptic_star

2
さて、あなたは探索的分析を行っています。:)さまざまな組み合わせを試すことができますが、新しいデータで最終的にモデルをテストする必要があります。定義により、あなたがしていることで、データに「最適な」モデルが得られますが、別のデータセットを収集すると機能しない場合があります。
ミシェル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.