《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://www.mzph.cn/bicheng/5012.shtml

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

相关文章

ActiveMQ 反序列化漏洞 (CVE-2015-5254)

一、漏洞描述 Apache ActiveMQ 是由美国阿帕奇&#xff08;Apache&#xff09;软件基金会开发的开源消息中间件&#xff0c;支持 Java 消息服务、集群、Spring 框架等。属于消息队列组件(消息队列组件&#xff1a;分布式系统中的重要组件&#xff0c;主要解决应用耦合、异步消息…

MySQL个人复习总结

最近想把MySQL的知识点再过一遍,带着自己的理解使用简短的话把一些问题总结一下,尤其是开发中和面试中的高频问题,基础知识点可以参考之前写的如下几篇博客,这篇不再赘述,阅读顺序由浅入深依次递进。 一、MySQL 概述 数据库&表操作 数据增删改; 二、MySQL 单表查询 …

VUE3与Uniapp 五 (v-if、v-show和template、v-for的使用)

<template><!-- v-if如果是false&#xff0c;则不会出现在DOM中&#xff0c;不会被渲染&#xff1b;v-show如果为false&#xff0c;则会出现在DOM中&#xff0c;并加载资源&#xff08;如图片&#xff09;&#xff0c;只是CSS隐藏了。 --><view v-if"day1&…

【Vue】Pdf转图片功能+多张图片拼接封装

Pdf转图片功能多张图片拼接封装 HTML页面tools.js文件 HTML页面 <template><div class"main-marge"><div class"box"><van-uploader accept"image/*,.pdf" :before-read"(file) > beforeRead(file, -1)">…

数据库|TiDB-Server API的高效应用指南

一、API介绍 1.Status 显示TiDB 连接数、版本和git_hash 信息 tidb-server_ip:status_port/status { "connections": 0, "version": "5.7.25-TiDB-v6.1.1", "git_hash": "5263a0abda61f102122735049fd0dfadc7b7f822" } 2.St…

mysql-sql-练习题-4-标记

标记 连续登录2-7天用户建表排名找规律 最大连胜次数建表只输出连胜结果输出所有连续结果 连续登录2-7天用户 建表 create table continuous_login(user_id1 integer comment 用户id,date_login date comment 登陆日期 ) comment 用户登录表;insert into continuous_login val…

LT2611UX四端口 LVDS转 HDMI2.0,带音频

描述LT2611UX 是一款面向机顶盒、DVD 应用的高性能 LVDS 至 HDMI2.0 转换器。LVDS输入可配置为单端口、双端口或四端口&#xff0c;具有1个高速时钟通道和3~4个高速数据通道&#xff0c;工作速率最高为1.2Gbps/通道&#xff0c;可支持高达19.2Gbps的总带宽。LT2611UX 支持灵活的…

002 springCloudAlibaba Sentinel流控-关联

当与A关联的资源B达到阀值后&#xff0c;就限流A自己 文章目录 FlowLimitController.javaSentinelServerApplication.javaServletInitializer.javaapplication.yamlpom.xmlpom.xml 启动Sentinel8080 - java -jar sentinel-dashboard-1.7.0.jar 启动微服务8401 启动8401微服务…

一款非常不错的音频录制播放Python库

声音无处不在&#xff0c;在计算机应用中也是。Python拥有丰富的库来处理声音&#xff0c;sounddevice就是其中一个非常实用的库。本文将介绍sounddevice库的特点、工作原理以及使用方式&#xff0c;帮助你大家理解和运用这个库。 简介 sounddevice是一个Python库&#xff0c…

72、栈-每日温度

思路&#xff1a; 第一种方法&#xff0c;双循环&#xff0c;第一层循环拿出一个元素&#xff0c;第二层循环寻找最近比当前大的元素位置。 第二种方法&#xff1a;使用栈来实现。 初始化&#xff1a; int[] ans 用来存储每一天之后多少天温度会升高。Stack<Integer> 用…

软件重构的要点及注意事项

重构是软件开发过程中改进现有代码结构和设计而不改变其外在行为的过程。良好的重构实践可以提高代码质量、可读性、可维护性&#xff0c;并促进后续的开发工作。以下是重构的基本步骤、要点及注意事项&#xff1a; 重构的基本步骤 明确重构目的&#xff1a;确定重构的动机&a…

Java | AI+编程 | 如何使用通义灵码提升开发效率

大家好&#xff0c;我是程序员影子 | 全网同名 一名致力于帮助更多朋友快速入门编程的程序猿 今天&#xff0c;我将以小白入门的视角带着大家学会如何在Idea上使用通义灵码&#xff0c;提高开发效率&#xff0c;减少重复工作&#xff1b;话不多说&#xff0c;我们直接进入正题…

点云和去噪

1. 什么是去噪 在人工智能领域中&#xff0c;去噪指的是利用算法和模型来消除或减少数据中的噪声&#xff0c;以提高数据的质量和可用性。噪声是指数据中不希望的随机扰动或干扰&#xff0c;可能由于采集过程中的各种因素引入&#xff0c;例如传感器误差、环境干扰、信号衰减等…

golang beego结合wire依赖注入及自动路由

1 安装wire 1.1 通过命令直接安装 go install github.com/google/wire/cmd/wirelatest 1.2 通过go get方式安装 go get github.com/google/wire/cmd/wire进入目录编译 cd C:\Users\leell\go\pkg\mod\github.com\google\wirev0.6.0\cmd\wire go build 然后将wire.exe移动到…

广交会烹饪机器人用上大模型 支付宝小程序云提供技术支持

近日&#xff0c;第135届广交会正在火热进行&#xff0c;记者获悉&#xff0c;支付宝小程序云助力合作伙伴田螺云厨&#xff0c;在烹饪机器人上开始用上大模型技术。各类智能产品的亮相&#xff0c;从中国制造迈向中国创造&#xff0c;也成为广交会的一个亮点。 &#xff08;图…

鲲鹏华为云--OBS

文章目录 1.创建桶2.上传对象3.下载对象4.分享对象5. 删除对象6.删除桶 1.创建桶 创建桶 2.上传对象 点击创建的桶–“上传对象” 拖拽本地文件或文件夹至“上传对象”区域框内添加待上传的文件。 也可以通过单击“上传对象”区域框内的“添加文件”&#xff0c;选择本地…

给vue配置路径别名@

使用vite构建的项目 在vite.config.js中进行别名的配置 import { defineConfig } from vite import vue from vitejs/plugin-vueexport default defineConfig({plugins: [vue()],resolve: {alias: {: /src}} }) //这样&#xff0c;你就可以使用作为别名来引用/src目录下的文件…

C语言函数指针的使用、函数指针数组及使用、指向函数指针数组的指针,指针进阶版的冒泡排序等介绍

文章目录 前言一、函数指针的使用1. 加减乘除计算器普通实现2. 加减乘除计算机函数指针实现 二、函数指针数组1. 函数指针数组的书写2. 两个有趣的代码3. 函数指针数组的使用 三、指向函数指针数组的指针四、指针进阶_冒泡排序1.整型冒泡排序2. C语言qsort函数3. 仿写C语言qsor…

ChatGLM2-6B的部署步骤_A3

ChatGLM2-6B 下载地址 一、VisualGLM-6B环境安装 1、硬件配置 操作系统&#xff1a;Ubuntu_64&#xff08;ubuntu22.04.3&#xff09; GPU&#xff1a;4050 显存&#xff1a;16G 2、配置环境 建议最好自己新建一个conda环境 conda create -n chatglm2 python3.8pip …

【Java】HOT100 贪心算法

目录 理论基础 一、简单贪心 LeetCode455&#xff1a;分发饼干 二、中等贪心 2.1 序列问题 LeetCode376&#xff1a;摆动序列 2.2 贪心股票问题 LeetCode121&#xff1a;买卖股票的最佳时机 LeetCode121&#xff1a;买卖股票的最佳时机ii 2.3 两个维度权衡问题 LeetCode135&…