Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >R语言特征选择方法——最佳子集回归、逐步回归|附代码数据

R语言特征选择方法——最佳子集回归、逐步回归|附代码数据

原创
作者头像
拓端
发布于 2023-02-20 14:22:32
发布于 2023-02-20 14:22:32
1.2K00
代码可运行
举报
文章被收录于专栏:拓端tecdat拓端tecdat
运行总次数:0
代码可运行

原文链接:http://tecdat.cn/?p=5453

最近我们被客户要求撰写关于特征选择方法的研究报告,包括一些图形和统计输出。

变量选择方法

所有可能的回归

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
model <- lm(mpg ~ disp + hp + wt + qsec, data = mtcars)
ols_all_subset(model)

## # A tibble: 15 x 6
##    Index     N      Predictors `R-Square` `Adj. R-Square` `Mallow's Cp`
##                                          
##  1     1     1              wt    0.75283         0.74459      12.48094
##  2     2     1            disp    0.71834         0.70895      18.12961
##  3     3     1              hp    0.60244         0.58919      37.11264
##  4     4     1            qsec    0.17530         0.14781     107.06962
##  5     5     2           hp wt    0.82679         0.81484       2.36900
##  6     6     2         wt qsec    0.82642         0.81444       2.42949
##  7     7     2         disp wt    0.78093         0.76582       9.87910
##  8     8     2         disp hp    0.74824         0.73088      15.23312
##  9     9     2       disp qsec    0.72156         0.70236      19.60281
## 10    10     2         hp qsec    0.63688         0.61183      33.47215
## 11    11     3      hp wt qsec    0.83477         0.81706       3.06167
## 12    12     3      disp hp wt    0.82684         0.80828       4.36070
## 13    13     3    disp wt qsec    0.82642         0.80782       4.42934
## 14    14     3    disp hp qsec    0.75420         0.72786      16.25779
## 15    15     4 disp hp wt qsec    0.83514         0.81072       5.00000

plot方法显示了所有可能的回归方法的拟合  。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
model <- lm(mpg ~ disp + hp + wt + qsec, data = mtcars)
k <- ols_all_subset(model)
plot(k)

最佳子集回归

选择在满足一些明确的客观标准时做得最好的预测变量的子集,例如具有最大R2值或最小MSE, Cp或AIC。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
model <- lm(mpg ~ disp + hp + wt + qsec, data = mtcars)
ols_best_subset(model)

##    Best Subsets Regression    
## ------------------------------
## Model Index    Predictors
## ------------------------------
##      1         wt              
##      2         hp wt           
##      3         hp wt qsec      
##      4         disp hp wt qsec 
## ------------------------------
## 
##                                                   Subsets Regression Summary                                                   
## -------------------------------------------------------------------------------------------------------------------------------
##                        Adj.        Pred                                                                                         
## Model    R-Square    R-Square    R-Square     C(p)        AIC        SBIC        SBC        MSEP      FPE       HSP       APC  
## -------------------------------------------------------------------------------------------------------------------------------
##   1        0.7528      0.7446      0.7087    12.4809    166.0294    74.2916    170.4266    9.8972    9.8572    0.3199    0.2801 
##   2        0.8268      0.8148      0.7811     2.3690    156.6523    66.5755    162.5153    7.4314    7.3563    0.2402    0.2091 
##   3        0.8348      0.8171       0.782     3.0617    157.1426    67.7238    164.4713    7.6140    7.4756    0.2461    0.2124 
##   4        0.8351      0.8107       0.771     5.0000    159.0696    70.0408    167.8640    8.1810    7.9497    0.2644    0.2259 
## -------------------------------------------------------------------------------------------------------------------------------
## AIC: Akaike Information Criteria 
##  SBIC: Sawa's Bayesian Information Criteria 
##  SBC: Schwarz Bayesian Criteria 
##  MSEP: Estimated error of prediction, assuming multivariate normality 
##  FPE: Final Prediction Error 
##  HSP: Hocking's Sp 
##  APC: Amemiya Prediction Criteria

