内容

说明:

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.[XL,YL] = plsregress(X,Y,ncomp)

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

2.[XL,YL,XS,YS] = plsregress(X,Y,ncomp)

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

3.[XL,YL,XS,YS,BETA] = PLSREGRESS(X,Y,ncomp,...)

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

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

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

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

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

6.[XL,YL,XS,YS,BETA,PCTVAR,MSE] = plsregress(...,param1,val1,param2,val2,...)

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

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

返回结构体statsW — 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’.