内容
说明:
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,...)
返回结构体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’.