Mínimos cuadrados ordinarios versus mínimos cuadrados totales
Consideremos primero el caso más simple de una sola variable predictiva (independiente) . Por simplicidad, deje que x e y estén centrados, es decir, la intersección siempre es cero. La diferencia entre la regresión OLS estándar y la regresión TLS "ortogonal" se muestra claramente en esta figura (adaptada por mí) de la respuesta más popular en el hilo más popular en PCA:XXy
MCO se ajusta a la ecuación minimizando distancias al cuadrado entre los valores observados de Y y los valores predichos Y . TLS se ajusta a la misma ecuación al minimizar las distancias al cuadrado entre los puntos ( x , y ) y su proyección en la línea. En este caso más simple, la línea TLS es simplemente el primer componente principal de los datos 2D. Para encontrar β , haga PCA en los puntos , es decir, construya la matriz de covarianza y encuentre su primer vector propio ; entoncesy= βXyy^( x , y)β2 × 2 Σ v = ( v x , v y ) β = v y / v x( x , y)2 × 2Σv =( vX, vy)β= vy/ vX.
En Matlab:
v = pca([x y]); //# x and y are centered column vectors
beta = v(2,1)/v(1,1);
En R:
v <- prcomp(cbind(x,y))$rotation
beta <- v[2,1]/v[1,1]
Por cierto, esto dará paso a la pendiente correcta incluso si y no se centraron (porque las funciones integradas de PCA realizar automáticamente el centrado). Para recuperar la intersección, calcule .y β 0 = ˉ y - β ˉ xXyβ0 0= y¯- βX¯
OLS vs. TLS, regresión múltiple
Dada una variable dependiente y muchas variables independientes (nuevamente, todas centradas para simplificar), la regresión se ajusta a una ecuaciónOLS hace el ajuste al minimizar los errores al cuadrado entre los valores observados de y los valores predichos . TLS hace el ajuste minimizando las distancias al cuadrado entre los puntos observados y los puntos más cercanos en el plano de regresión / hiperplano.x i y = β 1 x 1 + … + β p x p . y y ( x , y ) ∈ R p + 1yXyo
y= β1X1+ … + ΒpagsXpags.
yy^( x , y) ∈ Rp + 1
¡Tenga en cuenta que ya no hay una "línea de regresión"! La ecuación anterior especifica un hiperplano : es un plano 2D si hay dos predictores, un hiperplano 3D si hay tres predictores, etc. Por lo tanto, la solución anterior no funciona: no podemos obtener la solución TLS tomando solo la primera PC (que es una linea). Aún así, la solución se puede obtener fácilmente a través de PCA.
Como antes, PCA se realiza en puntos . Esta rendimientos vectores propios en columnas de . Los primeros vectores propios definen un hiperplano dimensional que necesitamos; el último (número ) vector propio es ortogonal a él. La cuestión es cómo transformar la base de dada por el primer vectores propios en los coeficientes.p + 1 V p p H p + 1 v p + 1 H p β( x , y)p + 1VpagspagsHp + 1vp + 1Hpagsβ
Observe que si establecemos para todo y solo , entonces , es decir, el vector se encuentra en el hiperplano . Por otro lado, sabemos que es ortogonal a él. Es decir, su producto punto debe ser cero:i ≠ k x k = 1 y = β k ( 0 , ... , 1 , ... , β k ) ∈ H H v p + 1 = ( v 1 , ... , v p + 1 )Xyo= 0i ≠ kXk= 1y^= βk
( 0 , ... , 1 , ... , βk) ∈ H
Hv k + β k v p + 1 = 0 ⇒ β k = - v k / v p + 1 .vp + 1= ( v1, ... , vp + 1)⊥H
vk+ βkvp + 1= 0 ⇒ βk= - vk/ vp + 1.
En Matlab:
v = pca([X y]); //# X is a centered n-times-p matrix, y is n-times-1 column vector
beta = -v(1:end-1,end)/v(end,end);
En R:
v <- prcomp(cbind(X,y))$rotation
beta <- -v[-ncol(v),ncol(v)] / v[ncol(v),ncol(v)]
Nuevamente, esto producirá pendientes correctas incluso si e no estuvieran centradas (porque las funciones PCA integradas realizan automáticamente el centrado). Para recuperar la intersección, calcule .y β 0 = ˉ y - ˉ x βXyβ0 0= y¯- x¯β
Como comprobación de cordura, observe que esta solución coincide con la anterior en caso de que solo haya un único predictor . De hecho, entonces el espacio es 2D, y por lo tanto, dado que el primer vector propio PCA es ortogonal al segundo (último), .( x , y ) v ( 1 ) y / v ( 1 ) x = - v ( 2 ) x / v ( 2 ) yX( x , y)v( 1 )y/ v( 1 )X= - v( 2 )X/ v( 2 )y
Solución de forma cerrada para TLS
Sorprendentemente, resulta que hay una ecuación de forma cerrada para . El siguiente argumento está tomado del libro de Sabine van Huffel "Los mínimos cuadrados totales" (sección 2.3.2).β
Sea y las matrices de datos centradas. El último vector propio de PCA es un vector propio de la matriz de covarianza de con un valor propio . Si es un vector propio, entonces también lo es . Anotando la ecuación del vector propio:
Xyvp + 1[ Xy ]σ2p + 1- vp + 1/ vp + 1= ( β- 1 )⊤
( X⊤Xy⊤XX⊤yy⊤y) ( β- 1) = σ2p + 1( β- 1) ,
y calculando el producto a la izquierda, inmediatamente obtenemos que recuerda fuertemente la conocida expresión OLS
βT L S= ( X⊤X - σ2p + 1Yo )- 1X⊤Y ,
βO L S= ( X⊤X )- 1X⊤y .
Regresión múltiple multivariante
La misma fórmula puede generalizarse al caso multivariante, pero incluso para definir qué hace TLS multivariante, requeriría algo de álgebra. Ver Wikipedia en TLS . La regresión OLS multivariada es equivalente a un grupo de regresiones OLS univariadas para cada variable dependiente, pero en el caso TLS no es así.