R语言实现偏最小二乘回归法 partial least squares (PLS)回归

article/2025/10/7 13:35:41

 偏最小二乘回归是一种回归形式 。  当使用pls时,新的线性组合有助于解释模型中的自变量和因变量。

最近我们被客户要求撰写关于偏最小二乘回归的研究报告,包括一些图形和统计输出。

在本文中,我们将使用pls预测“收入”。  

library(Ecdat)
## 'data.frame':    753 obs. of  18 variables:
##  $ work      : Factor w/ 2 levels "yes","no": 2 2 2 2 2 2 2 2 2 2 ...
##  $ hoursw    : int  1610 1656 1980 456 1568 2032 1440 1020 1458 1600 ...
##  $ child6    : int  1 0 1 0 1 0 0 0 0 0 ...
##  $ child618  : int  0 2 3 3 2 0 2 0 2 2 ...
##  $ agew      : int  32 30 35 34 31 54 37 54 48 39 ...
##  $ educw     : int  12 12 12 12 14 12 16 12 12 12 ...
##  $ hearnw    : num  3.35 1.39 4.55 1.1 4.59 ...
##  $ wagew     : num  2.65 2.65 4.04 3.25 3.6 4.7 5.95 9.98 0 4.15 ...
##  $ hoursh    : int  2708 2310 3072 1920 2000 1040 2670 4120 1995 2100 ...
##  $ ageh      : int  34 30 40 53 32 57 37 53 52 43 ...
##  $ educh     : int  12 9 12 10 12 11 12 8 4 12 ...
##  $ wageh     : num  4.03 8.44 3.58 3.54 10 ...
##  $ income    : int  16310 21800 21040 7300 27300 19495 21152 18900 20405 20425 ...
##  $ educwm    : int  12 7 12 7 12 14 14 3 7 7 ...
##  $ educwf    : int  7 7 7 7 14 7 7 3 7 7 ...
##  $ unemprate : num  5 11 5 5 9.5 7.5 5 5 3 5 ...
##  $ city      : Factor w/ 2 levels "no","yes": 1 2 1 1 2 2 1 1 1 1 ...
##  $ experience: int  14 5 15 6 7 33 11 35 24 21 ...

首先,我们将数据分为训练和测试集来准备数据。 

set.seed(777)
train<-sample(c(T,F),nrow(Mroz),rep=T) #50/50 训练/测试拆分

在上面的代码中,我们设置“ set.seed函数”以确保可重复性。然后,我们创建了“ train”对象 。 

现在,我们使用 “plsr”函数创建模型,然后使用“ summary”函数检查结果。我们  使用交叉验证。下面是代码。

## Data:    X dimension: 392 17 
##  Y dimension: 392 1
## Fit method: kernelpls
## Number of components considered: 17
## 
## VALIDATION: RMSEP
## Cross-validated using 10 random segments.
##        (Intercept)  1 comps  2 comps  3 comps  4 comps  5 comps  6 comps
## CV           11218     8121     6701     6127     5952     5886     5857
## adjCV        11218     8114     6683     6108     5941     5872     5842
##        7 comps  8 comps  9 comps  10 comps  11 comps  12 comps  13 comps
## CV        5853     5849     5854      5853      5853      5852      5852
## adjCV     5837     5833     5837      5836      5836      5835      5835
##        14 comps  15 comps  16 comps  17 comps
## CV         5852      5852      5852      5852
## adjCV      5835      5835      5835      5835
## 
## TRAINING: % variance explained
##         1 comps  2 comps  3 comps  4 comps  5 comps  6 comps  7 comps
## X         17.04    26.64    37.18    49.16    59.63    64.63    69.13
## income    49.26    66.63    72.75    74.16    74.87    75.25    75.44
##         8 comps  9 comps  10 comps  11 comps  12 comps  13 comps  14 comps
## X         72.82    76.06     78.59     81.79     85.52     89.55     92.14
## income    75.49    75.51     75.51     75.52     75.52     75.52     75.52
##         15 comps  16 comps  17 comps
## X          94.88     97.62    100.00
## income     75.52     75.52     75.52

输出包括“验证”部分中均方根误差 。因为有17个独立变量,所以有17个成分。 可以看到,在成分3或4之后,因变量中解释的方差几乎没有改善。下面是这些结果图的代码。 

我们将使用我们的模型进行预测。 

此后,我们计算均方误差。这是通过从测试集的因变量中减去我们的预测模型的结果来完成的。然后,我们对这些信息求平方并计算平均值。 

mean((pls.pred-Mroz$income[test])^2)
## [1] 63386682

 我们使用传统的最小二乘回归模型运行数据并比较结果。

## [1] 59432814

最小二乘模型比偏最小二乘模型好一点,但是如果看一下模型,我们会看到几个不重要的变量。我们删除这些,看看结果如何 

summary(lm.fit)

## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -20131  -2923  -1065   1670  36246 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.946e+04  3.224e+03  -6.036 3.81e-09 ***
## workno      -4.823e+03  1.037e+03  -4.651 4.59e-06 ***
## hoursw       4.255e+00  5.517e-01   7.712 1.14e-13 ***
## child6      -6.313e+02  6.694e+02  -0.943 0.346258    
## child618     4.847e+02  2.362e+02   2.052 0.040841 *  
## agew         2.782e+02  8.124e+01   3.424 0.000686 ***
## educw        1.268e+02  1.889e+02   0.671 0.502513    
## hearnw       6.401e+02  1.420e+02   4.507 8.79e-06 ***
## wagew        1.945e+02  1.818e+02   1.070 0.285187    
## hoursh       6.030e+00  5.342e-01  11.288  < 2e-16 ***
## ageh        -9.433e+01  7.720e+01  -1.222 0.222488    
## educh        1.784e+02  1.369e+02   1.303 0.193437    
## wageh        2.202e+03  8.714e+01  25.264  < 2e-16 ***
## educwm      -4.394e+01  1.128e+02  -0.390 0.697024    
## educwf       1.392e+02  1.053e+02   1.322 0.186873    
## unemprate   -1.657e+02  9.780e+01  -1.694 0.091055 .  
## cityyes     -3.475e+02  6.686e+02  -0.520 0.603496    
## experience  -1.229e+02  4.490e+01  -2.737 0.006488 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 5668 on 374 degrees of freedom
## Multiple R-squared:  0.7552, Adjusted R-squared:  0.744 
## F-statistic: 67.85 on 17 and 374 DF,  p-value: < 2.2e-16
lm.pred<-predict(lm.fit,Mroz[test,])
mean((lm.pred-Mroz$income[test])^2)
## [1] 57839715

 误差降低很多,这表明最小二乘回归模型优于偏最小二乘模型。此外, 偏最小二乘模型很难解释。因此,最小二乘模型是最受欢迎的模型。



http://chatgpt.dhexx.cn/article/niJRqtAd.shtml

相关文章

偏最小二乘回归 Matlab

什么是偏最小二乘回归&#xff1f; 偏最小二乘回归&#xff08;英语&#xff1a;Partial least squares regression&#xff0c; PLS回归&#xff09;是一种统计学方法&#xff0c;与主成分回归有关系&#xff0c;但不是寻找响应变量和自变量之间最大方差超平面&#xff0c;而…

偏最小二乘回归预测(MATLAB源码)

偏最小二乘回归&#xff08;英语&#xff1a;Partial least squares regression&#xff0c; PLS回归&#xff09;是一种统计学方法&#xff0c;与主成分分析有关系&#xff0c;但不是寻找响应变量和自变量之间最大方差的超平面&#xff0c;而是通过投影分别将预测变量和观测变…

MATLAB-偏最小二乘回归分析

偏最小二乘回归提供一种多对多线性回归建模的方法,特别当两组变量的个数很多,且都存在多重相关性,而观测数据的数量(样本量)又较少时,用偏最小二乘回归建立的模型具有传统的经典回归分析等方法所没有的优点。 偏最小二乘回归分析在建模过程中集中了主成分分析,典…

MATLAB实现偏最小二乘回归PLS

这一定是一篇真正的傻瓜攻略&#xff0c;原理为根&#xff0c;算法为骨&#xff0c;应用为肉&#xff0c;傻瓜为皮。 本文主要介绍偏最小二乘回归的基本实现&#xff0c;主要内容基于司守奎《数学建模算法与应用》第11章&#xff0c;在其基础上进行优化。 偏最小二乘回归分析 …

第10章 最小二乘线性回归分析

目录 10.1简单线性回归分析 1.描述性统计分析 2.对数据进行相关性分析 3.对数据进行回归分析的结果 4.变量的方差-协方差矩阵 5.对变量系数的假设检验结果 6.对因变量的拟合值的预测 7.回归分析得到残差序列 案例延伸 1.在回归方程中不包含常数项 2.限定参与回归的样…

普通最小二乘(OLS)回归

口译: (Interpreting:) OLS (Ordinary Least Squared) Regression is the most simple linear regression model also known as the base model for Linear Regression. While it is a simple model, in Machine learning it is not given much weightage. OLS is one such mo…

最小二乘法:求回归直线方程

最小二乘法&#xff1a;使离差平方和 &#xff08;i1~n&#xff09; ∑&#xff08;yi-yi&#xff09; 最小的方法 结论&#xff1a;设回归方程为ybxa;解得 回归直线方程&#xff1a;在一组具有相关关系的变量与数据的&#xff08;x&#xff0c;y&#xff09;间&#xff0…

最小二乘回归

最小二乘法&#xff08;Least squares又称最小平方法&#xff09;是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据&#xff0c;并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟…

离线安装IE 11

