如何利用MATLAB的PLS回归功能,利用PLS回归分析提取主成分?
[XLOADINGS,yloadings]= pls regresses(x,y,NCOMP)的计算量最少。
使用NCOMP PLS组件或y对y的潜在平方回归。
因子,并返回预测值和响应载荷。x是N乘P
预测变量矩阵,行对应观测值,
列到变量。y是N×M响应矩阵。XLOADINGS是一个
预测器加载的p乘NCOMP矩阵,其中每一行都是XLOADINGS。
包含定义PLS组件线性组合的系数。
接近原始预测变量。YLOADINGS是一个
M-by-NCOMP响应YLOADINGS矩阵,其中每一行YLOADINGS。
包含定义PLS组件线性组合的系数。
接近原始响应变量。
[XLOADINGS,yloadings,xs cores]= pls regresses(X,y,NCOMP)返回。
预测得分,即PLS成分的线性组合。
X. XSCORES中的变量是一个带有行的N乘NCOMP正交矩阵。
对应于观察,列对应于组件。
[XLOADINGS,YLOADINGS,XSCORES,YSCORES] = plsregress(X,Y,NCOMP)
返回响应得分,即线性组合。
PLS组件XSCORES具有最大的协方差响应。
YSCORES是一个N乘NCOMP矩阵,其行对应于观察值,
列到组件。YSCORES既不是正交的,也不是标准化的。
Plsregress使用SIMPLS算法,首先以X和Y为中心。
减去一列意味着在中间得到变量X0和Y0。
但是,它不会重新调整列的大小。至少执行
使用标准化变量进行平方回归,使用ZSCORE标准化x。
y呢
如果省略NCOMP,其默认值为MIN(SIZE(X,1)-1,SIZE(X,2))。
分数、载荷和中心变量X0之间的关系
你是
XLOADINGS =(xs cores \ X0)' = X0 ' * xs cores,
y loadings =(xs cores \ Y0)' = Y0 ' * xs cores,
也就是说,XLOADINGS和yloadings是回归系数X0和X0。
XSCORES上Y0和XSCORES * xloadings '和xs cores * yloadings '是PLS。
近似X0和Y0。Plsregress最初计算的YSCORES为
ys cores = Y0 * YLOADINGS = Y0 * Y0 ' * xs cores,
然而,传统上,plsregress然后正交化每一列
关于上一期XSCORES专栏的YSCORES,像这样
XSCORES的* YSCORES是下面的三角形。
[XL,YL,XS,YS,BETA]= pls gress(X(X,y,NCOMP,...)返回pls回归。
系数β。贝塔是一个有截距的(P+1)乘M矩阵。
第一行中的项,即Y = [ONES(N,1) x] * beta+yresidual,以及
Y0 = X0 * BETA(2:END,)+ Yresiduals .
[XL,YL,XS,YS,BETA,pct var]= pls gress(X,y,NCOMP)得出2乘NCOMP。
矩阵PCTVAR包含由该方法解释的方差百分比。
模型。PCTVAR的第一行包含差异百分比。
每个PLS组件在X中解释,第二行包含
用y解释的差异百分比。
[XL,YL,XS,YS,BETA,PCTVAR,MSE]= pls regresses(X,y,NCOMP)返回。
2乘-(NCOMP+1)矩阵MSE包含估计的均方误差。
含0: ncomp成分的PLS模型。MSE的第一行包含平均值。
x和第二行中预测变量的平方误差
包含y中响应变量的均方误差。
[XL,YL,XS,YS,BETA,PCTVAR,MSE] = plsregress(...,' PARAM1 ',val1,...)允许。
您可以指定要控制的可选参数名称/值对。
计算MSE。这些参数是:
用于计算MSE的“CV”方法。当“CV”为正时
整数k,plsregress使用k重交叉验证。组
CV '到交叉验证分区,使用创建
CVPARTITION,使用其他形式的交叉验证。什么时候?
“CV”是“替换”,plsregress同时使用X和y。
拟合模型并估计均方误差,
没有交叉验证。默认为“替换”。
“MCReps”是一个正整数,表示蒙特卡洛的次数。
重复交叉验证。默认值是1。
如果“CV”是“替换”,“MCReps”必须是1。
“选项”指定如何控制pls进度的结构。
执行交叉验证计算。这个论点可以
通过调用STATSET创建。Plsregress使用以下内容
结构字段:
'使用平行线'
'使用子流'
“流动”
有关这些字段的信息,请参见PARALLELSTATS。
注意:如果提供,“流”的长度必须是1。