Minimi quadrati ordinari vs. minimi minimi totali
Consideriamo innanzitutto il caso più semplice di una sola variabile predittore (indipendente) . Per semplicità, lascia entrambi e essere centrata, cioè intercetta è sempre zero. La differenza tra regressione OLS standard e regressione TLS "ortogonale" è chiaramente indicata su questa figura (adattata da me) dalla risposta più popolare nel thread più popolare su PCA:x yxxy
OLS si adatta all'equazione minimizzando le distanze al quadrato tra i valori osservati e i valori previsti . TLS si adatta alla stessa equazione minimizzando le distanze al quadrato tra i punti e la loro proiezione sulla linea. In questo caso più semplice la linea TLS è semplicemente il primo componente principale dei dati 2D. Per trovare , esegui PCA su punti, ovvero costruisci la matrice di covarianza e trova il suo primo autovettore ; quindi .y y ( x , y ) β ( x , y ) 2 × 2y=βxyy^(x,y)β(x,y)2×2Σv=(vx,vy)β=vy/vx
In Matlab:
v = pca([x y]); //# x and y are centered column vectors
beta = v(2,1)/v(1,1);
In R:
v <- prcomp(cbind(x,y))$rotation
beta <- v[2,1]/v[1,1]
Tra l'altro, questo produrrà corretta pendenza anche se ed non sono stati centrati (perché funzioni incorporate PCA eseguire automaticamente centraggio). Per recuperare l'intercettazione, calcolare .xyβ0=y¯−βx¯
OLS vs. TLS, regressione multipla
Data una variabile dipendente e molte variabili indipendenti (di nuovo, tutte centrate per semplicità), la regressione si adatta a un'equazioneOLS si adatta minimizzando gli errori al quadrato tra i valori osservati di e i valori previsti . TLS si adatta minimizzando le distanze al quadrato tra i punti osservati e i punti più vicini sul piano di regressione / iperpiano.yxi
y=β1x1+…+βpxp.
yy^(x,y)∈Rp+1
Nota che non esiste più una "linea di regressione"! L'equazione sopra specifica un iperpiano : è un piano 2D se ci sono due predittori, iperpiano 3D se ci sono tre predittori, ecc. Quindi la soluzione sopra non funziona: non possiamo ottenere la soluzione TLS prendendo solo il primo PC (che è una linea). Tuttavia, la soluzione può essere facilmente ottenuta tramite PCA.
Come prima, la PCA viene eseguita su punti. Questo rese autovettori in colonne di . I primi autovettori definiscono una iperpiano dimensionale di cui abbiamo bisogno; l'ultimo autovettore (numero ) è ortogonale ad esso. La domanda è: come trasformare la base di dato dai primi autovettori nelle coefficienti.(x,y)p+1VppHp+1vp+1Hpβ
Nota che se impostiamo per tutti e solo , allora , ovvero il vettore sta nella iperpiano . D'altra parte, sappiamo che è ortogonale ad esso. dire che il loro punto prodotto deve essere zero:xi=0i≠kxk=1y^=βk
(0,…,1,…,βk)∈H
Hvp+1=(v1,…,vp+1)⊥H
vk+βkvp+1=0⇒βk=−vk/vp+1.
In 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);
In R:
v <- prcomp(cbind(X,y))$rotation
beta <- -v[-ncol(v),ncol(v)] / v[ncol(v),ncol(v)]
Di nuovo, questo produrrà sci corrette anche se ed non fosse centrato (perché funzioni incorporate PCA eseguire automaticamente centraggio). Per recuperare l'intercettazione, calcolare .xyβ0=y¯−x¯β
Come controllo di integrità, notare che questa soluzione coincide con la precedente nel caso di un solo predittore . In effetti, quindi lo spazio è 2D, e quindi, dato che il primo autovettore PCA è ortogonale al secondo (ultimo), .x(x,y)v(1)y/v(1)x=−v(2)x/v(2)y
Soluzione a forma chiusa per TLS
Sorprendentemente, si scopre che esiste un'equazione in forma chiusa per . L'argomento che segue è tratto dal libro di Sabine van Huffel "I minimi quadrati totali" (sezione 2.3.2).β
Consenti a e essere le matrici di dati centrate. L'ultimo autovettore PCA è un autovettore della matrice di covarianza di con un autovalore . Se si tratta di un autovettore, allora lo è anche . Annotare l'equazione di autovettore:
Xyvp+1[Xy]σ2p+1−vp+1/vp+1=(β−1)⊤
(X⊤Xy⊤XX⊤yy⊤y)(β−1)=σ2p+1(β−1),
e calcolando il prodotto a sinistra, otteniamo immediatamente quel che ricorda fortemente l'espressione OLS familiare
βTLS=(X⊤X−σ2p+1I)−1X⊤y,
βOLS=(X⊤X)−1X⊤y.
Regressione multipla multivariata
La stessa formula può essere generalizzata al caso multivariato, ma anche per definire cosa fa il TLS multivariato, richiederebbe un po 'di algebra. Vedi Wikipedia su TLS . La regressione OLS multivariata equivale a un gruppo di regressioni OLS univariate per ogni variabile dipendente, ma nel caso TLS non è così.