Cuando se incluyen polinomios e interacciones entre ellos, la multicolinealidad puede ser un gran problema; un enfoque es buscar polinomios ortogonales.
En general, los polinomios ortogonales son una familia de polinomios que son ortogonales con respecto a algún producto interior.
Así, por ejemplo, en el caso de polinomios sobre alguna región con función de peso $w$ El producto interno producto interno es $\int_a^bw(x)p_m(x)p_n(x)dx$ - la ortogonalidad hace que el producto interno $0$ a menos que $m=n$ .
El ejemplo más sencillo de polinomios continuos son los polinomios de Legendre, que tienen función de peso constante sobre un intervalo real finito (comúnmente sobre $[-1,1]$ ).
En nuestro caso, el espacio (las propias observaciones) es discreto, y nuestra función de peso también es constante (normalmente), 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 simplemente $p_m(x)^Tp_n(x) = \sum_i p_m(x_i)p_n(x_i)$ .
Por ejemplo, considere $x = 1,2,3,4,5$
Comienza con la columna constante, $p_0(x) = x^0 = 1$ . El siguiente polinomio es de la forma $ax-b$ pero no nos preocupamos por la escala en este momento, así que $p_1(x) = x-\bar x = x-3$ . El siguiente polinomio sería de la forma $ax^2+bx+c$ ; resulta que $p_2(x)=(x-3)^2-2 = x^2-6x+7$ es ortogonal a las 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, la suma de los cuadrados de cada término se fija en alguna constante (por ejemplo, en $n$ o a $n-1$ para que la desviación estándar sea 1, o quizás lo más frecuente, a $1$ ).
Las formas de ortogonalizar un conjunto de predictores polinómicos incluyen la ortogonalización de Gram-Schmidt y la descomposición de Cholesky, aunque hay 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 al añadir términos . Si se ajusta a un grado $k$ mediante polinomios ortogonales, se conocen los coeficientes de un ajuste de todos los polinomios de orden inferior sin necesidad de reajustar.
Ejemplo en R ( cars
datos, distancias de frenado frente a la velocidad):
Aquí consideramos la posibilidad de que un modelo cuadrático sea adecuado:
R utiliza el poly
para establecer predictores polinómicos 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 un gráfico de los polinomios:
Este es el resultado 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 un gráfico del ajuste cuadrático: