Mínimos quadrados comuns vs. mínimos quadrados totais
Vamos primeiro considerar o caso mais simples de apenas uma variável preditora (independente) . Para simplificar, deixe x e y centralizados, ou seja, a interceptação é sempre zero. A diferença entre a regressão OLS padrão e a regressão TLS "ortogonal" é mostrada claramente nesta figura (adaptada por mim) da resposta mais popular no segmento mais popular no PCA:xxy
OLS ajusta a equação y=βx minimizando distâncias quadradas entre os valores observados y e valores preditos y . TLS se encaixa na mesma equação, minimizando distâncias ao quadrado entre ( x , yy^ e sua projeção na linha. Neste caso mais simples, a linha TLS é simplesmente o primeiro componente principal dos dados 2D. Para encontrar β , do APC em ( x , y ) pontos, isto é, a construção de 2 × 2 covariância matriz Σ e encontrar o seu primeiro vector próprio v =(x,y)β(x,y)2×2Σ ; então β = v y / v x .v=(vx,vy)β=vy/vx
No Matlab:
v = pca([x y]); //# x and y are centered column vectors
beta = v(2,1)/v(1,1);
Em R:
v <- prcomp(cbind(x,y))$rotation
beta <- v[2,1]/v[1,1]
A propósito, esta vai produzir inclinação correcta, mesmo que x e y não foram centrado (porque funções internas PCA executar automaticamente centragem). Para recuperar a interceptação, calcule .β0=y¯−βx¯
OLS vs. TLS, regressão múltipla
Dada uma variável dependente e muitas variáveis independentes x i (novamente, todas centradas na simplicidade), a regressão se ajusta a uma equação y = β 1 x 1 + … + β p x p . O OLS faz o ajuste minimizando os erros ao quadrado entre os valores observados de y e os valores previstosyxi
y=β1x1+…+βpxp.
y . O TLS faz o ajuste minimizando as distâncias ao quadrado entre as observações
(x,y)∈Rp+1y^(x,y)∈Rp+1 pontos e os pontos mais próximos no plano de regressão / hiperplano.
Observe que não há mais "linha de regressão"! A equação acima especifica um hiperplano : é um plano 2D se houver dois preditores, hiperplano 3D se houver três preditores, etc. Portanto, a solução acima não funciona: não podemos obter a solução TLS usando apenas o primeiro PC (que é uma linha). Ainda, a solução pode ser facilmente obtida via PCA.
Como antes, o PCA é executado em pontos . Isto produz p + 1 vectores próprios em colunas de V . As primeiras p vectores próprios definir uma p -dimensional hiperplana H que é necessário; o último (número p + 1 ) autovetor(x,y)p+1VppHp+1 é ortogonal a ele. A questão é como transformar a base de H dado pelos primeirospvectores próprios para ospcoeficientes.vp+1Hpβ
Observe que, se definir para todos os i ≠ k e só x k = 1 , então y = p k , ou seja, o vector ( 0 , ... , 1 , ... , β k ) ∈ H reside no hiperplana H . Por outro lado, sabemos que vxi=0i≠kxk=1y^=βk
(0,…,1,…,βk)∈H
H é ortogonal a ele. Ou seja, seu produto escalar deve ser zero:
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.
No 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);
Em R:
v <- prcomp(cbind(X,y))$rotation
beta <- -v[-ncol(v),ncol(v)] / v[ncol(v),ncol(v)]
Mais uma vez, isto irá proporcionar pistas correctas, mesmo que e y não foram centrado (porque funções internas PCA executar automaticamente centragem). Para recuperar a interceptação, calcule β 0 = ˉ y - ˉ x β .xyβ0=y¯−x¯β
Como verificação de integridade, observe que esta solução coincide com a anterior no caso de apenas um único preditor . De fato, o espaço ( x , y ) é 2D e, portanto, dado que o primeiro vetor próprio PCA é ortogonal ao segundo (último), v ( 1 ) y / v ( 1 ) x = - v ( 2 ) x / v ( 2 ) y .x(x,y)v(1)y/v(1)x=−v(2)x/v(2)y
Solução de formulário fechado para TLS
Surpreendentemente, verifica-se que existe uma equação de forma fechada para . O argumento abaixo é retirado do livro de Sabine van Huffel "O total de mínimos quadrados" (seção 2.3.2).β
Seja e y as matrizes de dados centralizadas. O último vetor próprio PCAXy é um vetor próprio da matriz de covariância de[ Xvp+1 com um valor próprio σ 2 p + 1 . Se é um vetor próprio, então o é - v p +[Xy]σ2p+1 . Escrever a equação eigenvector:
( X ⊤ X X ⊤ y y ⊤ X y ⊤ y ) ( β - 1 ) = σ 2 p + 1 ( β - 1 ) ,
e calcular o produto à esquerda, nós imediatamente obter esse β T L S = ( X ⊤ X - σ−vp+1/vp+1=(β−1)⊤
(X⊤Xy⊤XX⊤yy⊤y)(β−1)=σ2p+1(β−1),
que lembra fortemente a expressão familiar de OLS
β O L S =( X ⊤ X ) - 1 X ⊤ y .βTLS=(X⊤X−σ2p+1I)−1X⊤y,
βOLS=(X⊤X)−1X⊤y.
Regressão múltipla multivariada
A mesma fórmula pode ser generalizada para o caso multivariado, mas mesmo para definir o que o TLS multivariado faz, exigiria alguma álgebra. Veja a Wikipedia sobre TLS . A regressão OLS multivariada é equivalente a várias regressões OLS univariadas para cada variável dependente, mas, no caso do TLS, não é assim.