plot

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
model <- lm(mpg ~ disp + hp + wt + qsec, data = mtcars)
k <- ols_best_subset(model)
plot(k)

逐步前进回归

从一组候选预测变量中建立回归模型,方法是逐步输入基于p值的预测变量,直到没有变量进入变量。该模型应该包括所有的候选预测变量。如果细节设置为TRUE,则显示每个步骤。


点击标题查阅往期内容

R语言多元逐步回归模型分析房价和葡萄酒价格:选择最合适的预测变量

左右滑动查看更多

01

02

03

04

变量选择

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#向前逐步回归
model <- lm(y ~ ., data = surgical)
ols_step_forward(model)

## We are selecting variables based on p value...

## 1 variable(s) added....

## 1 variable(s) added...
## 1 variable(s) added...
## 1 variable(s) added...
## 1 variable(s) added...

## No more variables satisfy the condition of penter: 0.3

## Forward Selection Method                                                       
## 
## Candidate Terms:                                                               
## 
## 1 . bcs                                                                        
## 2 . pindex                                                                     
## 3 . enzyme_test                                                                
## 4 . liver_test                                                                 
## 5 . age                                                                        
## 6 . gender                                                                     
## 7 . alc_mod                                                                    
## 8 . alc_heavy                                                                  
## 
## ------------------------------------------------------------------------------
##                               Selection Summary                                
## ------------------------------------------------------------------------------
##         Variable                     Adj.                                         
## Step      Entered      R-Square    R-Square     C(p)        AIC         RMSE      
## ------------------------------------------------------------------------------
##    1    liver_test       0.4545      0.4440    62.5119    771.8753    296.2992    
##    2    alc_heavy        0.5667      0.5498    41.3681    761.4394    266.6484    
##    3    enzyme_test      0.6590      0.6385    24.3379    750.5089    238.9145    
##    4    pindex           0.7501      0.7297     7.5373    735.7146    206.5835    
##    5    bcs              0.7809      0.7581     3.1925    730.6204    195.4544    
## ------------------------------------------------------------------------------

 
model <- lm(y ~ ., data = surgical)
k <- ols_step_forward(model)

## We are selecting variables based on p value...

## 1 variable(s) added....

## 1 variable(s) added...
## 1 variable(s) added...
## 1 variable(s) added...
## 1 variable(s) added...

## No more variables satisfy the condition of penter: 0.3

plot(k)


本文摘选 R语言特征选择——逐步回归 ,点击“阅读原文”获取全文完整资料。


点击标题查阅往期内容

