1

我有一个用 R 制作的带有plsr()功能的 PLS 模型(来自 package pls);我选择了正确数量的交叉验证组件,它运行良好,具有高水平R^2_predicted(> 0,85,这对我的应用程序来说相当不错)。PLS我试图检查在 R 下构建的模型是否与使用回归工具分析相同数据集时使用 Minitab 获得的模型相同

菜单统计 -> 回归 -> PLS)。

我在 R 和 Minitab 中使用完全相同的数据集,但无法获得相同的模型:当我比较 R 模型中的系数时,使用

coef(PLS_model, ncomp = N_selected, intercept = TRUE)

使用 Minitab(Coefficents表)的输出,我得到不同的结果。

我尝试了几种算法(kernelpls, simplsoscorespls它们都可以在 function 中使用plsr())以及不同的函数(例如pls1_nipals()from package chemometrics),但它们都给出了非常相似的答案,并且没有一个接近 Minitab 输出。根据手册,Minitab 应该使用 NIPALS 算法,oscorespls同样如此。

这些模型是使用以下语法构建的 package pls

PLS_model_a = plsr(Y~., data=train_data, n_comp_max=20, validation="LOO", method="kernelpls")

而这个包“化学计量学”

PLS_model_b = pls1_nipals(X, Y, 20,)

以这两种方式生成的模型是相同的,但它们的系数与 Minitab 输出有很大不同。请注意,Minitab 模型也是一个很好的模型R^2_pred

有人尝试过同样的比较吗?有什么建议吗?谢谢你的帮助!

4

0 回答 0