線形回帰モデルにおける変数の重要性を正確に測定する方法
6169 ワード
線形回帰モデルにおける変数の重要性を正確に測定する方法バックグラウンド 多重共線形 多重共線形 とはなぜ多重共線形がパラメータ推定に失敗するのか 多重共線形 の判別方法ソリューション バックグラウンド 機械学習タスクでは,線形回帰はよく用いられるモデルである.これは実際には一般化された概念であり、通常は1組の自己変数で因変数を予測することを指し、式は以下の通りである:Y=β 0 + β 1 X 1 + ⋯ + β n X n + ϵ Y =\beta_0 +\beta_1X_1+\cdots+\beta_nX_n+\epsilon Y=β0+β1X1+⋯+βnXn+ϵ 線形回帰モデルは、住宅の位置、歴史的価格、住宅の面積、人口要因などに基づいて将来の住宅価格を予測するなどの予測タスクに使用されることが多い.それ以外に、線形回帰モデルは、すべての引数の中で、どの変数が最も重要で、どの変数が重要ではないかという別の質問に答えることができます.例えば、交通分野では、交通渋滞に関連する最も重要な要素、例えば天気、道路の品質、歴史的な車の流量などの要素の中でどれが最も重要で、どれが最も重要ではないかを見つけたいと思っています.以下に示すように,最小二乗法を用いて計算することができる.β ^\hat\beta β^ β ^ = ( β ^ 0 , ⋯ , β ^ n ) T = ( X T Y ) − 1 X T Y\hat\beta = (\hat\beta_0,\cdots,\hat\beta_n)^T = (X^TY) ^{-1}X^TY β^=(β^0,⋯,β^n)T=(XTY)−1 XTYそしてβ ^\hat\beta β^ソートを行い、ソートに基づいて重要度を分析します.しかし、このような実行可能な方法は往々にして不合理であり、実践の中では往々にして実行不可能である.例えば、私たちが収入を予測すると、学歴要素が収入に反比例するという常識に反する判断が出たり、もともと重要な要素が重要でないなどの一連の問題が発生したりする可能性がありますが、なぜこれらの問題が発生したのでしょうか.私たちはどのようにこれらの問題を解決しますか?まず,多重共線形性という概念を理解しなければならない.多重共線形 一般的に多重共線形は線形回帰モデルにおいて,自己変数間に高度な相関関係が存在し,モデル推定歪をもたらす.多重共線形性についていくつかの側面に分けて説明します.多重共線形とは何か、不完全がゼロの数c 0、c 1、c 2が存在する場合⋯ c n c_0,c_1,c_2,\cdots,c_n c 0,c 1,c 2,⋯,cnは、c 0+c 1 x 1+c 2 x 2+⋯+cn x n=0 c_0+c_1x_1+c_2x_2+\cdots+c_nx_n=0 c 0+c 1 x 1+c 2 x 2+⋯+cn xn=0は変数間に完全な共線形性が存在し、ランダム誤差v v vが存在する場合、E(v)=0、E(v 2)<∞E(v)=0、E(v^2) なぜ多重共線形がパラメータ推定に失敗するのか 回帰モデルのパラメータを推定すると,得られるパラメータの分散はC o v(β ^ ) = σ 2 ( X T X ) − 1 Cov(\hat\beta) =\sigma^2(X^TX)^{-1} Cov(β^)=σ2(XTX)−1,議論の便宜上,y^=β ^ 1 x 1 + β ^ 2 x 2記L 11=Σi=1 nx i 1 2,L 12=Σi=1 nx i 1 x i 2,L 22=Σi=1 nx i 2 2hat y=hatbeta_1 x_1+\hat\beta_2x_2\記L_{11} =\sum_{i=1}^{n} {x_{i1}^2} , L_{12} =\sum_{i=1}^{n} {x_{i1}x_{i2}},L_{22} =\sum_{i=1}^{n} {x_{i2}^2} y^=β^1x1+β^2 x 2記L 11=i=1Σnxi 12,L 12=i=1Σnxi 1 xi 2,L 22=i=1Σnxi 22ではx 1 x_1 x 1およびx 2 x_2 x 2間の相関係数はr 12=L 12 L 11 L 22 r_{12} =\frac{L_{12}}{\sqrt{L_{11}L_{22}}}r 12=L 11 L 22 L 12推理可得v a r(β ^ 1 ) = σ 2 ( 1 − r 12 2 ) L 12 var(\hat\beta_1)=\frac{\sigma^2}{(1-r_{12}^2)L_{12}} var(β^1)=(1−r122)L12σ2から明らかなように、x 1、x 2の相関が高いほど、すなわちr 12が1に近づくほど、v a r(β ^ 1 ) x_1,x_2相関性が高いほど、すなわちr_{12}が1に近づくほどvar(hatbeta_1)x 1,x 2の相関が高くなり、すなわちr 12が1に近づくほどvar(β^1)大きいほど.パラメータの分散が大きい場合、パラメータはバイアス推定されないが、回帰パラメータの結果が混乱する可能性があり、特に推定係数の記号は予想と正反対である可能性がある.さらに,我々の試料が変化すると,大きな分散は,パラメータも試料の変化に伴って激しく変化し,それによって自己変数の解釈性が悪くなることを意味する.従って,多重共線形性は我々のパラメータに解釈性を持たないようにした.多重共線形 の判別方法
以上の式から,多重共線形性は因子1−r 12 2frac{1}{1−r_{12}^2}1−r 122 1によって決定されるので,この値の大きさを測定することによって多重共線形性の深刻さを評価できる.より一般的なケースに広がった:VIF i=1−R i 2,R i 2=1−Σi=1 n(X i−X^i)2Σi=1 n(X i−E(X i))2,X^i=Σj=1 nβ j X jかつj̸ = i VIF_i=frac{1}{1-R_i^2}\そのうちR_i^2 = 1 -\frac{\sum_{i=1}^{n}(X_i-\hat X_i)^2}{\sum_{i=1}^{n}(X_i- E(X_i))^2},\hat X_i=\sum_{j=1}^{n}\beta_jX_jかつj ot=i VIFi=1−Ri 2のうちRi 2=1−Σi=1 n(Xi−E(Xi))2Σi=1 n(Xi−X^i)2,X^i=j=1Σnβj Xjかつj̸=i一般的に、V I F i>2sqrt{VIF_i}>2 VIFi>2の場合、変数間に共線形性が存在することを示し、V I F i>10 VIF_i>10 VIFi>10は、変数間に深刻な共線形問題があることを示す.ソリューション 回帰アルゴリズムにとって,多重線形回帰,論理回帰にかかわらず,複数の引数を同時に考慮しなければならないため,多重共線形は回帰アルゴリズムを用いる場合にしばしば直面する問題であるが,問題が予測問題であれば,モジュール予測の精度にさらに注目する場合,ある程度の多重共線形は許容できる.しかし,モデルの解釈性に注目すると,すなわち各引数が因変数に及ぼす影響を解析すると,多重共線形性がこの判断を阻害し,モデルが解釈できないことを宣言する.従って,回帰モデルを用いて因子の重要性を解析する場合,まず自己変数間の多重共線形性を弱める.通常,主成分解析法,逐次回帰法などを用いて変数間の多重共線形性を弱めることができる.次に,実例と結びつけて,逐次回帰法を用いてモデルの多重共線形性を低減することを紹介し,我々が採用したデータセットはR言語ベースパッケージのstatesである.x 77は、人口、文盲率、平均収入、結霜日数など、州の犯罪率とその他の要素の関係を紹介し、モデル化しています.
VIF値を表示するには、次の手順に従います.
I l l i t e r a c y I lliteracy I lliteracyというフィールドのV I F I l l i t e r a c y>2sqrt{VIF_{Illiteracy}>2 VIFIlliteracy>2は逐次回帰法で解析されることが分かった.
最後の回帰方程式は,M u r d e r P o p u l a t i o n+I l l i t e r a c y+‘L i f e E x p’+F r o s t+A r e a Murder~Population+Illiteracy+`LifeExp`+Frost+Area Murder Population+Illiteracy+‘LifeExp’+Frost+Areaで新しい回帰式をモデル化し,そのVIF値を検証した.
このとき,逐次回帰法により冗長な変数をいくつか削除し,このモデルの多重共線形性を弱め,我々のモデルをより解釈可能にした.
以上の式から,多重共線形性は因子1−r 12 2frac{1}{1−r_{12}^2}1−r 122 1によって決定されるので,この値の大きさを測定することによって多重共線形性の深刻さを評価できる.より一般的なケースに広がった:VIF i=1−R i 2,R i 2=1−Σi=1 n(X i−X^i)2Σi=1 n(X i−E(X i))2,X^i=Σj=1 nβ j X jかつj̸ = i VIF_i=frac{1}{1-R_i^2}\そのうちR_i^2 = 1 -\frac{\sum_{i=1}^{n}(X_i-\hat X_i)^2}{\sum_{i=1}^{n}(X_i- E(X_i))^2},\hat X_i=\sum_{j=1}^{n}\beta_jX_jかつj ot=i VIFi=1−Ri 2のうちRi 2=1−Σi=1 n(Xi−E(Xi))2Σi=1 n(Xi−X^i)2,X^i=j=1Σnβj Xjかつj̸=i一般的に、V I F i>2sqrt{VIF_i}>2 VIFi>2の場合、変数間に共線形性が存在することを示し、V I F i>10 VIF_i>10 VIFi>10は、変数間に深刻な共線形問題があることを示す.
fit
VIF値を表示するには、次の手順に従います.
vif(fit)
Population Income Illiteracy `Life Exp` `HS Grad` Frost Area
1.342691 1.989395 4.135956 1.901430 3.437276 2.373463 1.690625
I l l i t e r a c y I lliteracy I lliteracyというフィールドのV I F I l l i t e r a c y>2sqrt{VIF_{Illiteracy}>2 VIFIlliteracy>2は逐次回帰法で解析されることが分かった.
stepAIC(fit,direction = "both")
Start: AIC=63.01
Murder ~ Population + Income + Illiteracy + `Life Exp` + `HS Grad` +
Frost + Area
Df Sum of Sq RSS AIC
- Income 1 0.236 128.27 61.105
- `HS Grad` 1 0.973 129.01 61.392
128.03 63.013
- Area 1 7.514 135.55 63.865
- Illiteracy 1 8.299 136.33 64.154
- Frost 1 9.260 137.29 64.505
- Population 1 25.719 153.75 70.166
- `Life Exp` 1 127.175 255.21 95.503
Step: AIC=61.11
Murder ~ Population + Illiteracy + `Life Exp` + `HS Grad` + Frost +
Area
Df Sum of Sq RSS AIC
- `HS Grad` 1 0.763 129.03 59.402
128.27 61.105
- Area 1 7.310 135.58 61.877
- Illiteracy 1 8.715 136.98 62.392
- Frost 1 9.345 137.61 62.621
+ Income 1 0.236 128.03 63.013
- Population 1 27.142 155.41 68.702
- `Life Exp` 1 127.500 255.77 93.613
Step: AIC=59.4
Murder ~ Population + Illiteracy + `Life Exp` + Frost + Area
Df Sum of Sq RSS AIC
129.03 59.402
- Illiteracy 1 8.723 137.75 60.672
+ `HS Grad` 1 0.763 128.27 61.105
+ Income 1 0.026 129.01 61.392
- Frost 1 11.030 140.06 61.503
- Area 1 15.937 144.97 63.225
- Population 1 26.415 155.45 66.714
- `Life Exp` 1 140.391 269.42 94.213
Call:
lm(formula = Murder ~ Population + Illiteracy + `Life Exp` +
Frost + Area, data = as.data.frame(state.x77))
Coefficients:
(Intercept) Population Illiteracy `Life Exp` Frost Area
1.202e+02 1.780e-04 1.173e+00 -1.608e+00 -1.373e-02 6.804e-06
最後の回帰方程式は,M u r d e r P o p u l a t i o n+I l l i t e r a c y+‘L i f e E x p’+F r o s t+A r e a Murder~Population+Illiteracy+`LifeExp`+Frost+Area Murder Population+Illiteracy+‘LifeExp’+Frost+Areaで新しい回帰式をモデル化し,そのVIF値を検証した.
fit_end
このとき,逐次回帰法により冗長な変数をいくつか削除し,このモデルの多重共線形性を弱め,我々のモデルをより解釈可能にした.