La regressione di PLS si basa su algoritmi iterativi (ad es. NIPALS, SIMPLS). La descrizione delle idee principali è corretta: cerchiamo uno (PLS1, una variabile di risposta / predittori multipli) o due (PLS2, con diverse modalità, variabili di risposta multipla / predittori multipli) vettore (i) di pesi, (e ) , diciamo, per formare combinazioni lineari delle variabili originali in modo tale che la covarianza tra Xu e Y (Yv, per PLS2) sia massima. Concentriamoci sull'estrazione della prima coppia di pesi associati al primo componente. Formalmente, il criterio per ottimizzare le letture
Nel tuo caso, è univariato, quindi equivale a massimizzare
uv
maxcov(Xu,Yv).(1)
Ycov(Xu,y)≡Var(Xu)1/2×cor(Xu,y)×Var(y)1/2,st.∥u∥=1.
Dal momento che non dipende da , dobbiamo massimizzare . Consideriamo , dove i dati sono standardizzati individualmente (inizialmente ho commesso l'errore di ridimensionare la combinazione lineare invece di e separatamente!), In modo che ; tuttavia, e dipende . In conclusione,
massimizzare la correlazione tra la componente latente e la variabile di risposta non produrrà gli stessi risultatiVar(y)uVar(Xu)1/2×cor(Xu,y)X=[x_1;x_2]x1x2Var(x1)=Var(x2)=1Var(Xu)≠1u.
Dovrei ringraziare Arthur Tenenhaus che mi ha indicato la giusta direzione.
L'uso di vettori di peso unitario non è restrittivo e alcuni pacchetti ( pls. regressionin plsgenomics , basati sul codice del pacchetto precedente di Wehrens pls.pcr) restituiranno vettori di peso non standardizzati (ma con componenti latenti ancora conformi alla norma 1), se richiesto. Ma la maggior parte dei pacchetti PLS restituirà standardizzato , incluso quello che hai usato, in particolare quelli che implementano l'algoritmo SIMPLS o NIPALS; Ho trovato una buona panoramica di entrambi gli approcci nella presentazione di Barry M. Wise, Regressione delle proprietà dei minimi quadrati parziali (PLS) e differenze tra algoritmi , ma la chemiometriauvignette offre anche una buona discussione (pagg. 26-29). Di particolare importanza è anche il fatto che la maggior parte delle routine PLS (almeno quella che conosco in R) presume che tu fornisca variabili non standardizzate perché il centraggio e / o il ridimensionamento sono gestiti internamente (questo è particolarmente importante quando si esegue la validazione incrociata, ad esempio ).
Dato il vincolo , il vettore è risultato essereu′u=1u
u=X′y∥X′y∥.
Utilizzando una piccola simulazione, è possibile ottenere come segue:
set.seed(101)
X <- replicate(2, rnorm(100))
y <- 0.6*X[,1] + 0.7*X[,2] + rnorm(100)
X <- apply(X, 2, scale)
y <- scale(y)
# NIPALS (PLS1)
u <- crossprod(X, y)
u <- u/drop(sqrt(crossprod(u))) # X weights
t <- X%*%u
p <- crossprod(X, t)/drop(crossprod(t)) # X loadings
Puoi confrontare i risultati di cui sopra ( u=[0.5792043;0.8151824], in particolare) con ciò che i pacchetti R darebbero. Ad esempio, utilizzando NIPALS dal pacchetto chemometrics (un'altra implementazione che conosco è disponibile nel pacchetto mixOmics ), otterremmo:
library(chemometrics)
pls1_nipals(X, y, 1)$W # X weights [0.5792043;0.8151824]
pls1_nipals(X, y, 1)$P # X loadings
Risultati simili sarebbero stati ottenuti con plsre il suo algoritmo PLS kernel predefinito:
> library(pls)
> as.numeric(loading.weights(plsr(y ~ X, ncomp=1)))
[1] 0.5792043 0.8151824
In tutti i casi, possiamo verificare che sia di lunghezza 1.u
A condizione che modifichi la tua funzione per ottimizzare quella che legge
f <- function(u) cov(y, X%*%(u/sqrt(crossprod(u))))
e normalizzare in useguito ( u <- u/sqrt(crossprod(u))), dovresti essere più vicino alla soluzione sopra.
Sidenote : Come criterio (1) è equivalente a
può essere trovato come singolare vettore sinistro dalla SVD di corrispondente autovalore:
maxu′X′Yv,
uX′Y
svd(crossprod(X, y))$u
Nel caso più generale (PLS2), un modo per riassumere quanto sopra è dire che i primi vettori canonici PLS sono la migliore approssimazione della matrice di covarianza di X e Y in entrambe le direzioni.
Riferimenti
- Tenenhaus, M (1999). L'approche PLS . Revue de Statistique Appliquée , 47 (2), 5-40.
- ter Braak, CJF e de Jong, S (1993). La funzione oggettiva della regressione parziale dei minimi quadrati . Journal of Chemometrics , 12, 41–54.
- Abdi, H (2010). Regressione parziale dei minimi quadrati e proiezione sulla regressione della struttura latente (regressione PLS) . Recensioni interdisciplinari di Wiley: statistiche computazionali , 2, 97-106.
- Boulesteix, AL e Strimmer, K (2007). Minimi quadrati parziali: uno strumento versatile per l'analisi di dati genomici ad alta dimensione . Briefing in Bioinformatics , 8 (1), 32-44.
plspacchetto e della regressione PLS in questo documento JSS .