在前两讲中,我们介绍了多元线性回归的概念以及多元线性回归中的交互作用。今天学习的主要内容是多元线性回归中的多重共线性和方差膨胀因子。

1. 共线性的概念

1

共线性

在多元回归中,两个或多个预测变量可能彼此相关,这种情况称为共线性(multicollinearity)。

2

多重共线性

存在一种称为多重共线性的极端情况,其中三个或更多变量之间存在共线性,即使没有一对变量具有特别高的相关性。这意味着预测变量之间存在冗余。

重点:在存在多重共线性的情况下,回归模型的解变得不稳定2. 共线性的评估

对于给定的预测变量(p),可以通过计算一个称为方差膨胀因子(variance inflation factor,VIF)的分数来评估多重共线性,该分数测量由于模型中的多重共线性而使回归系数的方差膨胀了多少。

VIF的最小可能值为1(不存在多重共线性)。根据经验,VIF值超过5或10表示有共线性问题。

面对多重共线性时,应删除相关的变量,因为多重共线性的存在意味着在存在其他变量的情况下该变量提供的有关响应的信息是多余的 。

3. 多重共线性检验的R实现

3.1 加载所需的R包

  • tidyverse 便于数据操作和可视化
  • caret 简化机器学习工作流程
library(tidyverse)library(caret)

3.2 数据举例

导入数据:

my_data'diabetes.csv')

检查数据:

dim(my_data)

[1] 768   9

head(my_data)

输出结果:

Pregnancies Glucose BloodPressure SkinThickness Insulin  PREGNANCIES DiabetesPedigreeFunction Age Outcome1           6     148            72            35       0 33.6                    0.627  50       12           1      85            66            29       0 26.6                    0.351  31       03           8     183            64             0       0 23.3                    0.672  32       14           1      89            66            23      94 28.1                    0.167  21       05           0     137            40            35     168 43.1                    2.288  33       16           5     116            74             0       0 25.6                    0.201  30       0

数据清理:

new_data0& my_data$SkinThickness >0 & my_data$BMI > 0 & my_data$BloodPressure> 0,]dim(new_data)

#[1] 532   9

研究问题:皮肤厚度、血压和体重指数在预测血糖水平的多重共线性问题

# 将数据分成训练数集和检验数集

set.seed(123)training.samples %createDataPartition(p = 0.8, list = FALSE)train.data test.data 

3.3 建立回归模型

回归模型可以计算如下:

model1 

# 用该模型计算验证数据集中预测值

predictions % predict(test.data)

# 模型在验证数据集中的预测评估情况

# (a) 预测误差, RMSERMSE(predictions, test.data$Glucose)

[1] 32.75619

# (b) R平方R2(predictions, test.data$Glucose)

[1] 0.1050992

3.4 检测多重共线性

R函数vif()[car包装]可用于检测回归模型中的多重共线性:

car::vif(model1)

输出结果

SkinThickness BloodPressure           BMI1.784053      1.101625      1.872286

在我们的示例中,预测变量的VIF得分都相对比较低(VIF < 2)。这说明皮肤厚度、血压与体重指数间不存在多重共线性。

3.5 处理多重共线性

如果我们发现有存在明显共线性,即VIF值非常高档预测变量,则需要将该变量从模型中删除,重新建立新的模型。从而排除共线性对回归模型的影响。参考内容:1. Alboukadel Kassambara, Machine Learning Essentials: Practical Guide in R好了,本期讲解就先到这里。小伙伴们赶紧试起来吧。提前预告一下,下一讲我们将学习R-线性回归模型的假设条件检验。