R语言多元逐步回归模型分析房价和葡萄酒价格:选择最合适的预测变量 R语言逐步多元回归模型分析长鼻鱼密度影响因素 R语言特征选择——逐步回归 r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现 回归分析与相关分析的区别和联系 R语言分位数回归预测筛选有上升潜力的股票 R语言实现LASSO回归——自己编写LASSO回归算法 R语言泊松Poisson回归模型预测人口死亡率和期望寿命 R语言时间序列TAR阈值自回归模型 R语言用泊松Poisson回归、GAM样条曲线模型预测骑自行车者的数量 R语言分位数回归Quantile Regression分析租房价格 R语言用Garch模型和回归模型对股票价格分析 R语言广义线性模型GLM、多项式回归和广义可加模型GAM预测泰坦尼克号幸存者 R语言分段回归数据数据分析案例报告 R语言实现CNN(卷积神经网络)模型进行回归数据分析 R语言分位数回归、GAM样条曲线、指数平滑和SARIMA对电力负荷时间序列预测

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
特征选择方法——最佳子集回归、逐步回归
选择在满足一些明确的客观标准时做得最好的预测变量的子集,例如具有最大R2值或最小MSE, Cp或AIC。
拓端
2021/12/17
1.4K0
特征选择方法——最佳子集回归、逐步回归
R 语言统计建模大全:20 个经典模型实战解析,速收藏!
统计建模是数据科学中至关重要的一部分,帮助分析和预测数据中的趋势与模式。在数据科学中,常用的统计模型有回归分析、时间序列分析、分类模型、聚类模型等,每种模型有其独特的应用场景。在R语言中,我们可以通过丰富的统计包,如lm()进行线性回归分析,glm()用于广义线性模型,arima()进行时间序列建模等。这些模型能够帮助我们从数据中提取信息并做出科学决策,成为数据分析中的强大工具。
天意生信云
2025/02/27
2500
R 语言统计建模大全:20 个经典模型实战解析,速收藏!
MRM中进行变量筛选
1.最近总有人加我好友称呼我的时候把我的姓写错。我的姓是雷厉风行的厉!厉行节约的厉!不明觉厉的厉!不是日历的历啊!
Listenlii-生物信息知识分享
2020/05/29
1.6K0
R语言进阶之Lattice绘图
由Deepayan Sarkar编写的“lattice”包是在R语言基础绘图系统上开发的绘图包。它最大的特点就是优化基础绘图的默认值并能更简单地去展示多元关系,最特别的就是它支持trelli绘图方式来揭示条件关系。其典型使用方法如下;graph_type(formula, data=)
生信与临床
2020/08/27
1.6K0
R语言Lasso回归模型变量选择和糖尿病发展预测模型|附代码数据
Lease Absolute Shrinkage and Selection Operator(LASSO)在给定的模型上执行正则化和变量选择
拓端
2022/11/09
1.1K0
R语言入门之线性回归
‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍先回顾一下线性回归模型的成立的四个条件(LINE):
生信与临床
2020/08/06
2.8K0
R语言入门之线性回归
R in action读书笔记(11)-第八章:回归-- 选择“最佳”的回归模型
用基础安装中的anova()函数可以比较两个嵌套模型的拟合优度。所谓嵌套模型,即它的一
统计学家
2019/04/10
1.1K0
R in action读书笔记(11)-第八章:回归--  选择“最佳”的回归模型
R语言逐步多元回归模型分析长鼻鱼密度影响因素
我从马里兰州生物流调查中提取了一些数据,以进行多元回归分析。数据因变量是每75米长的水流中长鼻鱼(Rhinichthys cataractae)的数量。自变量是河流流失的面积(英亩);氧浓度(毫克/升);水流段的最大深度(以厘米为单位);硝酸盐浓度(毫克/升);硫酸盐浓度(毫克/升);以及采样日期的水温(以摄氏度为单位)。
拓端
2023/08/31
2560
R语言逐步多元回归模型分析长鼻鱼密度影响因素
R语言数据分析与挖掘(第四章):回归分析(3)——变量的选择
  在数据挖掘的实战过程中,经常会遇到变量非常多的情况,即数据的维数很高,也称为“维数灾难”问题。在我们生物医学统计领域,一个数据集中可能存在成百上千个变量,对于回归处模而言,并不是越多变量越好,利用少而精的变量建模显得极为重要,如何选择变量子集就是解决问题的关键。
