偏最小二乘法(R语言)

偏最小二乘一般针对于下面两个问题:1)自变量的数目较多,但是观测的样本并不是很多;2)回归方程建立后主要用于预测。

代码实现如下:

data8.2<-read.csv("C:/Users/Administrator/Desktop/data8.2.csv",head=TRUE)
datas<-data.frame(scale(data8.2))
library(pls)
pls1<-plsr(y~.,data=datas,validation="LOO",jackknife=TRUE,method="widekernelpls")
summary(pls1,what="all")

其中validation="LOO"表示使用留一交叉验证设计算法RMSEP;jackknife=TRUE表示使用jackknife方法估计回归系数方差(为后面的显著性实验做准备)。

输出结果为:
偏最小二乘法(R语言)_第1张图片
  上述为使用了所有主成分进行回归得到的结果,从回归结果中可以看到,主成分个数为3个时,模型在经留一交叉验证法后的得到的RMSEP总和较小,且随着成分个数的增加,RMSEP值出现明显减少,同时3个主成分对各变量的累积贡献率均高于99%,因此将回归的主成分个数设定为 m = 3 m=3 m=3
  
下面给出主成分为3时的回归方程实现代码:

pls1<-plsr(y~.,data=datas,ncomp=3,validation="LOO",jackknife=TRUE)
coef(pls1)

输出结果为:
偏最小二乘法(R语言)_第2张图片
  由以上结果就可以得到标准化后的数据 y ∗ y^{*} y对所有自变量的回归方程。将回归方程中的变量还原为原始数变量便得到最终的回归方程。

你可能感兴趣的:(回归分析)