r - 使用 PLS 回归预测连续变量 (mixOmics)
问题描述
我正在使用 mixOmics 包进行 PLS 回归,但在预测部分遇到了困难。因此,如果我的模型具有三个组件pls.res
,则predict(pls.res, newdata)
给出一个带有predict
和variates
的列表B.hat
。predict
是一个尺寸为 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 的两个维度之间的区别
解决方案
推荐阅读
- php - Laravel - 将值从一列移动到另一列
- r - 从年(双)和周数(字符)构造年周
- azure-devops - Azure Devops 工作项
- android - RecyclerView 未在布局中显示
- node.js - 使用 Fluentd 在 Elasticsearch 中创建映射
- wireshark - 不同DDS厂商的发现机制
- sparql - 查询 SPARQL 结果级别 1 层次结构
- android - 在 Kotlin 中启动动画
- javascript - 从 forwardRef 中提取 ref(createRef 与 useRef 相比)| 反应原生
- android - 设备锁定时无法启动通话活动