我对 R 比较陌生,目前正在使用 pls 包构建 PLS 模型。我有两个大小相等的独立数据集,第一个在这里用于校准模型。该数据集包含多个响应变量 (y) 和 101 个解释变量 (x),用于 28 个观测值。然而,响应变量将分别包含在 PLS 模型中。当前的代码如下所示:
# load data
data <- read.table("....txt", header=TRUE)
data <- as.data.frame(data)
# define response variables (y)
HEIGHT <- as.numeric(unlist(data[2]))
FBM <- as.numeric(unlist(data[3]))
N <- as.numeric(unlist(data[4]))
C <- as.numeric(unlist(data[5]))
CHL <- as.numeric(unlist(data[6]))
# generate matrix containing the explanatory (x) variables only
spectra <-(data[8:ncol(data)])
# calibrate PLS model using LOO and 20 components
library(pls)
refl.pls <- plsr(N ~ as.matrix(spectra), ncomp=20, validation = "LOO", jackknife = TRUE)
# visualize RMSEP -vs- number of components
plot(RMSEP(refl.pls), legendpos = "topright")
# calculate explained variance for x & y variables
summary(refl.pls)
我目前已经到了需要为每个响应变量决定要包含在我的 PLS 模型中的最佳组件数量的地步。RMSEP 值已经提供了一个不错的指示。但是,我还想根据与我正在进行的研究相当的各种研究,将我的决定基于 PRESS(预测残差平方和)统计数据。简而言之,我想为每个具有n 个组件的 PLS 模型提取 PRESS 统计量。
我浏览了 pls 包文档和整个网络,但不幸的是无法找到答案。如果有人在这里可以帮助我朝着正确的方向前进,将不胜感激!