如何从 pls 模型中获得解释的 y 方差

How to get y variance explained from a pls model

我用 "PLS" 包计算了 PLS 模型,我想绘制解释的 Y 方差。 我试过查看创建的变量,但找不到与之相关的任何内容。但是,我可以找到解释的 X 方差和总 X 方差。 当我在我的模型上使用汇总功能时,我确实看到了我想要的数字,但我无法找到如何提取它们以便我可以绘制它们。

如果有一个包含 X 和 Y 方差解释的默认图,那将是完美的场景,但我认为没有。

library(pls)
data <- (data containing y for Y and everything else for X)
plsmodel <- plsr(y~., ncomp=10, data=data, validation="CV", scale=TRUE, segment.type="random", method="simpls")
View(plsmodel)
summary(plsmodel)
Data:   X dimension: 70 19 
    Y dimension: 70 1
Fit method: simpls
Number of components considered: 10

VALIDATION: RMSEP
Cross-validated using 10 random segments.
       (Intercept)  1 comps  2 comps  3 comps  4 comps  5 comps  6 comps  7 comps  8 comps  9 comps  10 comps
CV           315.5    148.4    121.3    110.7    115.2    114.7    116.3    126.2    145.9    143.4     144.1
adjCV        315.5    147.9    120.2    110.4    112.9    112.8    114.1    123.2    141.4    139.2     139.8

TRAINING: % variance explained
   1 comps  2 comps  3 comps  4 comps  5 comps  6 comps  7 comps  8 comps  9 comps  10 comps
X    86.88    91.50    94.95    95.98    98.19    98.79    99.08    99.28    99.52     99.74
y    79.79    87.86    89.78    92.48    93.26    93.87    94.19    94.40    94.53     94.64

这是我要查找的摘要的最后一行。

你可以这样看摘要代码:

pls:::summary.mvr

您可以获得这样的信息:

# X Variance
cumsum(explvar(plsmodel))

# Y Variance
drop(R2(plsmodel, estimate = "train", intercept = FALSE)$val)