通过Matlab示例来解释偏最小二乘的原理

此示例显示如何在matlab中应用偏最小二乘回归(PLSR)和主成分回归(PCR),并讨论这两种方法的有效性。

当存在大量预测变量时,PLSR和PCR都是对因变量建模的方法,并且这些预测变量高度相关或甚至共线性。

两种方法都将新的预测变量(称为成分)构建为原始预测变量的线性组合,但它们以不同的方式构造这些成分。PCR创建成分来解释预测变量中观察到的变异性,而根本不考虑因变量。另一方面,PLSR确实将因变量考虑在内,因此通常会导致模型能够使用更少的成分来适应因变量。

加载数据

加载包括401个波长的60个汽油样品的光谱强度及其辛烷值的数据集。

set(gcf,'DefaultAxesColorOrder',jet(60));
plot3(repmat(1:401,60,1)',repmat(octane(h),1,401)',NIR(h,:)');
set(gcf,'DefaultAxesColorOrder',oldorder);
xlabel('Wavelength Index'); ylabel('Octane'); axis('tight');
grid on

使用两个拟合数据

使PLSR模型拟合10个PLS成分和一个因变量。

为了充分拟合数据,可能需要十个成分,但可以使用此拟合的诊断来选择具有更少成分的更简单模型。例如,选择成分数量的一种快速方法是将因变量中解释的方差百分比绘制为成分数量的函数。

在实践中,在选择成分数量时可能需要更加谨慎。例如,交叉验证是一种广泛使用的方法,稍后将在本示例中进行说明。目前,上图显示具有两个成分的PLSR解释了观察到的大部分方差y。计算双组分模型的拟合因变量。

plot(1:10,cumsum(100*PLSPctVar(2,:)),'-bo');
xlabel('Number of PLS components');
ylabel('Percent Variance Explained in Y');

接下来,拟合具有两个主要成分的PCR模型。第一步是X使用该pca函数执行主成分分析,并保留两个主成分。

然后,PCR只是这两个成分的因变量的线性回归。当变量具有非常不同的可变性时,通常首先通过其标准偏差来规范每个变量。

plot(y,yfitPLS,'bo',y,yfitPCR,'r^');xlabel('Observed Response');ylabel('Fitted Response');legend({'PLSR with 2 Components' 'PCR with 2 Components'},  ... 'location','NW');

从某种意义上说,上图中的比较并不合理 – 通过观察双组分PLSR模型预测因变量的程度来选择成分数(两个),并且没有说明为什么PCR模型应该限制相同数量的成分。然而,使用相同数量的成分,PLSR做得更好。实际上,观察上图中拟合值的水平分布,使用两个分量的PCR几乎不比使用常数模型好。回归的r方值证实了这一点。

比较两种模型的预测能力的另一种方法是在两种情况下将因变量绘制成两个预测变量。

plot3(Xscores(:,1),Xscores(:,2),y-mean(y),'bo');
legend('PLSR');
grid on; view(-30,30);

如果不能以交互方式旋转图形,有点难以看到,但上面的PLSR图显示了紧密分散在平面上的点。另一方面,下面的PCR图显示点几乎没有线性关系。

plot3(PCAScores(:,1),PCAScores(:,2),y-mean(y),'r^');
legend('PCR');
grid on; view(-30,30);

请注意,尽管两个PLS成分是观察到的更好的预测因子,但下图显示它们解释的方差比例比PCR中使用的前两个主成分少。

PCR曲线一致性较高的事实表明,为什么使用两种成分的PCR相对于PLSR在拟合时表现很差。PCR构建成分以便最好地解释X,因此,前两个成分忽略了数据拟合中观察到的重要信息y。

拟合更多成分

随着在PCR中添加更多成分,它必然会更好地拟合原始数据y,这仅仅是因为在某些时候,大多数重要的预测信息X将存在于主要成分中。例如,使用10个成分时,两种方法的残差远小于两个成分的残差。

交叉验证

在预测未来变量的观察结果时,选择成分数量以减少预期误差通常很有用。简单地使用大量成分将很好地拟合当前观察到的数据,但这是一种导致过度拟合的策略。过于拟合当前数据会导致模型不能很好地推广到其他数据,并对预期误差给出过度乐观的估计。

交叉验证是一种统计上更加合理的方法,用于选择PLSR或PCR中的成分数量。它通过不重复使用相同的数据来拟合模型和估计预测误差来避免过度拟合数据。因此,预测误差的估计不会乐观地向下偏差。

pls可以选择通过交叉验证来估计均方预测误差(MSEP),在这种情况下使用10倍CV。

[X1,Y1,Xs,Ys,β,pctVar,PLSmsep] = plsregress(X,y,10,'CV',10);

对于PCR,crossval结合用于计算PCR的平方误差之和,可以再次使用10倍交叉验证来估计MSEP.

PCRmsep = sum(crossval(@ pcrsse,X,y,'KFold',10),1)/ n;

PLSR的MSEP曲线表明两个或三个成分好。另一方面,PCR需要四个成分才能获得相同的预测精度。

事实上,PCR中的第二个成分会增加模型的预测误差,这表明该成分中包含的预测变量的组合与其没有很强的相关性y。再次,这是因为PCR构建成分来解释X,而不是y。

模型简约

因此,如果PCR需要四个成分来获得与具有三个成分的PLSR相同的预测精度,那么PLSR模型是否更加简约?这取决于您考虑的模型的哪个方面。

PLS权重是定义PLS分量的原始变量的线性组合,即,它们描述了PLSR中的每个分量依赖于原始变量的权重。

类似地,PCA载荷描述了PCR中每个成分依赖于原始变量的强度。

对于PLSR或PCR,可以通过检查每个成分最重要的变量来为每个成分提供有意义的解释。例如,利用这些光谱数据,可以根据汽油中存在的化合物解释强度峰值,然后观察特定成分的权重挑选出少量这些化合物。从这个角度来看,更少的成分更易于解释,并且由于PLSR通常需要更少的成分来充分预测因变量,因此会导致更简约的模型。

另一方面,PLSR和PCR都导致每个原始预测变量的一个回归系数加上截距。从这个意义上讲,两者都不是更简约,因为无论使用多少成分,两种模型都依赖于所有预测变量。更具体地,对于这些数据,两个模型都需要401个光谱强度值以进行预测。

然而,最终目标可能是将原始变量集减少到仍然能够准确预测因变量的较小子集。例如,可以使用PLS权重或PCA载荷来仅选择对每个成分贡献最大的那些变量。如前所示,来自PCR模型拟合的一些成分可主要用于描述预测变量的变化,并且可包括与因变量不强相关的变量的权重。因此,PCR会导致保留预测不必要的变量。

对于本例中使用的数据,PLSR和PCR所需的成分数量之间的差异不是很大,PLS权重和PCA载荷选择了相同的变量。其他数据可能并非如此。

MATLAB中的偏最小二乘回归(PLSR)和主成分回归(PCR)相关推荐

  1. 偏最小二乘,主成分分析,主成分回归,奇异值之间的关系

    在统计中,主成分回归(PCR)是一种基于主成分分析(PCA)的回归分析技术. 在PCR中,不是直接对解释变量进行因变量回归,而是将解释变量的主要成分用作回归变量. 基于奇异值分解(SVD)的偏最小二乘 ...

  2. 高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据...

    原文链接:http://tecdat.cn/?p=23378 1 介绍 在本文中,我们将研究以下主题 证明为什么低维预测模型在高维中会失败. 进行主成分回归(PCR). 使用glmnet()进行岭回归 ...

  3. plsr matlab,matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR)

    pls可以选择通过交叉验证来估计均方预测误差(MSEP),在这种情况下使用10倍CV. R 1 [X1,Y1,Xs,Ys,β,pctVar,PLSmsep]=plsregress(X,y,10,'CV ...

  4. matlab偏最小二乘截距,matlab代写偏最小二乘回归(PLSR)和主成分回归(PCR)

    原标题:matlab代写偏最小二乘回归(PLSR)和主成分回归(PCR) 原文:http://tecdat.cn/?p=2655 此示例显示如何在matlab中应用偏最小二乘回归(PLSR)和主成分回 ...

  5. 偏最小二乘回归(PLSR)和主成分回归(PCR)

    本项目中我们被要求显示如何在matlab中应用偏最小二乘回归(PLSR)和主成分回归(PCR),并讨论这两种方法的有效性.当存在大量预测变量时,PLSR和PCR都是对因变量建模的方法,并且这些预测变量 ...

  6. 主成分回归之后预测_主成分回归解析.ppt

    教学课件课件PPT医学培训课件教育资源教材讲义 主成分回归分析 一.主成分估计 主成分估计是以P个主成分中的前q个贡献大的主成分为自变量建立回归方程,估计参数的一种方法. 它可以消除变量间的多重共线性 ...

  7. Matlab中的偏最小二乘法(PLS)回归模型,离群点检测和变量选择

    全文下载:http://tecdat.cn/?p=22319 本文建立偏最小二乘法(PLS)回归(PLSR)模型,以及预测性能评估.为了建立一个可靠的模型,我们还实现了一些常用的离群点检测和变量选择方 ...

  8. r语言pls分析_R语言中的偏最小二乘PLS回归算法

    偏最小二乘回归: 我将围绕结构方程建模(SEM)技术进行一些咨询,以解决独特的业务问题.我们试图识别客户对各种产品的偏好,传统的回归是不够的,因为数据集的高度分量以及变量的多重共线性.PLS是处理这些 ...

  9. r语言pls分析_R语言中的偏最小二乘回归PLS-DA

    主成分回归(PCR)的方法 本质上是使用第一个方法的普通最小二乘(OLS)拟合​来自预测变量的主成分(PC).这带来许多优点: 预测变量的数量实际上没有限制. 相关的预测变量不会破坏回归拟合. 但是, ...

最新文章

  1. 深入理解计算机系统-之-数值存储(六)--以不同的方式窥视内存
  2. 如何轮播 DataV 大屏
  3. Struts2【一】 配置介绍
  4. Zigbee如何在智能家居中成为领先的连接技术?
  5. 来一份全面的面试宝典练练手,面试真题解析
  6. 第14课 跳绳达人 《小学生C++趣味编程》
  7. std中稳定排序算法_排序算法问题:稳定排序与不稳定排序
  8. JavaScript之数组去重
  9. Visual C++ MSDEV.exe 应用程序错误
  10. 2018最新完整版黑马安卓android第52期(基础+就业班)61G打包
  11. UML14种图之部署图和构件图最全总结
  12. xray漏扫工具学习。
  13. Xposed框架原理深入研究
  14. 二元一次方程组计算机题,2元一次方程组(二元一次方程组计算题带答案)
  15. springboot项目多moudle打包到一个jar
  16. 基于MPC的移动机器人轨迹跟踪控制qpOASES例程
  17. twitter视频下载php,Twitter推特红心点赞H5动画按钮特效
  18. Html 后端了解基础
  19. 在森林防火中,热成像为何这么鸡肋?
  20. IO流,多线程,网络编程(4)JavaSE

热门文章

  1. 10款PHP开源电子商务系统
  2. Hello world,Hello 2015,Bye 2014
  3. 让单身狗犹如过情人节的“网易云日推”原来是这样生成的
  4. BUUCTF-Misc-No.4
  5. Silverlight 教程第五部分:用 ListBox 和 DataBinding 显示列表数据 (木野狐译)
  6. 用 ListBox 和 DataBinding 显示列表数据 (木野狐译) 1
  7. 一份私人alias清单
  8. AttributeError: module ‘keras_applications‘ has no attribute
  9. X11 Wayland 及 Mir 比较
  10. 话说无为原理——数据分析漫谈6