A regressão PLS depende de algoritmos iterativos (por exemplo, NIPALS, SIMPLS). Sua descrição das idéias principais está correta: buscamos um (PLS1, uma variável de resposta / múltiplos preditores) ou dois (PLS2, com modos diferentes, variáveis de resposta múltipla / múltiplos preditores) vetor (es) de pesos, (e v ) digamos, para formar combinações lineares da (s) variável (s) original (ais), de modo que a covariância entre Xu e Y (Yv, para PLS2) seja máxima. Vamos nos concentrar na extração do primeiro par de pesos associado ao primeiro componente. Formalmente, o critério para otimizar lê
max cov ( X u , Yuv
No seu caso, Y é univariada, portanto, eleva-se a maximizar
cov ( X u , y ) ≡ Var ( X u ) 1 / 2 x CR ( X u , y ) × Var ( Y ) 1 / 2
cov máx. ( Xu , Yv ) .( 1 )
Y
Desde
Var ( y ) não depende
L , temos que maximizar
Var ( X u ) 1 / 2 x CR ( X u , y ) . Vamos considerar, onde os dados são padronizados individualmente (inicialmente cometi o erro de dimensionar sua combinação linear em vez de
x 1 e
x 2 separadamente!), Para que
Var ( x Var (cov ( Xu , y) ≡ Var ( Xu )1 / 2× cor ( Xu , y) × Var ( y)1 / 2,s t . ∥ u ∥ = 1.
Var ( y)vocêVar ( Xu )1 / 2× cor ( Xu , y)X=[x_1;x_2]
x1x2 ; no entanto,
Var ( X u ) ≠ 1 e depende de
uVar ( x1) = Var ( x2) = 1Var ( Xu ) ≠ 1você . Em conclusão,
maximizar a correlação entre o componente latente e a variável de resposta não produzirá os mesmos resultados .
Eu deveria agradecer Arthur Tenenhaus que me indicou a direção certa.
O uso de vetores de peso unitário não é restritivo e alguns pacotes ( pls. regression
em plsgenomics , com base no código do pacote anterior de Wehrens pls.pcr
) retornarão vetores de peso não padronizados (mas com componentes latentes ainda da norma 1), se solicitado. Mas a maioria dos pacotes PLS retornará u padronizadosvocê , incluindo o que você usou, principalmente aqueles que implementam o algoritmo SIMPLS ou NIPALS; Encontrei uma boa visão geral de ambas as abordagens na apresentação de Barry M. Wise, Propriedades da regressão de mínimos quadrados parciais (PLS) e diferenças entre algoritmos , mas a quimiometria.a vinheta também oferece uma boa discussão (págs. 26-29). Também é de particular importância o fato de que a maioria das rotinas PLS (pelo menos a que conheço em R) presume que você forneça variáveis não padronizadas porque a centralização e / ou o dimensionamento são tratados internamente (isso é particularmente importante ao realizar a validação cruzada, por exemplo )
Dada a restrição , o vetor u é u = X ′ yvocê′u=1u
u=X′y∥X′y∥.
Usando um pouco de simulação, ele pode ser obtido da seguinte maneira:
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
Você pode comparar os resultados acima ( u=[0.5792043;0.8151824]
em particular) com o que os pacotes R dariam. Por exemplo, usando NIPALS do pacote quimiométrico (outra implementação que eu sei que está disponível no pacote mixOmics ), obteríamos :
library(chemometrics)
pls1_nipals(X, y, 1)$W # X weights [0.5792043;0.8151824]
pls1_nipals(X, y, 1)$P # X loadings
Resultados semelhantes seriam obtidos com plsr
o algoritmo PLS do kernel padrão:
> library(pls)
> as.numeric(loading.weights(plsr(y ~ X, ncomp=1)))
[1] 0.5792043 0.8151824
u tem comprimento 1.
Desde que você altere sua função para otimizar para uma que leia
f <- function(u) cov(y, X%*%(u/sqrt(crossprod(u))))
e normalizar u
depois (u <- u/sqrt(crossprod(u))
), você deve estar mais perto da solução acima.
maxu′X′Yv,
uX′Y
svd(crossprod(X, y))$u
No caso mais geral (PLS2), uma maneira de resumir o exposto acima é dizer que os primeiros vetores canônicos do PLS são a melhor aproximação da matriz de covariância de X e Y em ambas as direções.
Referências
- Tenenhaus, M (1999). L'approche PLS . Revue de Statistique Appliquée , 47 (2), 5-40.
- ter Braak, CJF e de Jong, S (1993). A função objetiva da regressão parcial de mínimos quadrados . Journal of Chemometrics , 12, 41-54.
- Abdi, H (2010). Regressão e projeção de mínimos quadrados parciais na regressão de estrutura latente (regressão PLS) . Wiley Interdisciplinary Reviews: Computational Statistics , 2, 97-106.
- Boulesteix, AL e Strimmer, K (2007). Mínimos quadrados parciais: uma ferramenta versátil para a análise de dados genômicos de alta dimensão . Briefings in Bioinformtics , 8 (1), 32-44.
pls
pacote e da regressão PLS neste documento JSS .