簡體   English   中英

R:偏最小二乘回歸

[英]R: Partial least square regression

如何獲得在每個步驟中用於計算R中的pls分量的X和Y矩陣?

我知道以下命令將給k pls組件,

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

但是有沒有一種方法可以使用以下命令將k pl組件恢復k次?

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

根據基於得分和加載向量的偏最小二乘法每一步的更新規則,可以嘗試一次生成一個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])

並以相同的方式持續下去...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM