R语言中R-squared与Adjust R-squared参数的解释

前言

最近做项目时,使用 R语言对一些数据做回归计算,分析数据时,想查看这堆数据的相关性,得知R-squared可以得到我想要的信息,但是在打印线性关系式时,看到了R-squared,Adjust R-squared 这两个参数,有点疑惑,上网也查看了一部分资料,最后,发现有两道题可以很明白解释这两个参数,如下:

题一

如果在线性回归模型中增加一个特征变量,下列可能发生的是(多选)?

A. R-squared 增大,Adjust R-squared 增大

B. R-squared 增大,Adjust R-squared 减小

C. R-squared 减小,Adjust R-squared 减小

D. R-squared 减小,Adjust R-squared 增大

答案:AB

**解析:**线性回归问题中,R-Squared 是用来衡量回归方程与真实样本输出之间的相似程度。其表达式如下所示

上式中,分子部分表示真实值与预测值的平方差之和,类似于均方差 MSE;分母部分表示真实值与均值的平方差之和,类似于方差 Var。一般来说,R-Squared 越大,表示模型拟合效果越好。R-Squared 反映的是大概有多准,因为,随着样本数量的增加,R-Squared 必然增加,无法真正定量说明准确程度,只能大概定量。

单独看 R-Squared,并不能推断出增加的特征是否有意义。通常来说,增加一个特征特征,R-Squared 可能变大也可能保持不变,两者不一定呈正相关。

如果使用校正决定系数(Adjusted R-Squared):

其中,n 是样本数量,p 是特征数量。Adjusted R-Squared 抵消样本数量对 R-Squared 的影响,做到了真正的 0~1,越大越好。

增加一个特征变量,如果这个特征有意义,Adjusted R-Square 就会增大,若这个特征是冗余特征,Adjusted R-Squared 就会减小。

题二

在一个线性回归问题中,我们使用 R 平方(R-Squared)来判断拟合度。此时,如果增加一个特征,模型不变,则下面说法正确的是?

A. 如果 R-Squared 增加,则这个特征有意义

B. 如果R-Squared 减小,则这个特征没有意义

C. 仅看 R-Squared 单一变量,无法确定这个特征是否有意义。

D. 以上说法都不对

答案:C

解析: 看题一解析

总结

到此这篇关于R语言中R-squared与Adjust R-squared参数解释的文章就介绍到这了,更多相关R语言 R-squared与Adjust R-squared内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • R语言中R-squared与Adjust R-squared参数的解释

    前言 最近做项目时,使用 R语言对一些数据做回归计算,分析数据时,想查看这堆数据的相关性,得知R-squared可以得到我想要的信息,但是在打印线性关系式时,看到了R-squared,Adjust R-squared 这两个参数,有点疑惑,上网也查看了一部分资料,最后,发现有两道题可以很明白解释这两个参数,如下: 题一 如果在线性回归模型中增加一个特征变量,下列可能发生的是(多选)? A. R-squared 增大,Adjust R-squared 增大 B. R-squared 增大,Adju

  • 详解R语言中的PCA分析与可视化

    1. 常用术语 (1)标准化(Scale) 如果不对数据进行scale处理,本身数值大的基因对主成分的贡献会大.如果关注的是变量的相对大小对样品分类的贡献,则应SCALE,以防数值高的变量导入的大方差引入的偏见.但是定标(scale)可能会有一些负面效果,因为定标后变量之间的权重就是变得相同.如果我们的变量中有噪音的话,我们就在无形中把噪音和信息的权重变得相同,但PCA本身无法区分信号和噪音.在这样的情形下,我们就不必做定标. (2)特征值 (eigen value) 特征值与特征向量均为矩阵分

  • R语言中的vector(向量),array(数组)使用总结

    对于那些有一点编程经验的人来说,vector,matrix,array,list,data.frame就相当于编程语言中的容器,因为只是将R看做数据处理工具所以它们的底层是靠什么实现的,内存怎么处理的具体也不要深究. R语言很奇怪的是它是面向对象的语言,所以经常会调用系统的方法,而且更奇怪的是总是调用"谓语"的方法,用起来像是写句子一样,记起来真是让人费解.比如is.vector(),read.table(),as.vector().. 直接开始吧:(由于习惯,大部分用"=&

  • R语言中cbind、rbind和merge函数的使用与区别

    cbind: 根据列进行合并,即叠加所有列,m列的矩阵与n列的矩阵cbind()最后变成m+n列,合并前提:cbind(a, c)中矩阵a.c的行数必需相符 rbind: 根据行进行合并,就是行的叠加,m行的矩阵与n行的矩阵rbind()最后变成m+n行,合并前提:rbind(a, c)中矩阵a.c的列数必需相符 > a <- matrix(1:12, 3, 4) > print(a) [,1] [,2] [,3] [,4] [1,] 1 4 7 10 [2,] 2 5 8 11 [3,

  • R语言中Fisher判别的使用方法

    最近编写了Fisher判别的相关代码时,需要与已有软件比照结果以确定自己代码的正确性,于是找到了安装方便且免费的R.这里把R中进行Fisher判别的方法记录下来. 1. 判别分析与Fisher判别 不严谨但是通俗的说法,判别分析(Discriminant Analysis)是一种多元(多个变量)统计分析方法,它根据样本的多个已知变量的值对样本进行分类的方法.一般来说,判别分析由两个阶段构成--学习(训练)和判别.在学习阶段,给定一批已经被分类好的样本,根据它们的分类情况和样本的多个变量的值来学习

  • R语言中for循环的并行处理方式

    前言 本文用于记录笔者在将R语言中的for语句并行化处理中的一些问题. 实验 这里使用foreach和doParallel包提供的函数实现for语句的并行处理. for语句脚本 func <- function(x, y, z) { return(x^y/z) } # >>> main <<< x <- 2 y <- 3 z <- 1:100000 start <- (proc.time())[3][[1]] a <- 0 for (

  • R语言中的fivenum与quantile()函数算法详解

    fivenum()函数: 返回五个数据:最小值.下四分位数数.中位数.上四分位数.最大值 对于奇数个数字=5,fivenum()先排序,依次返回最小值.下四分位数.中位数.上四分位数.最大值 > fivenum(c(1,12,40,23,13)) [1] 1 12 13 23 40 对于奇数个数字>5,fivenum()先排序,我们可以求取最小值,最大值,中位数.在排序中,最小值与中位数中间,若为奇数,取其中位数为下四分位数,若为偶数,取最中间两个数的平均值为下四分位数:在排序中,中位数与最大

  • R语言中c()函数与paste()函数的区别说明

    c()函数:将括号中的元素连接起来,并不创建向量 paste()函数:连接括号中的元素 例如 c(1, 2:4),结果为1 2 3 4 paste(1, 2:4),结果为"1 2" "1 3" "1 4" c(2, "and"),结果为"2" "and" paste(2, "and"),结果为"2 and" 补充:R语言中paste函数的参数sep

  • R语言中cut()函数的用法说明

    R语言cut()函数使用 cut()切割将x的范围划分为时间间隔,并根据其所处的时间间隔对x中的值进行编码. 参数:breaks:两个或更多个唯一切割点或单个数字(大于或等于2)的数字向量,给出x被切割的间隔的个数. breaks采用fivenum():返回五个数据:最小值.下四分位数.中位数.上四分位数.最大值. labels为区间数,打标签 ordered_result 逻辑结果应该是一个有序的因素吗? 先用fivenum求出5个数,再用labels为每两个数之间,贴标签,采用(]的区间,

  • 浅析R语言中map(映射)与reduce(规约)

    map(映射)与reduce(规约)操作在数据处理中非常常见,R语言的核心是向量化操作,自带的apply系列函数完成了数据框的向量化计算,而purrr包中的map与reduce系列函数很好的拓展了向量化计算,使R语言处理数据更加优雅流畅. purrr包是tidyverse系列中的包,开发者是大名鼎鼎的Hadley Wickham.purrr包中的函数很多,使用最多的是map与reduce系列函数. 安装包 install.packages('purrr') map map表示映射,可以在一个或多

随机推荐