细履平沙 发表于 2022-6-14 13:19:27

Matlab自带的PLS回归算法

本帖最后由 细履平沙 于 2022-6-14 13:20 编辑

链接
http://blog.sina.com.cn/s/blog_13915d8540102vhiq.html

内容
说明:
1、Matlab自带的PLS回归算法基于SIMPLS,对X和Y进行了中心化处理,但是没有对列进行标准化。
如要对变量进行标准化,需要用matlab中的zscore函数对X和Y进行处理。
如果ncomp省略,默认的值为min(size(X,1)-1,size(X,2))。
2、得分(scores),载荷(loadings)和中心化的X0和Y0之间的关系如下:

XL = (XS\X0)' = X0'*XS,
YL = (XS\Y0)' = Y0'*XS,
1
2
示例:
1. = plsregress(X,Y,ncomp)
Y对X进行偏最小二乘回归,指定ncomp个PLS主成分;返回自变量载荷XL和因变量载荷YL。
X 自变量矩阵,大小为np(行向量为样本,列向量为变量)。
Y 因变量矩阵,大小为nm。
XL为自变量的载荷矩阵,大小为p*ncomp维,每行为PLS主成分对原始自变量近似的线性组合系数。
YL为因变量的载荷矩阵,大小为m*ncomp维,每行为PLS主成分对原始因变量近似的线性组合系数。

2. = plsregress(X,Y,ncomp)
XS nncomp维正交矩阵,自变量得分矩阵(X中的原始变量对PLS主成分的线性组合),行向量为样本,列向量为主成分。
YS nncomp维矩阵,因变量得分矩阵(与XS的主成分具有最大协方差的因变量的线性组合),行向量为样本,列向量为主成分。YS既不是正交也不是规范化的。

3. = PLSREGRESS(X,Y,ncomp,...)
返回PLS回归系数,BETA 是一个(p+1)-by-m 矩阵。
Y = BETA + Yresiduals,
Y0 = X0BETA(2:end,:) + Yresiduals.

4. = plsregress(X,Y,ncomp)
返回一个 2-by-ncomp matrix PCTVAR,包含了模型可解释的方差百分比。PCRVAR第一行为每个PLS解释的X的方差百分比;第二行为Y的方差百分比。

5. = plsregress(X,Y,ncomp)
返回一个2-by-(ncomp+1)的MSE矩阵,包含了PLS模型0:ncomp主成分的预测均方根误差。第一行包含了X中的预测均方根误差;第二行为Y中的均方误差。

6. = plsregress(...,param1,val1,param2,val2,...)
输入参数包含了计算MSE的方法。
'cv' 指定计算MSE的方法。
值为正整数k,那么进行k折交叉验证。
值为cvpartiton类,可以指定其他的交叉验证方法。
值为‘resubstitution’ 不进行交叉验证。
'mcreps'包含了进行交叉验证时Monte-Carlo的重复次数,默认的值为1。
options 指定是否需要并行运算。
参数 UseParellel,UseSubstreams,Streams

7. = PLSREGRESS(X,Y,ncomp,...)
返回结构体stats
W — A p-by-ncomp matrixof PLS weights so that XS = X0W.
T2 — The T2 statistic for each point in XS.
Xresiduals — The predictor residuals, that is, X0-XSXL’.
Yresiduals — The response residuals, that is, Y0-XS*YL’.


细履平沙 发表于 2022-6-14 13:37:00

PLSR 是从原有自变量的样本数据矩阵 X 中提取相互正交的成分即隐变量,成分提取时考虑了因变量Y ,使其每一步提取的 PLS 成分与 Y 的协方差达到最大。这样成分中既保留了较大的方差,也保留了与因变量的相关性,从而在消去原有自变量间复共线性的同时,建立的模型仍能充分地反映出自变量与因变量间的相关关系。偏最小二乘回归模型算法结合了回归建模、主成分分析、两组变量间的典型相关分析来有效提取对系统解释能力最强的综合变量,去除一些多重相关信息和一些无意义的信息既噪音。
页: [1]
查看完整版本: Matlab自带的PLS回归算法