多重共試験 - 膨張の分散係数(VIF)

 

  分散膨張係数(分散膨張係数、VIF)は、複数の線形重回帰モデル(複数)におけるメジャー共線の重症度の尺度です。非線形分散に関すると比較した場合には、比の変数及び仮定の分散との間の推定された回帰係数を示しています。

  多重共線は独立変数間の線形相関があることを意味し、すなわち、引数が1つまたはいくつかの他の独立変数の線形組み合わせであってもよいです。多重共線場合、不可逆的な独立変数の偏回帰係数行列を計算します。その性能は以下のとおりです。深刻な矛盾などの実際の状況と要因や変数のシンボル以降の分散分析の回帰係数と、モデル全体、統計学的に有意であるが無意味な専門的判断の独立変数のテスト結果の各独立変数の結果の一貫性のないテストの結果、 。
検査方法は、次のとおり寛容(トレランス)および分散の膨張係数(分散膨張因子、VIF)。最も一般的に使用されるVIFを、次のように計算されます。
VIFは1以上の値。より深刻なのに対し、多重共軽く1に近いVIF値、。場合重度の多重共、適切な調整方法を取ること  [3]  。0と1の間の公差境界値許容値が小さい場合、これは別の引数と引数との間の共線性が存在することを示しています。トレランス回帰係数の推定値は、回帰係数の計算値が大きな誤差となり、十分に安定していません。膨張係数が許容値の分散の逆数である、VIFより大きな寛容引数が小さく、より多くの共線の問題を表しています。
  10として一般的に決定された境界。VIF <10は、多重共不在は場合;重症VIF> = 100、多重共; 10 <= VIF <100は、強い多重共線がある場合。

NPとして輸入numpyの
sklearn.linear_model輸入線形回帰から

= np.array coef0([5,6,7,8,9,10,11,12])
X1 = np.random.rand(100,8)
Y = np.dot(X1、coef0)+ np.random .Normalと呼ばれる(0、1.5、サイズ= 100)
=トレーニングnp.random.choice([TRUE、FALSE]、P = [0.8、0.2]、サイズ= 100)
Lr1と=線形回帰()
lr1.fit(X1 [トレーニング] 、Y [トレーニング])
二乗誤差MSEは、係数平均
プリント(((lr1.coef_-coef0)** 2).SUM()/ 8)
テストセット精度(R2)
プリント(lr1.score(X1を[ 〜トレーニング]、Y [〜トレーニング ]))


X2 = np.column_stack([X1、np.dot(X1の[:、[0,1]、np.array([1,1]))+ np.random.normal(0,0.05、サイズ= 100) ])
X2 = np.column_stack([X2、np.dot(X2の[:、[1,2,3]、np.array([1,1,1]))+ np.random.normal(0、 0.05、サイズ= 100)])
X3 = np.column_stack([X1、np.random.rand(100,2)])

インポートPLTのようmatplotlib.pyplot
CLF =線形回帰()
VIF2 = np.zeros((10,1))
の範囲内のiについて(10):
TMP = [範囲(10)におけるkに対するkもしK = I!]
CLF。 ([:、TMP]、X2 [I] X2)適合
vifi = 1 /(1-clf.score(X2の[:、TMP]、X2 [:I]))
VIF2を[I] = vifi

plt.figure()
AX = plt.gca()
ax.plot(VIF2)
#1 ax.plot(vif3)
plt.xlabel( '特徴')
plt.ylabel( 'VIF')
plt.title( 'のVIF係数機能')
plt.axis('タイト')
plt.show()

おすすめ

転載: www.cnblogs.com/liu-304711/p/10945717.html