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

一、多重共线性

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

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

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://xiahunao.cn/news/2998291.html

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

相关文章

汽车信息安全入门总结(2)

目录 1.引入 2.汽车信息安全技术 3.密码学基础知识 4.小结 1.引入 上篇汽车信息安全入门总结(1)-CSDN博客主要讲述了汽车信息安全应该关注的点&#xff0c;以及相关法规和标准&#xff0c;限于篇幅&#xff0c;继续聊信息安全相关技术以及需要掌握的密码学基础知识。 2.汽…

《Python语言科研绘图与学术图表绘制从入门到精通》解锁Python语言绘图魅力,让数据可视化成为你的科研利器!

本书特点 1.零基础高效入门&#xff1a;通过软件操作、实战案例及图文、代码结合的方式&#xff0c;实现从入门到精通的快速学习。 2.掌握多元科研绘图&#xff1a;涵盖科研绘图基础、各类图形绘制技巧&#xff0c;包括变量、极坐标、2D、3D及地理信息可视化等。 3.实用与艺术…

Linux快速安装Nginx和重新添加模块

目录 一、Nginx快速安装1、下载Nginx2、配置Nginx模块 二、Ngnix重新编译和安装模块 一、Nginx快速安装 1、下载Nginx 直接进入Nginx官网下载Linux最新稳定版本&#xff0c;我之前下载的版本是1.23.0。 2、配置Nginx模块 下载完后我把源码压缩文件解压放在/opt/appl/nginx…

使用Github+Picgo+npm实现免费图床

本文参考自 Akilar&#xff0c;原文地址&#xff1a;https://akilar.top/posts/3e956346/ Picgo的配置 Github图床仓库内容不能超过1GB&#xff0c;因为Github原则上是反对仓库图床化的&#xff0c;超过1GB之后会由人工审核仓库内容&#xff0c;如果仓库被发现用来做图床&…

2024最新UI发卡盗U/支持多语言/更新UI界面/支持多个主流钱包

本文来自&#xff1a;2024最新UI发卡盗U/支持多语言/更新UI界面/支持多个主流钱包 - 源码1688 应用介绍 简介&#xff1a; 2024最新UI发卡盗U/支持多语言/更新UI界面/支持多个主流钱包 自行检查后门&#xff0c;最好是部署智能合约后用合约地址来授权 包含转账支付页面盗U授…

STM32开启停止模式,用外部中断唤醒程序运行

今天学习了一下STM32的停止模式&#xff0c;停止模式下&#xff0c;所有外设的时钟和CPU的电源都会被关闭&#xff0c;所以会很省电&#xff0c;打破这种停止模式的方式就是外部中断可以唤醒停止模式。要想实现这个功能&#xff0c;其实设置很简单的&#xff0c;总共就需要两步…

Modelsim自动仿真平台的搭建

Modelsim自动仿真平台的搭建 如果要搭建自动仿真平台脚本那就需要更改下面3个文件。run_simulation.bat、complie.do和wave.do文件。注&#xff1a;前提是安装了modulsim并且配置好了环境变量&#xff0c;这里不过多介绍。 一、下面是run_simulation.bat文件的内容 : 注释的…

MyBatis 插件介绍及应用

MyBatis 插件介绍及应用 MyBatis 是一个持久层框架&#xff0c;它允许开发者自定义 SQL 语句并将其映射到 Java 对象中。MyBatis 提供了一种灵活的数据库操作方式&#xff0c;但随着项目的复杂度增加&#xff0c;一些通用功能如分页、缓存、事务管理等可能需要重复编写。为了解…

python部署linux

项目做完了&#xff0c;就涉及到了部署 部署 Python的打包部署方式有多种&#xff0c;具体取决于项目的需求、规模以及所使用的工具。以下是几种常见的Python打包部署方式&#xff1a; 使用pip安装&#xff1a;对于小型的Python库或工具&#xff0c;通常可以直接通过pip进行安…

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

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

【Redis 开发】Lua语言

Lua Lua语法 Lua语法 Lua是一种小巧的脚本语言&#xff0c;底层用C语言实现&#xff0c;为了嵌入式应用程序中 官网&#xff1a;https://www.lua.org/ 创建lua文件 touch hello.lua 运行lua文件 lua hello.lua 输出语句 print("Hello World!")数据类型 可以通过t…

UG NX二次开发(C++)-获取模型中所有的拉伸(Extrude)特征

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1、前言2、在UG 12中创建几个拉伸特征3、UFun中获取对象类型4、通过NXOpen过渡5.测试结果1、前言 在采用UG NX二次开发时,有时需要在模型中获取特定的对象,比如拉伸特征、关联特征等等。但是通过…

Android log tag标签如am_pss意义

Android log tag标签如am_pss意义 Android输出日志中不同的标签代表不同的意义&#xff0c;比如 am_pss&#xff0c;则代表内存回收&#xff08;整理&#xff09;。定义在源代码文件 &#xff1a; https://android.googlesource.com/platform/frameworks/base//master/servic…

内网渗透+非局域网下远程桌面连接(借助工具ChmlFrp)

想要通过互联网访问另一台电脑&#xff1f; 家里或实验室有一台主机不方便携带&#xff0c;但是想访问其中的资源该怎么办&#xff1f; 正常情况下大家知道我们想要访问一台设备我们需要知道他的公网ip才可以进行访问&#xff08;访问某台服务器&#xff09;&#xff0c;某个网…

SpringCloud整合Gateway结合Nacos

目录 一、引入依赖 二、开启两个测试项目 2.1 order service ​编辑 2.2 user service 三、gateway项目 3.1 新建一个bootstrap.yml文件 3.2 将我们的的网关配置写道nacos里的配置里 3.3 测试&#xff1a;看能够根据网关路由到两个测试的项目 四、 优化 4.1 将项目打包…

Python中cv2 (OpenCV, opencv-python)库的安装、使用方法demo最新详细教程

&#x1f42f; Python中cv2 (OpenCV, opencv-python)库的安装、使用方法demo最新详细教程 &#x1f4f8; 文章目录 &#x1f42f; Python中cv2 (OpenCV, opencv-python)库的安装、使用方法demo最新详细教程 &#x1f4f8;摘要引言正文&#x1f4d8; OpenCV库概述&#x1f680; …

uni-app - 使用地图功能打包安卓apk的完美流程以及重要的注意事项(带您一次打包成功)

在移动应用开发中&#xff0c;地图功能是一个非常常见且实用的功能&#xff0c;可以帮助用户快速定位并浏览周边信息。而在uni-app开发中&#xff0c;使用地图功能也是一项必备技能。本文将介绍uni-app使用地图功能打包安卓apk的注意事项&#xff0c;帮助开发者顺利完成地图功能…

【Java】图书管理系统 介绍与实现

欢迎浏览高耳机的博客 希望我们彼此都有更好的收获 感谢三连支持&#xff01; 1.介绍 图书馆作为知识的殿堂和学术的中心&#xff0c;其管理系统不仅是图书馆管理的必备工具&#xff0c;更是为用户提供优质、高效服务的重要保障&#xff0c;促进了知识的传播和学术的发展。随着…

nuxt3使用记录五:禁用莫名其妙的Tailwind CSS(html文件大大减小)

发现这个问题是因为&#xff0c;今天我突然很好奇&#xff0c;我发现之前构建的自动产生的200.html和404.html足足290k&#xff0c;怎么这么大呢&#xff1f;不是很占用我带宽&#xff1f; 一个啥东西都没有的静态页面&#xff0c;凭啥这么大&#xff01;所以我就想着手动把他…

UE5 体积云

写好的体积材质放这里面 效果如上 Begin Object Class/Script/UnrealEd.MaterialGraphNode Name"MaterialGraphNode_4"Begin Object Class/Script/Engine.MaterialExpressionVectorParameter Name"MaterialExpressionVectorParameter_0"End ObjectBegin O…