【数学建模】偏最小二乘回归分析(PLSR)

本文介绍了偏最小二乘回归(PLSR)的基本原理,结合MATLAB详细展示了如何进行PLSR建模。通过实例解释了如何使用MATLAB的plsregress函数,并给出了回归方程、主成分得分、贡献率和剩余标准差等关键结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PLSR的基本原理与推导,我在这篇博客中有讲过。

 

0.
偏最小二乘回归集成了多元线性回归、主成分分析和典型相关分析的优点,在建模中是一个更好的选择,并且MATLAB提供了完整的实现,应用时主要的问题是:

  • 注意检验,各种检验参数:有关回归的检验以及有关多元分析的检验
  • 系数众多,容易混淆
  • 要清楚原理才能写好论文
  • 注意matlab函数plsregress的众多返回值
  • 例如累计贡献度,建模时最好列出表格


1.

问题:

自变量组 X = [x1,x2…xn]  (n组自变量)

因变量组 Y = [y1,y2,…yp]   (p组因变量)

考虑到X、Y内部之间的多重相关性,可以使用PLSR建立Y对X的多元回归模型。这是一种多对多回归的模型

 

偏最小二乘回归的实现步骤:

  1. X、Y标准化。若考虑标准化的不对等特性,考虑实现对应分析。
  2. 求相关系数矩阵。可以把X、Y统一放到一个增广矩阵中,实现求列向量之间的相关系数矩阵(corrcoef实现无需标准化,直接使用原始数据)
  3. 求主成分对。(求出自变量与因变量的成分,类似于典型相关分析)这里对数其实是min(n-1,p)。求出<u1,v1>、<u2,v2>… 实际上,u、v是原始变量标准化后的线性组合、即投影。
  4. 计算贡献率表格。计算前k个主成分u对原始变量X的贡献率、v对Y的贡献率(函数直接返回结果)。
  5. 根据贡献率表格,选取k个主成分对。一般累计贡献率达到90%合适。
  6. 求出原始变量X对这k个主成分u的回归方程以及Y对u的(不是v!)回归方程。
  7. 根据6的结果,可以求出因变量组Y与自变量组X的回归方程,但这其实是标准化了的(常数项一定是0),进一步可以还原为真实原始变量的回归方程,这也是我们所要求得的。
  8. 模型的解释与检验。
    • 首先得进行一个回归检验:判定系数R方的检验(接近于1)。计算每一个回归方程的R方,可以列出表格。
    • 之后进行交叉有效性检验:交叉系数Qh方 = 1 – (PRESS(h) / SS(h-1))。这是从主成分分析的角度的检验,即检验提取的k个主成分。(这个检验比较复杂,详细看推导)

2.

MATLAB实现命令:

[XL,YL,XS,YS,BETA,PCTVAR,MSE,stats] = plsregress(X,Y,ncomp)

param:

  X: 标准化后的原始X数据,每行一个数据组,每列是一项指标,即一个自变量

  Y:标准化后的原始Y数据,每行一个数据组,每列是一项指标,即一个因变量

  ncomp:选取的主成分对数

return:

  XL:自变量的负荷量矩阵。维度是(自变量数*ncomp)。每行是原始数据X对主成分u的回归表达式的系数

  YL:因变量的负荷量矩阵。维度是(自变量数*ncomp)。每行是原始数据Y对主成分u的回归表达式的系数

 

  XS:对应于主成分u的得分矩阵(得分说的是主成分的值)。每列是一个主成分得分向量。

    如:每一列是一个主成分ui的值!列数是主成分数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值