在MATLAB中如何用PLS确定最优主成分数

在MATLAB中如何用PLS确定最优主成分数,第1张

( a) 运行Microsoft Excel( b) 在Excel 窗口中选择“工具”菜单中的“加载宏”命令( c) 在d出的菜单中单击“浏览”按钮( d) 选择D: \MAT LAB11\ EXLINK 文件夹, 找到EXCLLINK 后, 再单击“确定”按钮( e) 返回到“加载宏”对话框, 再击“确定”按钮。见图1 所示的对话框。图1 “加载宏”对话框Fig. 1 “adding macro?”dialog box( f)Excel 窗口的“格式”工具栏下会出现一个新的工具栏“Excel Link”, 该工具栏有三个按钮, 分别为putmatrix, getmatrix, evalstring。见图2 所示的Excel 窗口。此时, Matlab 命令窗口已经打开, 说明Excel 链接Matlab 成功。putmatrix, getmatrix, evalstring 三个按钮的功能分别为:* putmatrix 按钮的作用是把Excel 中选中的数据传送到Matlab 中* getmatrix 按钮的作用是Excel 从Matlab 中获取数据* evalstring 按钮的作用是执行Matlab 的命令。利用这三个按钮, 就可以对Excel 的数据传送到Matlab, 进行处理, 把Matlab 强大的处理功能扩展到Excel 之中。

plsregress偏最小二乘回归。

[XLOADINGS,YLOADINGS] = plsregress(X,Y,NCOMP)计算最少

使用NCOMP PLS组分或潜在的Y在Y上的正方形回归

因素,并返回预测器和响应负载。 X是N-by-P

预测变量矩阵,行对应观察,

列到变量。 Y是N×M响应矩阵。 XLOADINGS是一个

预测器加载的P-by-NCOMP矩阵,其中每行XLOADINGS

包含定义PLS组件的线性组合的系数

接近原始预测变量。 YLOADINGS是一个

M-by-NCOMP响应加载矩阵,其中每行YLOADINGS

包含定义PLS组件的线性组合的系数

接近原始响应变量。

[XLOADINGS,YLOADINGS,XSCORES] = plsregress(X,Y,NCOMP)返回

预测分数,即PLS分量的线性组合

X. XSCORES中的变量是具有行的N-by-NCOMP正交矩阵

对应于观察,列对应组件。

[XLOADINGS,YLOADINGS,XSCORES,YSCORES] = plsregress(X,Y,NCOMP)

返回响应分数,即,线性组合

PLS组件XSCORES具有最大协方差的响应。

YSCORES是一个N-by-NCOMP矩阵,其行对应于观察,

列到组件。 YSCORES既不正交也不标准化。

plsregress使用SIMPLS算法,首先将X和Y居中

减去列意味着获得居中的变量X0和Y0。

但是,它不会重新缩放列。至少执行

使用标准化变量进行平方回归,使用ZSCORE对X进行标准化

和Y.

如果省略NCOMP,则其默认值为MIN(SIZE(X,1)-1,SIZE(X,2))。

分数,加载和居中变量X0之间的关系

和Y0是

XLOADINGS =(XSCORES \ X0)'= X0'* XSCORES,

YLOADINGS =(XSCORES \ Y0)'= Y0'* XSCORES,

即,XLOADINGS和YLOADINGS是回归X0和X0的系数

XSCORES上的Y0和XSCORES * XLOADINGS'和XSCORES * YLOADINGS'是PLS

近似于X0和Y0。 plsregress最初将YSCORES计算为

YSCORES = Y0 * YLOADINGS = Y0 * Y0'* XSCORES,

然而,按照惯例,plsregress然后使每列的正交化

关于前面的XSCORES列的YSCORES,这样

XSCORES'* YSCORES是下三角形。

[XL,YL,XS,YS,BETA] = plsregress(X,Y,NCOMP,...)返回PLS回归

系数BETA。 BETA是包含截距的(P + 1)-by-M矩阵

第一行中的术语,即Y = [ONES(N,1)X] * BETA + Yresiduals,以及

Y0 = X0 * BETA(2:END,:) + Yresiduals。

[XL,YL,XS,YS,BETA,PCTVAR] = plsregress(X,Y,NCOMP)返回2-by-NCOMP

矩阵PCTVAR包含由方法解释的方差百分比

模型。 PCTVAR的第一行包含方差百分比

每个PLS组件在X中解释,第二行包含

Y中解释的方差百分比。

[XL,YL,XS,YS,BETA,PCTVAR,MSE] = plsregress(X,Y,NCOMP)返回

2-by-(NCOMP + 1)矩阵MSE包含估计的均方误差

带有0:NCOMP组件的PLS模型。 MSE的第一行包含均值

X和第二行中预测变量的平方误差

包含Y中响应变量的均方误差。

[XL,YL,XS,YS,BETA,PCTVAR,MSE] = plsregress(...,'PARAM1',val1,...)允许

您可以指定可选参数名称/值对来控制

计算MSE。参数是:

'CV'用于计算MSE的方法。当'CV'是积极的

整数K,plsregress使用K折交叉验证。组

'CV'到交叉验证分区,使用创建

CVPARTITION,使用其他形式的交叉验证。什么时候

'CV'是'重新取代',plsregress使用X和Y两者

拟合模型并估计均方误差,

没有交叉验证。默认为“重新取代”。

'MCReps'一个正整数,表示蒙特卡罗的数量

重复进行交叉验证。默认值为1。

如果'CV'是'重新取代','MCReps'必须为1。

'Options'一种结构,指定控制plsregress的方式

执行交叉验证计算。这个论点可以

通过调用STATSET创建。 plsregress使用以下内容

结构领域:

'UseParallel'

'UseSubstreams'

“流”

有关这些字段的信息,请参阅PARALLELSTATS。

注意:如果提供,“Streams”必须为长度为1。

是一款功能强大的数学软件

MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。

MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连

matlab开发工作界面

接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12126505.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存