首页 > 解决方案 > 使用 PLS 回归预测连续变量 (mixOmics)

问题描述

我正在使用 mixOmics 包进行 PLS 回归,但在预测部分遇到了困难。因此,如果我的模型具有三个组件pls.res,则predict(pls.res, newdata)给出一个带有predictvariates的列表B.hatpredict是一个尺寸为 100x1x3 的矩阵。文档说后一个维度是模型维度。由于我的响应只是一个一维向量,我猜模型尺寸对应于组件。但是我怎样才能从 PLS 模型中得到最准确的 Y 预测呢?

一个例子; 如果我想使用 PLS 回归从 mtcars 数据集中预测 wt:

library("mixOmics")
df <- mtcars
pls.res <- pls(df[,1:5], df$wt, mode = "regression")
pls.pred <- predict(pls.res, df[,1:5])
head(pls.pred)

产生以下(截断的)输出

$predict
, , dim1
                           Y
Mazda RX4           2.857348
Mazda RX4 Wag       2.857348
...

, , dim2
                           Y
Mazda RX4           2.847449
Mazda RX4 Wag       2.847449
...

$variates
                          dim1        dim2
Mazda RX4           -0.8392959 -0.02104679
Mazda RX4 Wag       -0.8392959 -0.02104679
...

$B.hat
, , dim1
              Y
mpg  -0.2161400
cyl   0.1949251
...

, , dim2
                 Y
mpg  -0.4171832787
cyl   0.0002618905
...

$call
predict.mixo_pls(object = pls.res, newdata = df[, 1:5])

而且我不明白(在这种情况下) $predict 的两个维度之间的区别

标签: rpredict

解决方案


推荐阅读