2015-04-15 67 views
0

如何獲得在每個步驟中用於計算R中組分的X和Y矩陣?R:部分最小二乘迴歸

我知道下面的命令會給k PLS成分,

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

,但有沒有辦法使用以下命令來恢復由kk請組件?

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

,我沒有做,從第二組件算帳! –

回答

0

根據在包含協變量的每一步進行部分基於所述分數和加載向量最小二乘,人們可以嘗試生成的PLS部件的一個在time.'trainx」是矩陣和更新規則'訓練'是響應變量的矩陣。

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]) 

,並繼續以同樣的方式...