DoubleHelix
2019/12/13
8.9K0
R语言数据分析与挖掘(第四章):回归分析(3)——变量的选择
R语言统计知识以及常用方法实例
文章目录 统计 平均值 中位数 众数 线性回归 一元 多元回归 逻辑回归 正态分布 决策树 随机森林 生存分析 卡方检验 统计 平均值 语法 mean(x, trim = 0, na.rm = FALSE, ...) x - 是输入向量。 trim - 用于从排序的向量的两端删除一些观测值。 na.rm - 用于从输入向量中删除缺少的值。 示例 x <- c(17,8,6,4.12,11,8,54,-11,18,-7) # Find Mean. result.mean <- mean(x) print(
AI拉呱
2021/01/14
6640
集统计分析数据可视化与一身的利器,这个R包轻松实现
❝本节来介绍一款R包「rempsyc」即可用来进行统计分析又可用来进行图表绘制,内容很是丰富,原文文档链接见下方,各位观众老爷可以去参考官方文档了解具体细节。❞ 原文文档 ❝https://rempsyc.remi-theriault.com/#nice-apa-tables❞ 加载R包 install.packages("rempsyc") library(rempsyc) library(tidyverse) t-test分析 t.tests <- nice_t_test(data = mtcars,
R语言数据分析指南
2022/12/20
4520
集统计分析数据可视化与一身的利器,这个R包轻松实现
R in action读书笔记(22)第十六章 高级图形进阶(下)
在lattice图形中,lattice函数默认的图形参数包含在一个很大的列表对象中,你可通过trellis.par.get()函数来获取,并用trellis.par.set()函数来修改。show.settings()函数可展示当前的图形参数设置情况。查看当前的默认设置,并将它们存储到一个mysettings列表中:
统计学家
2019/04/10
1.5K0
R in action读书笔记(22)第十六章 高级图形进阶(下)
R语言读CSV、txt文件方式以及read.table read.csv 和readr(大数据读取包)
**2018博客之星评选,如果喜欢我的文章,请投我一票,编号:No.009**  [支持连接](https://blog.csdn.net/HHTNAN/article/details/85330758) ,万分感谢!!!
学到老
2019/02/14
2.8K0
R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化分析|附代码数据
最近我们被客户要求撰写关于预测心脏病数据的研究报告,包括一些图形和统计输出。 本报告是对心脏研究的机器学习/数据科学调查分析。更具体地说,我们的目标是在心脏研究的数据集上建立一些预测模型,并建立探索性和建模方法。但什么是心脏研究?
拓端
2022/12/23
7880
R语言入门之散点图
在R中有很多方式去绘制散点图,其中最基本的就是是用plot(x, y)函数,往期内容已经进行过详细讲解,这里就不赘述了,下面直接看实例图。
生信与临床
2020/08/06
3K0
R语言入门之散点图
R语言实现网页交互图形绘制
大家看惯R语言朴素的外表后,可能觉得一些高大上的气息好像和R语言没啥关系。今天我们为大家就展示下R语言在图像的交互中帅气一面。话不多说,进入我们的主题:网页可互动图像的绘制。首先我们还是需要安装一个R包:plotly。此包存在于R语言的CRAN上,所以直接安装就好。其依赖的包包括了shiny在内的大量绘图工具。最后我们还要加载另一个包DT。载入包
一粒沙
2019/07/31
2.4K0
【视频】R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险|数据分享|附代码数据
最近我们被客户要求撰写关于逻辑回归的研究报告,包括一些图形和统计输出。 本文介绍了逻辑回归并在R语言中用逻辑回归(Logistic回归)模型分类预测病人冠心病风险数据
拓端
2022/12/22
9770
R语言_回归分析
R里面已经包含了众多的回归 为了解释OLS模型的参数,数据必须满足以下统计假设: 评估模型的方法 #lm拟合回归模型 #简单线性回归 fit = lm(weight~height,data
用户1147754
2019/05/26
1.2K0
R语言广义相加模型 (GAMs)分析预测CO2时间序列数据|附代码数据
这基本上就是具有 光滑函数的广义线性模型(GLM)的扩展 。当然,当您使用光滑项拟合模型时,可能会发生许多复杂的事情,但是您只需要了解基本原理即可。
拓端
2022/11/09
2K0
【视频】什么是非线性模型与R语言多项式回归、局部平滑样条、 广义相加GAM分析工资数据|数据分享|附代码数据
在这文中,我将介绍非线性回归的基础知识。非线性回归是一种对因变量和一组自变量之间的非线性关系进行建模的方法。最后我们用R语言非线性模型预测个人工资数据是否每年收入超过25万
拓端
2023/01/29
1.3K0
推荐阅读
相关推荐
特征选择方法——最佳子集回归、逐步回归
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验