web-dev-qa-db-ja.com

回帰モデルのスクリーニング(多重)共線性

これが「質問に答える」質問にならないことを望みます...ここに行きます:(多重)共線性とは、回帰モデルの予測変数間の非常に高い相関を指します。それらを治す方法...まあ、時には、共線性を「硬化」する必要はありません。それは回帰モデル自体には影響を与えないが、個々の予測子の効果の解釈に影響を与えるからです。

共線性を見つける1つの方法は、各予測変数を従属変数として、他の予測変数を独立変数として、Rを決定することです。2、そして.9(または.95)よりも大きい場合、予測変数は冗長であると考えることができます。これは1つの「方法」です...他のアプローチはどうですか?それらのいくつかは、モデルから予測変数を除外し、b係数の変化を監視するなど、時間がかかります-それらは著しく異なるはずです。

もちろん、分析の特定のコンテキスト/目標を常に念頭に置いておく必要があります...時には、唯一の解決策は研究を繰り返すことですが、現在、(多重)共線性のときに冗長な予測因子をスクリーニングするさまざまな方法に興味があります回帰モデルで発生します。

63
aL3xa

Vito Ricciのリファレンスカード「回帰分析のためのR関数」をお勧めします http://cran.r-project.org/doc/contrib/Ricci-refcard-regression.pdf

診断関数を含む、Rの多くの有用な回帰関連関数を簡潔にリストします。特に、多重共線性を評価できるvifパッケージのcar関数をリストします。 http://en.wikipedia.org/wiki/Variance_inflation_factor

多重共線性の考慮は、変数の重要性を評価する問題としばしば密接に関係しています。これがあなたに当てはまるなら、おそらくrelaimpoパッケージをチェックアウトしてください: http://prof.beuth-hochschule.de/groemping/relaimpo/

18
Jeromy Anglim

本書のセクション9.4も参照してください。 Rを使用した実用的な回帰とAnova [Faraway 2002]

共線性は、いくつかの方法で検出できます。

  1. 予測子の相関行列を調べると、大きなペアワイズ共線性が明らかになります。

  2. 他のすべての予測変数でのx_iの回帰により、R ^ 2_iが得られます。すべての予測変数について繰り返します。 R ^ 2_iが1に近い場合、問題があることを示します。問題の線形結合が見つかる可能性があります。

  3. t(X) %*% Xの固有値を調べます。ここで、Xはモデル行列を示します。小さな固有値は問題を示します。 2ノルムの条件数は、行列のゼロ以外の特異値の最大値と最小値の比として表示できます($\kappa =\sqrt {\ lambda_1/\ lambda_p} $; ?kappaを参照) ; \kappa >= 30は大きいと見なされます。

8
rcs

これまでVIFについて言及していないため、回答を追加します。 Variance Inflation Factor> 10は通常、予測変数間の深刻な冗長性を示します。 VIFは、他の変数との相関が高くない場合に変数の係数の分散が増加する要因を示します。

vif()はパッケージcarsで利用でき、class(lm)のオブジェクトに適用されます。 x1、x2のvifを返します。 。 。オブジェクトlm()のxn。 vif> 10の変数を除外するか、vif> 10の変数に変換を導入することをお勧めします。

8
vagabond