多項式とそれらの間の相互作用を含める場合、多重共線性は大きな問題になる可能性があります。1つのアプローチは、直交多項式を調べることです。
一般に、直交多項式は、いくつかの内積に関して直交する多項式のファミリーです。
w∫baw (x )pメートル(x )pん(x )dバツ0m = n
[ - 1 、1 ]
pメートル(x )Tpん(x )= ∑私pメートル(x私)pん(x私)
X = 1 、2 、3 、4 、5
p0(x )= x0= 1a x − bp1(x )= x − x¯= x − 3X2+ b x + cp2(x )= (x − 3 )2− 2 = x2− 6 x + 7
x p0 p1 p2
1 1 -2 2
2 1 -1 -1
3 1 0 -2
4 1 1 -1
5 1 2 2
んn − 11
多項式予測子のセットを直交化する方法には、グラム-シュミット直交化、コレスキー分解などがありますが、他にも多くのアプローチがあります。
直交多項式のいくつかの利点:
1)多重共線性は問題ではありません-これらの予測子はすべて直交しています。
k
Rの例(cars
データ、速度に対する停止距離):
ここでは、2次モデルが適切である可能性を検討します。
Rは、poly
関数を使用して直交多項式予測子を設定します。
> p <- model.matrix(dist~poly(speed,2),cars)
> cbind(head(cars),head(p))
speed dist (Intercept) poly(speed, 2)1 poly(speed, 2)2
1 4 2 1 -0.3079956 0.41625480
2 4 10 1 -0.3079956 0.41625480
3 7 4 1 -0.2269442 0.16583013
4 7 22 1 -0.2269442 0.16583013
5 8 16 1 -0.1999270 0.09974267
6 9 10 1 -0.1729098 0.04234892
それらは直交しています:
> round(crossprod(p),9)
(Intercept) poly(speed, 2)1 poly(speed, 2)2
(Intercept) 50 0 0
poly(speed, 2)1 0 1 0
poly(speed, 2)2 0 0 1
これが多項式のプロットです:
線形モデルの出力は次のとおりです。
> summary(carsp)
Call:
lm(formula = dist ~ poly(speed, 2), data = cars)
Residuals:
Min 1Q Median 3Q Max
-28.720 -9.184 -3.188 4.628 45.152
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 42.980 2.146 20.026 < 2e-16 ***
poly(speed, 2)1 145.552 15.176 9.591 1.21e-12 ***
poly(speed, 2)2 22.996 15.176 1.515 0.136
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 15.18 on 47 degrees of freedom
Multiple R-squared: 0.6673, Adjusted R-squared: 0.6532
F-statistic: 47.14 on 2 and 47 DF, p-value: 5.852e-12
これは二次近似のプロットです: