R语言 检验多重共线性的操作
函数kappa()
df<-data.frame() df_cor=cor(df) kappa(df_cor, exact=T)
当 κ<100κ<100 , 说明共线性程度小;
当 100<κ<1000100<κ<1000 , 有较强的多重共线性;
当 κ>1000κ>1000,存在严重的多重共线性。
函数qr()
x<-matrix() qr(x)$rank
qr(X)$rank 计算X矩阵的秩,如果不是满秩的,说明其中有xixi可以用其他xjxj的线性组合表示;此时可以进行逐步回归,用step()命令。
fm<-lm() step(fm)
补充:多重共线性的产生原因、判别、检验、解决方法
最近做回归分析,出现了相关系数与回归方程系数符号相反的问题,经过研究,确认是多重共线性问题并探索了解决方法。
在此将多重共线性的相关知识整理如下。
解释变量理论上的高度相关与观测值高度相关没有必然关系,有可能两个解释变量理论上高度相关,但观测值未必高度相关,反之亦然。所以多重共线性本质上是数据问题。
造成多重共线性的原因有一下几种:
1、解释变量都享有共同的时间趋势;
2、一个解释变量是另一个的滞后,二者往往遵循一个趋势;
3、由于数据收集的基础不够宽,某些解释变量可能会一起变动;
4、某些解释变量间存在某种近似的线性关系;
判别:
1、发现系数估计值的符号不对;
2、某些重要的解释变量t值低,而R方不低
3、当一不太重要的解释变量被删除后,回归结果显著变化;
检验:
1、相关性分析,相关系数高于0.8,表明存在多重共线性;但相关系数低,并不能表示不存在多重共线性;
2、vif检验;
3、条件系数检验;
解决方法:
1、增加数据;
2、对模型施加某些约束条件;
3、删除一个或几个共线变量;
4、将模型适当变形;
5、主成分回归
处理多重共线性的原则:
1、 多重共线性是普遍存在的,轻微的多重共线性问题可不采取措施;
2、 严重的多重共线性问题,一般可根据经验或通过分析回归结果发现。如影响系数符号,重要的解释变量t值很低。要根据不同情况采取必要措施。
3、 如果模型仅用于预测,则只要拟合程度好,可不处理多重共线性问题,存在多重共线性的模型用于预测时,往往不影响预测结果;
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
R语言wilcoxon秩和检验及wilcoxon符号秩检验的操作
说明 wilcoxon秩和及wilcoxon符号秩检验是对原假设的非参数检验,在不需要假设两个样本空间都为正态分布的情况下,测试它们的分布是否完全相同. 操作 #利用mtcars数据 library(stats) data("mtcars") boxplot(mtcars$mpg~mtcars$am,ylab='mpg',names = c('automatic','manual)) #执行wilcoxon秩和检验验证自动档手动档数据分布是否一致 wilcox.test(mpg~am,
-
R语言-如何实现卡方检验
卡方检验 在数据统计中,卡方检验是一种很重要的方法. 通常卡方检验的应用主要为: 1. 卡方拟合优度检验 2.卡方独立性检验 本文主要通过使用自己编程的方法实现相关检验. 卡方拟合优度检验 理论: 1.我们先做出0假设:H0:总体服从假定的理论分布 2.我们再构造一个统计量: 3.当n充分大时 4.我们得到该拒绝域 代码 #Chi_square Goodness Of Fit Test #函数说明: #n为所得样本数据:p为理论概率 #alpha为置信水平,df为自由度 cgoft <- fun
-
R语言差异检验:非参数检验操作
非参数检验是在总体方差未知或知道甚少的情况下,利用样本数据对总体分布形态进行推断的方法.它利用数据的大小间的次序关系(秩Rank),而不是具体数值信息,得出推断结论. 它是参数检验所需要的某些条件不满足时所使用的方法. 和参数检验相比,非参数检验的优势如下: 稳健性.对总体分布的条件要求放宽 对数据类型要求不严格,适用有序分类变量 适用范围广 劣势: 没有利用实际数值,损失了部分信息,检验的有效性较差. 非参数性检验的方法非常多,基于方法的检验功效性角度,本文只涉及 双独立样本:Mann-Whi
-
R语言 检验多重共线性的操作
函数kappa() df<-data.frame() df_cor=cor(df) kappa(df_cor, exact=T) 当 κ<100κ<100 , 说明共线性程度小: 当 100<κ<1000100<κ<1000 , 有较强的多重共线性: 当 κ>1000κ>1000,存在严重的多重共线性. 函数qr() x<-matrix() qr(x)$rank qr(X)$rank 计算X矩阵的秩,如果不是满秩的,说明其中有xixi可以用其他x
-
R语言实现二进制文件读写操作
二进制文件是一个文件,其中包含仅以位和字节形式存储的信息(0和1),它们是不可读的,因为其中的字节转换为包含许多其他不可打印字符的字符和符号,随便我们尝试使用任何文本编辑器读取二进制文件将显示为类似Ø和ð这样的字符. 但是二进制文件必须由特定程序读取才能使用.例如,Microsoft Word程序的二进制文件只能通过Word程序读取到人类可读的形式.这表明,除了人类可读的文本之外,还有更多的信息,如格式化的字符和页码等,它们也与字母数字字符一起存储.最后,二进制文件是一个连续的字节序列. 我们在
-
R语言对CSV文件操作实例讲解
在 R 语言中,我们可以从存储在 R 语言环境外的文件中读取数据. 我们还可以将数据写入将被操作系统存储和访问的文件. R 语言可以读取和写入各种文件格式,如csv,excel,xml等. 在本章中,我们将学习从csv文件读取数据,然后将数据写入csv文件. 该文件应该存在于当前工作目录中,以便 R 语言可以读取它. 当然我们也可以设置我们自己的目录并从那里读取文件. 获取和设置工作目录 您可以使用getwd()函数检查R语言工作区指向的目录. 您还可以使用setwd(
-
R语言对Excel文件操作实例
Microsoft Excel是最广泛使用的电子表格程序,以.xls或.xlsx格式存储数据. R语言可以直接从这些文件使用一些excel特定的包. 很少这样的包是XLConnect,xlsx,gdata等.我们将使用xlsx包. R语言也可以使用这个包写入excel文件. 安装xlsx软件包 您可以在R控制台中使用以下命令来安装"xlsx"软件包. 它可能会要求安装一些额外的软件包这个软件包依赖. 按照具有所需软件包名称的同一命令安装其他软件包. install.packages(&
-
R语言对数据库进行操作的实例详解
数据是关系数据库系统以规范化格式存储. 因此,要进行统计计算,我们将需要非常先进和复杂的Sql查询. 但R语言可以轻松地连接到许多关系数据库,如MySql,Oracle,Sql服务器等,并从它们获取记录作为数据框. 一旦数据在R语言环境中可用,它就变成正常的R语言数据集,并且可以使用所有强大的包和函数来操作或分析. 在本教程中,我们将使用MySql作为连接到R语言的参考数据库. RMySQL包 R语言有一个名为"RMySQL"的内置包,它提供与MySql数据库之间的本地连接. 您可以使
-
R语言对Web数据操作实例
许多网站提供数据供其用户使用. 例如,世界卫生组织(WHO)以CSV,txt和XML文件的形式提供健康和医疗信息的报告. 使用R语言程序,我们可以从这些网站以编程方式提取特定数据. R语言中用于从网站中提取数据的一些包是"RCurl",XML"和"stringr",它们用于连接到URL,识别文件所需的链接并将它们下载到本地环境. 安装R语言的包 处理URL和链接到文件需要以下的包. 如果它们在R语言环境中不可用,您可以使用以下命令安装它们. install
-
R语言的Dataframe常用操作使用
上节我们简单介绍了Dataframe的定义,这节我们具体来看一下Dataframe的操作 首先,数据框的创建函数为 data.frame( ),参考R语言的帮助文档,我们来了解一下data.frame( )的具体用法: Usage data.frame(..., row.names = NULL, check.rows = FALSE, check.names = TRUE, fix.empty.names = TRUE, stringsAsFactors = default.stringsAs
-
R语言绘图样式设置操作(符号,线条,颜色,文本属性)
设置图像样式有两种方法,一种是全局修改,一种只针对一幅图片有效. 全局修改 a<-c(1:10) #全局修改 old_par<-par(no.readonly=TRUE) #记录默认样式到变量old_par中 par(lty=2,pch=17) #设置线型lty=2虚线,pch=17实心三角形,键值对的方式进行设置 #第一幅图,已经和默认样式不一样了 b<-rnorm(10) plot(a,b,type='b') #第二幅图,和第一幅图样式一样 b<-rnorm(10) plot(
-
R语言:排序的应用操作
工作中遇到过许多看起来挺复杂的数据筛选,本质上都可以用排序解决,这里以R自带的mtcar数据集为例做一个记录. 首先简单介绍一下mtcar数据集,mtcar(Motor Trend Car Road Tests)是一个32行11列的数据集,记录了32种汽车的11种性能,具体数据如下: > mtcars mpg cyl disp hp drat wt qsec vs am gear carb Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 M
-
R语言刷题检验数据缺失类型过程详解
目录 题目 解答 下面考虑三种情况: 1. a = 0, b = 0 2. a = 2, b = 0 3. a = 0, b = 2 题目 解答 由于题目要求需要重复三次类似的操作,故首先载入所需要的包,构造生成数据的函数以及绘图的函数: library(tidyr) # 绘图所需 library(ggplot2) # 绘图所需 # 生成数据 GenerateData <- function(a = 0, b = 0, seed = 2018) { set.seed(seed) z1 <- r
随机推荐
- mysql 无限级分类实现思路
- 用hta与ajax实现的五笔字型编码查询工具
- 按钮JS复制文本框和表格的代码
- MyBatis Generator去掉生成的注解
- python基于windows平台锁定键盘输入的方法
- iOS json解析出错的几种情况总结
- 在Python中操作字符串之startswith()方法的使用
- python中的sort方法使用详解
- Ajax使用JSON数据格式案例
- IE8下Ajax缓存问题及解决办法
- Js与Jq获取浏览器和对象值的方法
- win10下mysql 5.7.17 zip压缩包版安装教程
- JQuery使用index方法获取Jquery对象数组下标的方法
- jquery 自定义容器下雨效果可将下雨图标改为其他
- 谈一谈jQuery核心架构设计
- 解析JavaScript中的标签语句
- 三机互联又一法
- Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
- 实用的Vue开发技巧
- 浅谈iOS开发如何适配暗黑模式(Dark Mode)