两模型比较:

anova()函数:可以比较两个嵌套模型的拟合优度。

fit1<-lm(Murder~Population+Illiteracy+Income+Frost,data=states)
fit2<-lm(Murder~Population+Illiteracy,data=states)
anova(fit2,fit1)

结论:p=0.994,不显著,不需要将Income和Frost添加到线性模型中。

AIC()函数:考虑了模型的统计拟合度遗迹用来拟合的参数数目。

fit1<-lm(Murder~Population+Illiteracy+Income+Frost,data=states)
fit2<-lm(Murder~Population+Illiteracy,data=states)
AIC(fit2,fit1)

结论:AIC越小越优先选择,这个结果说明模型用较少的参数获得了足够的拟合度。

多模型比较:

使用stepAIC()函数作逐步回归:

library(MASS)
fit1<-lm(Murder~Population+Illiteracy+Income+Frost,data=states)
stepAIC(fit,direction = "backward")

例子中采用该向后逐步回归,从模型包含所有预测变量开始,一次删除一个变量直到会降低模型质量为止。

具体表现为:

第一步删除Frost,AIC:  97.75 --> 95.75

第二步删除Income,AIC: 95.75 --> 93.76

第三步删除之后AIC不下降,因此终止选择过程。

这种方法虽然或许可以找到更好一些的模型,但是并不能保证找到最佳模型,因此有了全子集回归法。

使用regsubsets()函数作全子集回归:

library(leaps)
leaps<-regsubsets(Murder~Population+Illiteracy+Income+Frost,data=states,nbest=4)
plot(leaps,scale="adjr2")

(R平方含义是预测变量解释响应变量的程度,但是会随着变量数目的增加而增加,所以这里使用R调整平方来展示更加真实的R平方估计)

可以从上图中看出,当变量只有Population和Illiteracy时,R调整平方是最大的,因此双预测变量模型是最佳的。

(对nbset参数的解释:若nbest=2,先展示两个最佳的单预测变量模型,然后展示两个最佳的双预测变量模型,以此类推,直到包含所有的预测变量。)

总的来说,regsubsets函数代表的全子集回归会优于逐步回归,但是对变量很多的时候会比较乏力。但是这几种方法只是辅助,对主题的深入理解才能最终找到最佳模型。

