简体   繁体   English

R:偏最小二乘回归

[英]R: Partial least square regression

How to obtain the X and Y matrices being used in each steps for calculating pls components in R? 如何获得在每个步骤中用于计算R中的pls分量的X和Y矩阵?

I know the below command will give k pls components, 我知道以下命令将给k pls组件,

library(pls)
plsr(Y ~ ., ncomp=k,   data=as.data.frame(X), scale=TRUE, validation="LOO")

but is there a way to recover k pls components by k times using the following command? 但是有没有一种方法可以使用以下命令将k pl组件恢复k次?

plsr(Y ~ ., ncomp=1,   data=as.data.frame(X), scale=TRUE, validation="LOO")   

According to the updating rules on each step for partial least square based on the score and loading vectors, one can try to generate the pls components one at the time.'trainx' is the matrix containing the covariates and 'trainy' is the matrix of response variables. 根据基于得分和加载向量的偏最小二乘法每一步的更新规则,可以尝试一次生成一个pls分量.``trainx''是包含协变量的矩阵,而``trainy''是包含协变量的矩阵响应变量。

require("pls")
require('chemometrics')    

pls_s1<-pls1_nipals(trainx,trainy,a=1,scale=TRUE)
pls_s11<-plsr(trainy~., data=as.data.frame(trainx),ncomp=1,scale=TRUE)
yscores[,kk]<-Yscores(pls_s11)
yloadings[kk]<-Yloadings(pls_s11)
T[,kk]<-pls_s1$T
P[,kk]<-pls_s1$P
X=scale(trainx)-T[,kk]%*%t(P[,kk])
Y=scale(trainy)-nn1$predictions%*%t(yloadings[kk])
pls_rs<-pls1_nipals(X,Y,a=1,scale=FALSE)
pls_rs1<-plsr(Y~., data=as.data.frame(X),ncomp=1,scale=TRUE)
yscores[,kk]<-Yscores(pls_rs1)
yloadings[kk]<-Yloadings(pls_rs1)
T[,kk]<-pls_rs$T
P[,kk]<-pls_rs$P
X=scale(X,scale=FALSE)-T[,kk]%*%t(P[,kk])
Y=scale(Y,scale=FALSE)-nnrs1$predictions%*%t(yloadings[kk])

and it continues in a same fashion... 并以相同的方式持续下去...

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM