Cuando se incluyen polinomios e interacciones entre ellos, la multicolinealidad puede ser un gran problema; Un enfoque es observar los polinomios ortogonales.
Generalmente, los polinomios ortogonales son una familia de polinomios que son ortogonales con respecto a algún producto interno.
Así, por ejemplo, en el caso de polinomios sobre alguna región con función de peso w, el producto interno es ∫baw(x)pm(x)pn(x)dx - la ortogonalidad hace que ese producto interno 0
a no ser que m=n.
El ejemplo más simple para polinomios continuos son los polinomios de Legendre, que tienen una función de peso constante durante un intervalo real finito (comúnmente sobre [−1,1])
En nuestro caso, el espacio (las observaciones mismas) es discreto, y nuestra función de peso también es constante (por lo general), por lo que los polinomios ortogonales son una especie de equivalente discreto de los polinomios de Legendre. Con la constante incluida en nuestros predictores, el producto interno es simplementepm(x)Tpn(x)=∑ipm(xi)pn(xi).
Por ejemplo, considere x=1,2,3,4,5
Comience con la columna constante, p0(x)=x0=1. El siguiente polinomio es de la formaax−b, pero no estamos preocupados por la escala en este momento, así que p1(x)=x−x¯=x−3. El próximo polinomio sería de la formaax2+bx+c; Resulta quep2(x)=(x−3)2−2=x2−6x+7 es ortogonal a los dos anteriores:
x p0 p1 p2
1 1 -2 2
2 1 -1 -1
3 1 0 -2
4 1 1 -1
5 1 2 2
Con frecuencia, la base también se normaliza (produciendo una familia ortonormal), es decir, las sumas de cuadrados de cada término se configuran como constantes (por ejemplo, para n, o para n−1, de modo que la desviación estándar es 1, o quizás con mayor frecuencia, a 1)
Las formas de ortogonalizar un conjunto de predictores polinomiales incluyen la ortogonalización de Gram-Schmidt y la descomposición de Cholesky, aunque existen muchos otros enfoques.
Algunas de las ventajas de los polinomios ortogonales:
1) la multicolinealidad no es un problema: estos predictores son todos ortogonales.
2) Los coeficientes de bajo orden no cambian a medida que agrega términos . Si te queda un gradok polinomio a través de polinomios ortogonales, conoce los coeficientes de un ajuste de todos los polinomios de orden inferior sin volver a ajustar.
Ejemplo en R ( cars
datos, distancias de frenado contra velocidad):
Aquí consideramos la posibilidad de que un modelo cuadrático sea adecuado:
R usa la poly
función para configurar predictores polinomiales ortogonales:
> 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
Son ortogonales:
> 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
Aquí hay una gráfica de los polinomios:
Aquí está la salida del modelo lineal:
> 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
Aquí hay una gráfica del ajuste cuadrático: