《R语言与农业数据统计分析及建模》——多重共线性和逐步回归

news2024/11/25 0:53:29

一、多重共线性

        多重共线性:在多元线性回归时,多个自变量之间存在高度相关关系,时模型估计失真或难以估计准确的情况。

        一般地,多元线性回归中自变量间应尽量相互独立。常规模型诊断方法难以检测多重共线性。

1、案例解释

        作物产量与生育期内气象条件密切相关,现有某地区10年的作物产量和太阳辐射、温度、降雨的统计数据,据此建立回归模型。

# 产量、生育期内平均温度、平均辐射量的数据集
df<-data.frame(
  yield=c(2151,2073,2073,2888,2638,2150,2092,2645,2894,2849),
  radn=c(21.0,20.7,23.7,28.8,26.0,22.1,20.8,27.2,28.9,27.4),
  temp=c(16.2,15.1,18.2,22.7,21.6,17.8,18.6,22.7,23.9,22.4),
  rain=c(218,231,257,278,248,237,201,274,285,290)
)
# 初步探索因变量自变量间关系
library(ggplot2)
library(gridExtra)
# 太阳辐射与产量的关系
p1<-ggplot(data=df,aes(x=radn,y=yield))+geom_point(color="black",shape=3,size=4)
# 温度和产量的关系
p2<-ggplot(data=df,aes(x=temp,y=yield))+geom_point(color="black",shape=3,size=4)
# 降雨和产量的关系
p3<-ggplot(data=df,aes(x=rain,y=yield))+geom_point(color="black",shape=3,size=4)

# 拼接p1、p2、p3
grid.arrange(p1,p2,p3,ncol=3)

# 计算yield与各自变量之间的相关关系
cor(df$yield,df$radn)
cor(df$yield,df$temp)
cor(df$yield,df$rain)

        

        由上图可知:yield变量与radn、temp、rain三个变量具有较高的相关关系。

# 拟合线性回归模型
fit<-lm(yield~radn+temp+rain,data=df)
summary(fit)

结果:F检验显示回归方程显著存在,且方程的可解释变异达88%;但回归系数t检验则显示3个变量的回归系数均不显著;而且结合前面自变量与因变量的关系图可知3个自变量与因变量是正相关关系,但temp的回归系数却是负的。

        这就是多重共线性造成的问题。

2、多重共线性的检验方法

        方差扩大因子(variance inflation factor)也成方差膨胀因子,简称VIF。是表征自变量观察值之间复共线性程度的数值。VIF>5表明存在严重的共线性。

# 方差膨胀因子VIF检测多重共线性
fit1<-lm(radn~temp+rain,data=df) # 检验radn的共线性
summary(fit1)
r2<-0.9741
VIF<-1/(1-r2)
VIF

        VIF显示radn变量与temp和rain变量存在严重的共线性

        也可以使用car包中的vif函数,对拟合的模型进行VIF的计算:

二、逐步回归

        逐步回归用于筛选最重要的变量,来建立回归分析的预测或者解释模型。可以解决:当因变量受到大量因素的影响时,建立回归模型,将不可能也没必要考虑的所有影响因素排除在外。

逐步回归实现方法

        逐步回归分析是一种AIC信息统计量为准则,通过选择最小的AIC信息统计量,来达到删除或增加变量的目的。

        R语言中用于逐步回归分析的是step()函数。

# 产量、生育期内平均温度、平均辐射量的数据集
df<-data.frame(
  yield=c(2151,2073,2573,2888,2638,2150,2092,2645,2894,2849),
  radn=c(21.0,20.7,23.7,28.8,26.0,22.1,20.8,27.2,28.9,27.4),
  temp=c(16.2,15.1,18.2,22.7,21.6,17.8,18.6,22.7,23.9,22.8),
  rain=c(218,211,257,288,268,217,201,274,285,290)
)
# 拟合线性回归模型
fit<-lm(yield~radn+temp+rain,data=df)
summary(fit)

# 查看step()函数的帮助文档
?step
# 逐步回归
fit_new<-step(fit)
summary(fit_new)

# 检验两个模型是否存在显著差异
anova(fit,fit_new)

        结果:显示temp和radn变量被精简掉了,只保留了rain变量。

        结果:显示两个模型间差异不显著。即精简后的模型与原来的模型相差不大。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1633956.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

嵌入式学习65-C++(继承.派生和QT布局管理)

知识零碎&#xff1a; 信号合槽&#xff1a; 对象间通信 …

《动手学深度学习(Pytorch版)》Task03:线性神经网络——4.29打卡

《动手学深度学习&#xff08;Pytorch版&#xff09;》Task03&#xff1a;线性神经网络 线性回归基本元素线性模型损失函数随机梯度下降 正态分布与平方损失 线性回归的从零开始实现读取数据集初始化模型参数定义模型定义损失函数定义优化算法训练 线性回归的简洁实现读取数据集…

Find My无人机|苹果Find My技术与无人机结合,智能防丢,全球定位

无人机是利用无线电遥控设备和自备的程序控制装置操纵的不载人飞机&#xff0c;或者由车载计算机完全地或间歇地自主地操作。无人机按应用领域&#xff0c;可分为军用与民用。军用方面&#xff0c;无人机分为侦察机和靶机。民用方面&#xff0c;无人机行业应用&#xff0c;是无…

【介绍下Selenium】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

机器学习:深入解析SVM的核心概念(问题与解答篇)【二、对偶问题】

对偶问题 **问题一&#xff1a;什么叫做凸二次优化问题&#xff1f;而且为什么符合凸二次优化问题&#xff1f;**为什么约束条件也是凸的半空间&#xff08;Half-Space&#xff09;凸集&#xff08;Convex Set&#xff09;半空间是凸集的例子SVM 约束定义的半空间总结 **问题二…

Web 服务器解析漏洞 原理以及修复方法

漏洞名称 &#xff1a;Web服务器解析漏洞 漏洞描述&#xff1a; 服务器相关中间件存在一些解析漏洞&#xff0c;攻击者可通过上传一定格式的文件&#xff0c;被服务器的中间件进行了解析&#xff0c;这样就对系统造成一定危害。常见的服务器解析漏洞涉及的中间件有IIS&#x…

踏上R语言之旅:解锁数据世界的神秘密码(四)

文章目录 前言一、多元线性回归1.多元线性回归模型的建立2.多元线性回归模型的检验 二、多元线性相关分析1.矩阵相关分析2.复相关分析 三、回归变量的选择方法1.变量选择准则2.变量选择的常用准则3.逐步回归分析 总结 前言 回归分析研究的主要对象是客观事物变量间的统计关系。…

操作系统安全:安全审计,Windows系统日志详解,Windows事件ID汇总

「作者简介」&#xff1a;2022年北京冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础对安全知识体系进行总结与归纳&#xff0c;著作适用于快速入门的 《网络安全自学教程》&#xff0c;内容涵盖系统安全、信息收集等…

使用OkHttp 缓存 API 调用提高Android应用性能

使用OkHttp 缓存 API 调用提高Android应用性能 坦率地说&#xff0c;我们都遇到过这样的情况——焦急地刷新应用&#xff0c;看着加载图标不停地旋转&#xff0c;等待那个至关重要的 API 响应。这样的等待我们已经是炉火纯青了&#xff0c;是吧&#xff1f;手指有节奏地轻敲屏…

【Node.js工程师养成计划】之express框架

一、Express 官网&#xff1a;http://www.expressjs.com.cn express 是一个基于内置核心 http 模块的&#xff0c;一个第三方的包&#xff0c;专注于 web 服务器的构建。 Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用&…

LabVIEW机械臂控制与图像处理示教平台

LabVIEW机械臂控制与图像处理示教平台 随着工业自动化技术的快速发展&#xff0c;工业机器人在制造业中的应用越来越广泛&#xff0c;它们在提高生产效率、降低人工成本以及保证产品质量方面发挥着重要作用。然而&#xff0c;传统的工业机器人编程和操作需要专业知识&#xff…

React正式更新!开始学习React 19!

本文为原创文章&#xff0c;原文链接&#xff1a;J实验室&#xff0c;未经授权请勿转载 今年2月份&#xff0c;React 发布消息确认今年发布 v19 版本&#xff0c;尘封两年的版本号终于要更新了&#xff08;详情点击&#xff1a;React 19 发布在即&#xff0c;抢先学习一下新特性…

FSNotes for Mac v6.7.1中文激活版:强大的笔记管理工具

FSNotes for Mac是一款功能强大的文本处理与笔记管理工具&#xff0c;为Mac用户提供了一个直观、高效的笔记记录和整理平台。 FSNotes for Mac v6.7.1中文激活版下载 FSNotes支持Markdown语法&#xff0c;使用户能够轻松设置笔记格式并添加链接、图像等元素&#xff0c;实现笔记…

Linux下启动jenkins报错问题解决

jenkins端口报错 java.io.IOException: Failed to start Jettyat winstone.Launcher.<init>(Launcher.java:209)at winstone.Launcher.main(Launcher.java:496)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at java.base/jdk.int…

【氮化镓】AlGaN/GaN HEMTs沟道温度测量

文章是关于AlGaN/GaN HEMTs&#xff08;高电子迁移率晶体管&#xff09;在不同基底&#xff08;如蓝宝石和硅&#xff09;上生长时&#xff0c;通过直流&#xff08;DC&#xff09;特性方法确定沟道温度的研究。文章由J. Kuzmk, P. Javorka, A. Alam, M. Marso, M. Heuken, 和 …

微软如何打造数字零售力航母系列科普04 - 微软联合Adobe在微软365应用程序中工作时推出新的生成式AI功能

微软和Adobe正在合作&#xff0c;将情境营销见解和工作流程引入微软Copilot&#xff0c;以提供生成的人工智能功能&#xff0c;使营销人员和营销团队能够在自然的工作流程中实现更多目标。 这些新的集成功能将在生产力和协作工具&#xff08;如Outlook、Teams和Word&#xff0…

JAVA基础——集合框架(List与Set)

数据结构 什么是数据结构 数据结构就是用来装数据以及数据与之间关系的一种集合。如何把相关联的数据存储到计算机&#xff0c;为后续的分析提供有效的数据源&#xff0c;是数据结构产生的由来。数据结构就是计算机存储、组织数据的方式。好的数据结构&#xff0c;让我们做起事…

使用QT完成如图的游戏登录界面 使用信号和槽完成密文明文密码转换,重置账号和密码,登录校验 详细代码在主页下载

头文件: #ifndef LOGINWIDGET_H #define LOGINWIDGET_H #include <QLineEdit> #include <QPushButton> #include <QWidget> class LoginWidget : public QWidget {Q_OBJECT public: LoginWidget(QWidget *parent = 0); ~LoginWidget(); public slots: …

基于uniapp+微信小程序的智能停车场管理小程序,附源码

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

Three.js杂记(十五)—— 汽车展览(下)

在上一篇文章Three.js杂记&#xff08;十四&#xff09;—— 汽车展览上 - 掘金 (juejin.cn)中主要对切换相机不同位置和鼠标拖拽移动相机焦点做了简单的应用。 那么现在聊聊该如何实现汽车模型自带的三种动画展示了&#xff0c;实际上可以是两种汽车前后盖打开和汽车4车门打开…