转自&#xff1a;http://blog.sina.com.cn/s/blog_711ab1b10102wzq1.html 1、在D盘下&#xff0c;新建文件夹&#xff0c;取名为“ie”。 2、将官网下载的IE11离线包放到此文件夹中。 3、为了后续步骤方便&#xff0c;可以将离线包重命名为IE11.exe。 4、打开cmd窗口&#xff0…

Microsoft Edge离线安装包下载

#Microsoft Edge 现已准备就绪 下一版 Microsoft Edge 已准备好进行企业评估。 立即下载离线安装程序、查看管理策略并尝试 Internet Explorer 模式。 下载链接

安装IE11提示“Internet Explorer在安装前需要更新”

在Windows 7上安装IE11浏览器时&#xff0c;发现如下报错提示&#xff1a; 此问题一般会出现在未安装过更新的windows系统上&#xff0c;一般可以通过系统更新安装补丁的方式来解决&#xff0c;但是系统自带的更新会按照发布顺序将所有微软发布的补丁都安装上&#xff0c;耗费…

安装ie11提示计算机安装了更新的版本,离线安装IE11浏览器提示quot;获取更新quot;解决方法 - 191路由网...

原标题&#xff1a;"Win7系统离线安装IE11浏览器提示"获取更新"如何解决&#xff1f;"相关电脑问题教程分享。 - 来源:网络投稿。  Win7系统离线安装IE11时出现提示“获取更新”如何解决&#xff1f;IE11浏览器是目前IE浏览器已知最高的版本&#xff0c;…

electron离线安装

公司因为安全原因&#xff0c;导致连不上npm的镜像&#xff0c;查找了资料&#xff0c;终于找到一种离线安装 electron 全局开发环境的方法&#xff0c;分享并记录一下: ps: 如果能用淘宝镜像&#xff0c;直接设置npm config set ELECTRON_MIRROR https://npm.taobao.org/mirr…

chrome浏览器离线安装包下载地址

在谷歌官网下载的chrome浏览器&#xff0c;下载的是安装器&#xff0c;要通过联网安装&#xff0c;谷歌浏览器官网&#xff1a;https://www.google.com/intl/zh-CN/chrome/https://www.google.com/intl/zh-CN/chrome/ 最新版本的统一下载链接&#xff0c;通过以下链接下载的都是…

如何下载谷歌浏览器官方最新离线安装包

谷歌浏览器最新离线安装包下载 问题描述 由于工作需要&#xff0c;想在内网机中安装谷歌浏览器&#xff0c;但是内网机是没有网的&#xff0c;所以想着下载一个谷歌浏览器官方最新离线安装包&#xff0c;看似挺简单的工作&#xff0c;但实际上下载还是很麻烦&#xff0c;经过…

【已解决】在Win11上离线安装 .NET Framework 3.5的方法【含网盘离线文件】

随 Windows 11提供的是.NET Framework 4.8&#xff0c;该环境可以运行任何 .NET Framework 4.x 应用。 而.NET Framework 3.5 支持为 .NET Framework 2.0 到 3.5 生成的应用&#xff0c;需要自行安装。 当Win11的应用软件需要.net framework3.5的运行环境时&#xff0c;就会提…

win11电脑安装ie11浏览器

win11系统本身是自带ie11的&#xff0c;只是把这个浏览器屏蔽掉了 首先要替换这两个文件 C&#xff1a;\Windows\System32 和 C&#xff1a;\Windows\SysWOW64 替换之后找到这个目录 把ie右键发送到桌面快捷方式 文件下载链接&#xff08;0积分&#xff09;&#xff1a;https:…

Windows7安装IE11步骤和中文安装包超简单

此安装包仅限Win7 SP1&#xff08;Service Pack1&#xff09;其他本版装不上。 亲测&#xff1a;安装VS2015 提示安装IE10&#xff0c;安装此浏览器可以解决。 链接&#xff1a;https://pan.baidu.com/s/1OhLIlHbkSqXRiwKDjG5fwg 提取码&#xff1a;izd4 示例为win7-64bit…

IE11的安装方法和更新补丁

windows 7操作系统自带IE 8 升级到IE 11的方法 1、查看当前操作系统的系统位数是64位还是32位&#xff0c;这里不在赘述怎么查看&#xff0c;是64位操作系统安装x64文件夹里面的程序&#xff0c;是32位操作系统安装X86文件夹里面的程序&#xff1b; 2、如下如图&#xff0c;依…

IE11离线安装总是提示“获取更新”的解决方法

微软下载的IE11离线包在安装前&#xff0c;必须要先安装必备更新。 首先&#xff0c;先检查操作系统&#xff0c;XP系统是无法安装IE11的&#xff0c;XP支持的最高版本为IE8&#xff0c;如果是XP系统&#xff0c;请先升级到WIN7&#xff0c;旗舰版和专业版均可。 最近在离线安…