全文链接 :https://tecdat.cn/?p=34046
PLS回归主要的客户来自于化学、药品、食品和塑料行业。在本文中,我们将使用此类背景下的示例(点击文末“阅读原文”获取完整代码数据)。
相关视频
什么是偏最小二乘回归(PLS回归)?
偏最小二乘回归(Partial Least Squares, PLS)是一种将预测变量降维为一组不相关的成分,并在这些成分上执行最小二乘回归的技术,而不仅仅是在原始数据上执行回归。
与多元回归不同,PLS不假设预测变量是固定的。这意味着预测变量可能带有误差,使得PLS对测量不确定性更加稳健。
使用PLS
在文中讨论了一种制药产品的化学制造过程。
代码语言:javascript复制
library(pls)
library(Amelia)
在这个问题中,目标是理解原材料的生物测量(预测变量)、制造过程的测量(预测变量)与产品产量的关系。生物预测变量在加工前无法更改,但可以用于评估原材料的质量。另一方面,制造过程的预测变量可以在制造过程中进行更改。将产品产量提高1%将使每批收入增加大约十万元:
- 启动R并使用以下命令加载数据:
数据包含了176次制造过程的57个预测变量(其中12个描述输入的生物材料,45个描述制造过程的预测变量)。yield
包含了每次运行的产量百分比。
- 预测变量集中有少部分单元格缺失值。使用一个填充函数来填补这些缺失值。
missmap(Che......)
我们可以看到一些预测变量确实有缺失值。
下面我将对数据进行预处理,包括
- 对数据进行
中心化
和标准化
- 使用
knn
插补方法替换缺失值 - 使用
corr
过滤高度相关的预测变量 - 使用
nzv
过滤可能引起问题的近零方差预测变量。
# 预处理数据,排除产量列
preprocessing <- prePr......))
Xpreprocess <- predict(prepro......))
如第二张图所示,缺失值已被替换,数据现在是完整的。
- 将数据拆分为训练集和测试集,预处理数据,并调整本章中所选模型的参数。什么是性能指标的最优值?
yield <- as.matrix(Chem......ld)
set.seed(789)
split <- yield %>%......
建立模型
代码语言:javascript复制ctrl <- trainControl(......= ctrl)
查看模型
代码语言:javascript复制plsmod
绘制模型
代码语言:javascript复制plot(plsod)
模型摘要
代码语言:javascript复制summary(plslModel)
最优值:PLS模型中包含的主成分的最佳数量为5。这捕获了预测变量中的45.95%的变异性和结果变量(产量)中的73.37%的变异性。
曲线中的最低点表示最优值,即交叉验证中最小化误差的最佳值。我们可以提取此值:
代码语言:javascript复制plsmdesTune
- 预测测试集的响应。性能指标的值是多少,与训练集上重采样的性能指标相比如何?
predcti <- plmod %>% prict(xtet)
代码语言:javascript复制plot(preicions, col = ......lab = "", xlab="Oserved")
abline(0,1, col'orage')
代码语言:javascript复制cbind(
RMSE = RMSE(predic......, ytest)
)
得分较低的指标比重新采样的指标更好。
- 在您训练的模型中,哪些预测因子最重要?生物因子和工艺因子中哪个在列表中占主导地位?
vaIp(plmod)
代码语言:javascript复制plt(vrmp(psmd))
根据显示的图表和数值,似乎工艺因子在列表中占主导地位。
- 探索每个顶级预测因子与响应变量之间的关系。这些信息如何有助于改善未来制造过程的产量?
对于这个问题,我只会关注记录在制造过程和生物材料中的顶级预测因子。
代码语言:javascript复制Copy Code
cor(yield, Chemi......ss32)
代码语言:javascript复制Copy Code
cor(yield, Chemi......ial02)
如本问题的引言所述,生物材料被用于在加工前评估原材料的质量。如果结果良好,那么产品的产量可能会增加。从顶级的生物材料来看,我们可以看到它与反应变量有着积极但适中的相关性。
另一方面,制造过程可能是创建最终产品的步骤,这些步骤由一个评级来评估。我们也可以看到存在着积极但较低的相关性,这是有道理的。如果过程良好,那么产品就会出色。
本文选自《R语言偏最小二乘回归PLS回归分析制药产品化学制造过程数据、缺失值填充、变量重要性》