我正在使用mixOmics软件包进行PLS回归,但在预测部分却遇到了困难。因此,如果我的三个成分为pls.res
的模型,则predict(pls.res, newdata)
给出一个包含predict
,variates
和B.hat
的列表。 predict
是尺寸为100x1x3的矩阵。该文档说,后者是模型尺寸。由于我的响应仅是一维向量,因此我猜模型尺寸与组件相对应。但是如何从PLS模型中获得最准确的Y预测?
一个例子;如果我想使用PLS回归从mtcars数据集中预测重量:
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的(在这种情况下)两个维度之间的区别