Moindres carrés ordinaires vs moindres carrés totaux
Considérons d'abord le cas le plus simple d'une seule variable prédictive (indépendante) . Par souci de simplicité, laissez x et y être centrés, c'est-à-dire que l'interception est toujours nulle. La différence entre la régression OLS standard et la régression TLS "orthogonale" est clairement montrée sur cette figure (adaptée par moi) de la réponse la plus populaire dans le fil le plus populaire sur PCA:xxy
OLS ajuste l'équation en réduisant au minimum les distances au carré entre les valeurs observées y et les valeurs prédites y . TLS correspond à la même équation en minimisant les distances au carré entre les points ( x , y ) et leur projection sur la ligne. Dans ce cas le plus simple, la ligne TLS est simplement le premier composant principal des données 2D. Pour trouver β , faites l'ACP sur les points ( x , y ) , c'est-à-dire construisez la matrice de covariance 2 × 2 Σ et trouvez son premier vecteur propre v =y=βxyy^(x,y)β(x,y)2×2Σ ; alors β = v y / v x .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);
Dans R:
v <- prcomp(cbind(x,y))$rotation
beta <- v[2,1]/v[1,1]
Soit dit en passant, cela produira une pente correcte même si et y n'étaient pas centrés (car les fonctions PCA intégrées effectuent automatiquement le centrage). Pour récupérer l'ordonnée à l'origine, calculez β 0 = ˉ y - β ˉ x .xyβ0=y¯−βx¯
OLS vs TLS, régression multiple
Étant donné une variable dépendante et de nombreuses variables indépendantes x i (encore une fois, toutes centrées pour plus de simplicité), la régression correspond à une équation y = β 1 x 1 + … + β p x p . OLS est la place en minimisant les erreurs quadratiques entre les valeurs observées de y et les valeurs prédites y . TLS fait l'ajustement en minimisant les distances au carré entre observées ( x , y ) ∈ R p + 1yxi
y=β1x1+…+βpxp.
yy^(x,y)∈Rp+1 points et les points les plus proches sur le plan de régression / hyperplan.
Notez qu'il n'y a plus de "ligne de régression"! L'équation ci-dessus spécifie un hyperplan : c'est un plan 2D s'il y a deux prédicteurs, un hyperplan 3D s'il y a trois prédicteurs, etc. Donc la solution ci-dessus ne fonctionne pas: on ne peut pas obtenir la solution TLS en prenant uniquement le premier PC (qui est une ligne). Pourtant, la solution peut être facilement obtenue via PCA.
Comme précédemment, l'ACP est effectuée sur points. On obtient p + 1 vecteurs propres dans les colonnes de V . Les p premiers vecteurs propres définissent un hyperplan H à p dimensions dont nous avons besoin; le dernier (nombre p + 1 ) vecteur propre v p + 1 lui est orthogonal. La question est de savoir comment transformer la base de H donnée par les p premiers vecteurs propres en coefficients β .(x,y)p+1VppHp+1vp+1Hpβ
Observe que si l' on pose pour tout i ≠ k et que x k = 1 , alors Y = ß k , soit le vecteur ( 0 , ... , 1 , ... , β k ) ∈ H se trouve dans l'hyperplan H . Par contre, on sait que v p + 1 = ( v 1 , … , v p + 1xi=0i≠kxk=1y^=βk
(0,…,1,…,βk)∈H
H est orthogonal. C'est-à-dire que leur produit scalaire doit être nul:
v 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);
Dans R:
v <- prcomp(cbind(X,y))$rotation
beta <- -v[-ncol(v),ncol(v)] / v[ncol(v),ncol(v)]
Encore une fois, cela produira des pentes correctes même si et y n'étaient pas centrés (car les fonctions PCA intégrées effectuent automatiquement le centrage). Pour récupérer l'ordonnée à l'origine, calculez β 0 = ˉ y - ˉ x β .Xyβ0= y¯- x¯β
X( x , y)v( 1 )y/ v( 1 )X= - v( 2 )X/ v( 2 )y
Solution de formulaire fermé pour TLS
β
Xyvp + 1[ Xy ]σ2p + 1- vp + 1/ vp + 1= ( β- 1 )⊤
( X⊤Xy⊤XX⊤yy⊤y) ( β- 1) = σ2p + 1( β- 1) ,
βT L S= ( X⊤X - σ2p + 1Je )- 1X⊤y ,
βO L S= ( X⊤X )- 1X⊤y .
Régression multiple multivariée
La même formule peut être généralisée au cas multivarié, mais même pour définir ce que fait le TLS multivarié, il faudrait une certaine algèbre. Voir Wikipedia sur TLS . La régression OLS multivariée équivaut à un ensemble de régressions OLS univariées pour chaque variable dépendante, mais dans le cas TLS, ce n'est pas le cas.