【发布时间】:2013-11-15 20:37:20
【问题描述】:
我正在使用包“pls”和“ChemometricswithR”制作 PLS 模型。我能够执行该模型,但我有一个问题。我做了一个留一法验证,如果我询问系数,我只能看到一个方程(我想是在留一法验证中开发的所有方程的平均值)。
有没有办法查看所有带有所有斜率系数的“n”方程(其中 n 是我的矩阵中的观察数)?
这是我使用的模型:mod2
【问题讨论】:
标签: r
我正在使用包“pls”和“ChemometricswithR”制作 PLS 模型。我能够执行该模型,但我有一个问题。我做了一个留一法验证,如果我询问系数,我只能看到一个方程(我想是在留一法验证中开发的所有方程的平均值)。
有没有办法查看所有带有所有斜率系数的“n”方程(其中 n 是我的矩阵中的观察数)?
这是我使用的模型:mod2
【问题讨论】:
标签: r
如果您提供更多信息,您如何调用函数等,这将更容易回答?根据您所说的,我假设您正在使用包“pls”和“ChemometricswithR”中的函数crossval() 和PCA()。我不熟悉这些函数,但文档说明了系数 "(仅当
jackknife 是 TRUE) 一个带有 jackknifed 回归系数的数组。维度分别对应于预测变量、响应、组件数量和段"。所以我想说确保 jackknife=TRUE 并且您正在指定crossval() 中的段数正确。如果您使用不同的功能,您应该编辑您的问题并添加相关信息。
【讨论】:
yarn.cv <- crossval(yarn.pcr, segments = 10) 提供了这个示例,其中yarn.pcr <- pcr(density ~ msc(NIR), 6, data = yarn)。所以也许可以试试crossval(mod2, segments=206, jackknife=TRUE) 并继续查看文档,可能会有更好的方法来做你想做的事。
好的,我找到了解决方案。
我使用的模型是:
mod2<plsr(SH_uve~matrix_uve,ncomp=11,data=dataset_uve,validation="LOO",jackknife = TRUE)
系数矩阵在 mod2 数组内。我用命令调用了矩阵:
coefficients<-mod2$validation$coefficients[,,11,] 我得到了用于留一法交叉验证的所有方程的系数矩阵。
【讨论】: