MATLAB 偏最小二乘回归 (PLSR) 分析工具箱
项目介绍
本项目提供了一套完整的偏最小二乘回归(PLSR)建模与分析流程。偏最小二乘回归结合了主成分分析(PCA)、典型相关分析(CCA)和线性回归的优点,旨在解决多元回归分析中自变量高度线性相关(多重共线性)以及样本量较少、变量较多(维度灾难)的建模难题。通过提取对因变量解释能力最强的主成分,该工具能够建立稳健的预测模型,并提供详细的变量重要性评估。
功能特性
- 鲁棒的数据预处理:内置 Z-score 标准化功能,消除不同变量间的量纲差异。
- 自动参数优化:采用留一折交叉验证(Leave-one-out Cross Validation)机制,通过最小化均方根误差(RMSECV)自动确定最优主成分提取个数。
- 核心算法实现:基于经典的 NIPALS 算法进行非线性迭代偏最小二乘计算。
- 变量贡献分析:计算变量投影重要性(VIP)指标,量化每个自变量对模型的贡献度。
- 综合评价指标:提供累计贡献率、判定系数(R²)以及残差分析。
- 多维度可视化:一键生成模型性能分析图表,包括误差曲线、变量重要性、拟合分布及残差分布。
使用方法
- 准备数据:在主程序的数据初始化部分,将模拟生成的 X(自变量矩阵)和 Y(因变量矩阵)替换为实际的观测数据。
- 配置参数:根据需求调整最大主成分提取上限(max_comp)。
- 运行程序:在 MATLAB 环境中执行主脚本。
- 结果查看:程序将自动在命令行输出最优主成分个数及贡献率,并弹出包含四张子图的可视化窗口。
系统要求
- 软件环境:MATLAB R2016b 或更高版本。
- 必备工具箱:无需额外的 toolbox,仅依赖 MATLAB 基础数学函数库。
实现逻辑与功能细节
主程序逻辑流程:
- 环境初始化:通过随机种子生成模拟数据,构造具有显著共线性特征的 10 维自变量矩阵和 2 维相关联的响应变量矩阵。
- 数据标准化:计算原始数据的均值与标准差,执行 (X - mu) / sigma 变换,确保模型在标准化空间内求解。
- 交叉验证寻优:
- 遍历所有可能的主成分个数(从 1 到预设上限)。
- 对每一个主成分个数,执行留一法验证:移除一个样本作为验证集,用剩余样本训练模型。
- 累加预测误差平方和(PRESS),最后计算 RMSECV。
- 选取 RMSECV 最小值对应的成分数作为最优主成分数。
- 最终模型构建:使用确定的最优参数,对全量标准化数据调用算法核心进行训练。
- 指标评估:
- 累计贡献率:计算 X 和 Y 在各主成分下的变异解释程度。
- VIP 计算:结合 SSY(Y 的解释平方和)和权重矩阵 W,评估自变量的重要性。
- 预测与反向变换:将标准化预测值还原为原始量纲,计算预测精度。
- 可视化输出:绘制四象限图表,直观展示模型性能与数据特征。
关键算法与函数分析:
- 核心回归算法:
- 采用 NIPALS 迭代法。
- 每一轮提取中,利用 SVD(奇异值分解)简化版寻找第一主成分方向权重 w。
- 计算 X 得分 t、X 载荷 p、Y 载荷 q 以及 Y 得分 u。
- 矩阵通货紧缩(Deflation):在提取一个成分后,从当前矩阵中扣除该成分解释的部分,确保后续成分的正交性。
- 计算 B 矩阵:通过标准化回归系数矩阵,将权重的投影转化为对原始变量的回归关系。
- 变量投影重要性 (VIP) 算法:
- 公式实现:VIP_j = sqrt(m * sum(SSY_h * w_jh^2) / sum(SSY))。
- 逻辑:如果某变量的 VIP 值大于 1,通常认为该变量对因变量具有显著的解释作用。
- 统计评价关键指标:
- RMSECV:反映模型泛化能力的金标准。
- 累计贡献率:反映模型保留原始数据信息量的比例。
- R平方 (R²):通过 corr 函数计算观测值与预测值的相关系数平方,衡量拟合优度。
结果可视化说明:
- 交互验证均方根误差图:展示 RMSECV 随主成分增加的变化趋势,并用红色方框标注最优切入点。
- VIP 变量重要性投影图:以柱状图展示各变量重要性,并提供 VIP=1 的红虚线参考标准。
- 拟合效果图:展示观测值与预测值的散点分布及 1:1 参考线。
- 残差分析图:以火柴杆图形式展示每个样本的预测偏差,用于识别异常值。