多元线性模型分类变量方差_第三十一讲 R多元线性回归中的多重共线性和方差膨胀因子...相关推荐

  1. r library car_第三十九讲 R语言-线性回归:自变量中存在分类变量时

    当我们提到"线性"回归时,特指的是因变量(结果变量)为连续性变量,与自变量(预测变量)有线性关系,而对自变量(预测变量)并没有要求一定要是连续性变量.前面我们已经提到,当自变量是连 ...

  2. 工具教程第三十一讲:电报的使用(二)

    这里是王团长区块链学院,与最优秀的区块链人一起成长!今天给大家讲讲电报Telegram的使用.   点击观看视频教程:工具教程第三十一讲:电报的使用(二)   第三步.注册使用Telegram 1.点 ...

  3. 名词解释第三十一讲:市值

    这里是王团长区块链学院,与最优秀的区块链人一起成长!今天给大家讲讲深度. 点击观看视频教程:名词解释第三十一讲:市值 市值本意指公司资产的市场价值,是一家上市公司所发行的所有股份按照市场价格计算出来的 ...

  4. python 分类变量编码_深度学习编码分类变量的3种方法——AIU人工智能学院

    :数据科学.人工智能从业者的在线大学. 数据科学(Python/R/Julia) 作者 | CDA数据分析师 像Keras中的机器学习和深度学习模型一样,要求所有输入和输出变量均为数字. 这意味着,如 ...

  5. python 回归去掉共线性_线性回归中的多重共线性与岭回归

    上篇文章<简单而强大的线性回归详解>(点击跳转)详细介绍了线性回归分析方程.损失方程及求解.模型评估指标等内容,其中在推导多元线性回归使用最小二乘法的求解原理时,对损失函数求导得到参数向量 ...

  6. python 分类变量回归_极简Python带你探索分类与回归的奥秘

    为何使用人工智能和机器学习? 地球的未来在于人工智能和机器学习.如果对这些技术一无所知,人们很快会发现自己落伍了.世界发展日新月异,每天都发生着不可思议的变化.在人工智能和机器学习中,有许多实现和技术 ...

  7. 回归方程的拟合优度检验_计量经济学第四讲(多元线性回归模型:基本假定,参数估计,统计检验)...

    第三章.经典单方程计量经济学模型:多元线性回归模型 3.1多元线性回归模型及其基本假定 3.1.1多元回归模型及其表示 解释变量至少有两个的线性回归模型,一般形式为 如果不作说明, 是不包括常数项的解 ...

  8. 读书笔记_Effective_C++_条款三十一:将文件间的编译依存关系降至最低(第二部分)...

    下面再来看书,去理解书上说的Handler classes就简单多了,我们大概过一下. 假设我们要写一个Person类,如下: 1 class Person 2 { 3 private: 4 stri ...

  9. 概率论与数理统计学习笔记——第三十一讲——方差的性质

    1. 方差的性质 2. 二项分布的方差 3. 正态分布的方差 4. 独立正态随机变量的线性组合仍服从正态分布 5. 方差的应用实例 6. 标准化变量的定义

最新文章

  1. 软件工程-东北师大站-第十二次作业(PSP)
  2. 【DB2】delete大表不记录日志的正确操作
  3. js 中exec、test、match、search、replace、split用法
  4. 判断服务是否开启,应用是否安装,并安装应用
  5. Kafka分区与消费者的关系
  6. linux下thinkpad X1 carbon 2018 电源管理
  7. 最适合管理的计算机语言,PLC 编程语言的优劣,哪种语言更适合编程
  8. Unable to find a single main class from the following candidates 。。。
  9. 解决 CDH6.3.1 安装HDFS时出现{{CMF_CONF_DIR}}/redaction-rules.json (No such file or directory)错误
  10. Getx - 如何使用路由管理页面
  11. 数组结构与算法-036-042 前中后缀表达式-逆波兰计算器
  12. [CodeForces757E]Bash Plays with Functions
  13. echaarts水滴(水球图)波浪效果
  14. 机器学习中的评估指标与损失函数
  15. 网络工程师眼中的自动化运维
  16. meso-四(4-N,N,N-三甲基氨基苯基)卟啉(TTMAPP);[5,15-二乙炔基-10,20-二(3,4,5-三(十六烷氧基)苯基)卟啉]锌(DBTCPP-Zn);锌卟啉(TPP-Zn)科研级
  17. 【Skynet 游戏排行榜实现】
  18. ZOJ Monthly, January 2019 - A 规律
  19. 台灯AAA和AA有什么区别?国AA台灯有必要买吗
  20. 交通灯c51汇编语言,单片机交通灯实验汇编语言程序

热门文章

  1. 设置builder.max_workspace_size的意义
  2. pytorch之BatchNorm
  3. GitLab5.3修改项目仓库名称后wiki不能访问
  4. App应用之提交到各大市场渠道
  5. 内核同步机制-优化屏障和内存屏障
  6. JAVA时间操作类常用方法汇总
  7. web 网站抢购并发
  8. Apache 分割日志
  9. Delphi TBitmap Scanline
  10. OOJ-面向对象编程的三大特点-封装,继承,多态分析与实例