R语言 使用regsubsets等函数进行回归模型的选择相关推荐

  1. R语言使用caret包构建岭回归模型(Ridge Regression )构建回归模型、通过method参数指定算法名称、通过trainControl函数控制训练过程

    R语言使用caret包构建岭回归模型(Ridge Regression )构建回归模型.通过method参数指定算法名称.通过trainControl函数控制训练过程 目录

  2. R语言使用glmnet包拟合lasso-cox回归模型(包含生存时间和结果标签)、使用lasso-cox模型进行特征筛选、使用sapply函数对特征数据进行标准化z-score

    R语言使用glmnet包拟合lasso-cox回归模型(包含生存时间和结果标签).使用lasso-cox模型进行特征筛选.使用sapply函数对特征数据进行标准化z-score 目录

  3. R语言使用glmnet包拟合lasso-cox回归模型(生存时间和结果标签)、lasso-cox模型进行特征筛选、plot函数可视化cv.glmnet模型获得的最佳lambda曲线位置及其1个标准差线

    R语言使用glmnet包拟合lasso-cox回归模型(包含生存时间和结果标签).使用lasso-cox模型进行特征筛选.plot函数可视化cv.glmnet模型获得的最佳lambda曲线位置及其1个 ...

  4. R语言使用xgboost包拟合xgboost回归模型、使用predict函数和训练好的模型进行预测推理、计算回归模型的评估指标MAE、MSE、RMSE

    R语言使用xgboost包拟合xgboost回归模型.使用predict函数和训练好的模型进行预测推理.计算回归模型的评估指标MAE.MSE.RMSE 目录

  5. R语言Goldfeld-Quandt检验实战:检验回归模型中是否存在异方差性(heteroscedasticity)、发生了异常差(heteroscedasticity)问题如何解决

    R语言Goldfeld-Quandt检验实战:检验回归模型中是否存在异方差性(heteroscedasticity).发生了异常差(heteroscedasticity)问题如何解决 目录

  6. R语言构建无序多分类逻辑回归模型、mlogit.display函数获取无序多分类逻辑回归模型的汇总统计信息(各分组模型对应的系数及标准差、相对危险降低率RRR值及其置信区间、AIC值等)

    R语言使用nnet包的multinom函数构建无序多分类logistic回归模型.使用epiDisplay包的mlogit.display函数获取无序多分类logistic回归模型的汇总统计信息(各分 ...

  7. R语言进行数值模拟:模拟泊松回归模型的数据

    模拟回归模型的数据 验证回归模型的首选方法是模拟来自它们的数据,并查看模拟数据是否捕获原始数据的相关特征.感兴趣的基本特征是平均值.我喜欢这种方法,因为它可以扩展到广义线性模型(logistic,Po ...

  8. R语言使用car包的durbinWatsonTest函数检验回归模型的响应变量(或者残差)是否具有独立性(Independence、是否具有自相关关javascript系autocorrelated)

    R语言使用car包的durbinWatsonTest函数检验回归模型的响应变量(或者残差)是否具有独立性(Independence.是否具有自相关关系autocorrelated) 目录

  9. R语言lm函数拟合多项式回归模型、删除数据中的异常样本outlier、之后诊断模型( diagnostics)、使用plot函数打印回归模型的QQ图、残差拟合图、标度-位置图、残差与杠杆关系图

    R语言使用lm函数拟合多项式回归模型( Polynomial regression).删除数据中的异常样本(outliser).之后再次诊断模型(Regression diagnostics).使用p ...

最新文章

  1. R中基本命名(未完)
  2. 1/7 SELECT语句:基础检索
  3. linux之自己总结学习linux的资源推荐
  4. 使用window自带的截图工具
  5. lua脚本之lua语言简介以及lua的安装
  6. html记事本制作静态网页,记事本编辑html静态网页设计(3页)-原创力文档
  7. 比例电磁阀(零)液压知识
  8. [渝粤教育] 南京邮电大学 职业生涯开发与管理 参考 资料
  9. SOUI使用总结知识汇总.
  10. 2021华硕秋季新品发布会:每一幕,都精彩
  11. IOS TalkingData实现数据监控
  12. 初次使用Chloe(本人小白)
  13. 飞信机器人 ld-linux.so.2,飞信机器人安装
  14. QUICK UI 文档
  15. 字节跳动2020秋招笔试题
  16. 进化:从孤胆极客到高效团队_极客历史记录的本周:Gmail公开,国际象棋获得深蓝胜利以及托马斯·爱迪生的诞生...
  17. pnpm不更新package.json的问题
  18. LaTeX 制作(跨页)长表格
  19. 用Java写有关早上的语录,有关于早上太阳的优美精辟句子
  20. 分布式定时任务调度实战

热门文章

  1. 通过cv2输出左右眼视差图, 然后根据视差图输出深度边沿
  2. 哈夫曼树的构造 java_Java实现哈夫曼树的构造
  3. RecyclerView加载sdcard/Music下的音乐列表
  4. Redis缓存穿透击穿和雪崩(八)
  5. java基础学习 day28(就近原则,this关键字,构造方法,标准Javabean类)
  6. 软件系统体系结构---C/S B/S P2P架构(概述)
  7. War-shall 算法 【求传递闭包】 离散数学记录
  8. springboot目录,端口,banner---2
  9. 命令行与shell编程系列之什么是命令行
  10. 高等教育出版社计算机分社社长,西航职院 | 计算机工程学院教师参加全国高等职业教育计算机类在线开放课程联盟年会...