这是code
###偏最小二乘法
library(lars)
library(pls)
#偏最小二乘
data1<-read.csv("C:\\pls1.csv")
names(data1)
data2<-data1[,2:9]
data3<-data.frame(scale(data2))
library(pls)
set.seed(1) #求最优的成分个数
shuju.plsr <- plsr(y1~., ncomp=2,data=data3,validation="CV")
summary(shuju.plsr)
coef(shuju.plsr)
#下面使2个成分
shuju.plsr3 <- plsr(y1~.,ncomp = 2,data=data2,scale=T,validation="CV")
summary(shuju.plsr3)
coef(shuju.plsr3)
shuju.coef <- coef(shuju.plsr3)/apply(data2[,1:7],2,sd)#求原始变量的回归系数
shuju.int <- mean(data2$y1)-shuju.coef%*%apply(data2[,1:7],2,mean)#求截距
c(shuju.int,shuju.coef)
##上面两个过程算出来的结果不太一样,请问那个是正确的算法?


雷达卡




京公网安备 11010802022788号







