R方是统计学里常用的统计量,在不同任务模型下的解读和用途不一,有时候会出现误用情况。本文总结了对R方的理解和用法,遵循“从一般到特殊”的思路,先讲一般回归模型中的R方,再讲线性回归模型里的R方。"一般"回归模型包括线性模型,随机森林,神经网络等。

  • R方的定义

R方的名字是coefficient of determination,另一个名字是Nash–Sutcliffe model efficiency coefficient。给定一系列真值

和对应的预测值
,R方的定义为

R方的含义是,预测值解释了

变量的方差的多大比例,衡量的是预测值对于真值的拟合好坏程度。通俗理解,假定
的方差为1个单位,则R方表示"使用该模型之后,
的残差的方差减少了多少"。比如R方等于0.8,则使用该模型之后残差的方差为原始
值方差的20%。
  • R方=1:最理想情况,所有的预测值等于真值。
  • R方=0:一种可能情况是"简单预测所有y值等于y平均值",即所有
    都等于
    (即真实y值的平均数),但也有其他可能。
  • R方<0:模型预测能力差,比"简单预测所有y值等于y平均值"的效果还差。这表示可能用了错误模型,或者模型假设不合理。
  • R方的最小值没有下限,因为预测可以任意程度的差。因此,R方的范围是
  • 注意:R方并不是某个数的平方,因此可以是负值

Python里的scikit-learn包(v0.23.1)里,sklearn.metrics.r2_score即是R方的实现。sklearn的RandomForestRegressor等回归模型中,带有score(self, X, y)的函数,这个函数返回的是根据X得到的预测值和真值y的R方。

  • R方和均方误差(mean squared error)的联系

(未完待续)

  • R方是否适合评估一般模型的预测能力

(未完待续)

  • R方的解读

(如何解读R方结果?比如

=0.3)
  • 线性回归模型的R方

线性模型可以理解为“以最小化R方为目标,寻找y和x之间的最优线性关系”。

学过线性回归的人,估计都会知道用R方评估模型的拟合程度。此处R方定义和上述一样,度量的是根据X拟合得到的

值和真实
的接近程度。但由于最小二乘线性模型的特殊性,R方有几个特殊地方。数学证明过程略过,只讲结论。对数学推导过程感兴趣的,可以看wikipedia词条

[1]

  1. 对于不固定截距的简单线性模型(y = mx + b), R方等于x和y的pearson correlation coefficient的平方。因此,此处的R方范围是[0,1]。R方等于0,表示x和y的散点图完全随机,没有线性关系(或者说,线性相关关系等于0)。R方等于1,表示所有(x,y)散点落在一条直线上。
  2. 对于不固定截距的多元线性模型,R方等于
    的pearson correlation coefficient的平方。因此,R方范围同样是[0,1]。R方等于1,表示完美的线性拟合。
  3. 对于固定截距的线性模型(英语是"regression through the origin"),R方不等同
    的相关系数平方,其范围不是[0,1]。给定一组变量,比较"固定截距的线性模型"和"不固定截距的线性模型"的R方是没有意义的,因为两个R方的含义不同。
  4. 线性模型的R方会随着x变量的增长而单调递增。因此,在带有k个自变量的线性模型里加入第k+1个变量,无论新加入的变量和y的关系如何,再重新拟合模型,R方一定是增长的。因此,用R方是否增长来衡量第k+1个变量对模型的提升水平是不合理的。
  5. 为了衡量新加入变量是否提高模型拟合程度,有人发明了adjusted R squared。
  6. R方并不能用于说明以下的假设是否成立[1]
    1. 模型中的自变量是因变量产生变化的原因。
    2. 模型存在omit-variable bias,即忽略了某个重要自变量导致出现偏差。
    3. 所选用的回归模型是合理的。
    4. 所选用的自变量集合是最合理的。
    5. 自变量之间存在共线性。
    6. 如果对自变量进行变换,模型的拟合程度将会提升。
    7. 选用的数据量足够用于得到有说服力的结论。
  • 用Pearson相关系数评价一般模型的预测准确度是否合适

简单回答:不合适。此处Pearson相关系数评估的是,

的变化趋势是否符合直线,而不是预测的准确度。

上文提到,简单线性回归模型的R方等于x和y的Pearson相关系数平方,多元线性模型的R方等于

的Pearson相关系数的平方。

因此,计算两组数据的相关系数,比如

,等同于以
作自变量拟合得到线性模型
,再计算该模型的R方。

此处的用意是什么?意思是,Pearson相关系数并不能衡量两组数据的接近程度,而是度量了两组数的线性相关关系。换句话说,Pearson相关系数衡量的是

的变化趋势是否符合一条直线。

看到有的论文,以Pearson相关系数衡量非线性模型(比如神经网络)的拟合或预测能力,这是不合理的。实际上,此处Pearson相关系数评估的是该非线性模型叠加一个线性模型的预测能力。

参考

  1. ^abWikipedia entry on the Coefficient of determination https://en.wikipedia.org/wiki/Coefficient_of_determination

R中怎么做加权最小二乘_R方的理解与用法相关推荐

  1. R中怎么做加权最小二乘_Stata+R:分位数回归一文读懂

    NEW!连享会·推文专辑: Stata资源 | 数据处理 | Stata绘图 | Stata程序 结果输出 | 回归分析 | 时间序列 | 面板数据 | 离散数据 交乘调节 | DID | RDD   ...

  2. 5、spss做加权最小二乘回归及岭回归

    上一节我们讲到一般多元线性回归的操作方法.本节要介绍的是多元线性回归的其他几种情况.包括适用于含有加权变量的加权最小二乘回归方程等.然后继续讨论上一节中没有讨论完毕的如何解决多重共线性这个问题. 讲加 ...

  3. r语言怎么做经验分布_R语言如何做马尔科夫转换模型markov switching model

    原文链接: R语言如何做马尔科夫转换模型markov switching model​tecdat.cn 假设 有时间序列数据,如下所示.经验表明,目标变量y似乎与解释变量x有关.然而,乍一看,y的水 ...

  4. R语言作加权最小二乘_R语言与计量经济学(三)异方差

    这两部分都是对残差假设的检验,经典回归模型的残差服从(0, )的正态分布,且相互独立,这里就是检验残差的方差是否相同.方差是否会随解释变量的变化而变化. library(ggplot2) librar ...

  5. R 中关闭科学记数法

    您可以使用以下方法关闭 R 中的科学计数法: 方法一:关闭科学记数法作为全局设置 options(scipen=999) 方法二:关闭一个变量的科学计数法 format(x, scientific = ...

  6. 加权最小二乘(Weighted Least Squares,WLS)回归及R语言计算

    与OLS回归相比,加权最小二乘(Weighted Least Squares,WLS)回归是当残差中方差不变的最小二乘假设被违背(异方差性)时可以考虑的一种方法,即different observat ...

  7. python加权最小二乘_Eviews关于加权最小二乘法(WLS)中权重W的问题

    Eviews关于加权最小二乘法(WLS)中权重W的问题 使用Eviews7,多元线性模型中,怎么做进行加权最小二乘法啊?也就是WLS.权重W该怎么求呢?补充:我的变量数据有负数.请详细一点,好吗? 解 ...

  8. R构建加权最小二乘回归模型(Weighted Least Squares Regression)

    R构建加权最小二乘回归模型(Weighted Least Squares Regression) 目录 R构建加权最小二乘回归模型(Weighted Least Squares Regression)

  9. unity3d 可视化编程_R编程系列:R中的3D可视化

    unity3d 可视化编程 In the last blog, we have learned how to create "Dynamic Maps Using ggplot2" ...

  10. r语言算巢式设计方差分析_R语言中的方差分析方法汇总

    方差分析,是统计中的基础分析方法,也是我们在分析数据时经常使用的方法.下面我总结一下R语言如何对常用的方差分析进行操作. 1. 方差分析的假定 上面这个思维导图,也可以看出,方差分析有三大假定:正态, ...

最新文章

  1. 【AngularJS】—— 9 自定义过滤器
  2. 2018html游戏引擎,跨平台三维游戏引擎Unity Pro 2018.1 Win x64
  3. Python 编程系列
  4. windows ce 5.0 + vs2005 + sql数据库_开发注意事项
  5. Qt中 QString 和int,double等的转换
  6. 将Linux系统下交叉编译的依赖库推到ARM平台下无法建立以来关系解决
  7. eager_EAGER的获取是代码的味道
  8. android 蒙层广告1,subnvue安卓机打开只显示蒙层,没有任何内容【报Bug】
  9. Javascript中call函数和apply函数的使用
  10. 开发者强势围观!Gartner 发布 2020 年十大战略科技发展趋势
  11. ZC_汇编指令_cmp
  12. 使用NodeJS调用Dubbo工程
  13. 78 ----二次曲面方程的化简、移轴变换、转轴变换、伸缩变换
  14. Intellij IDEA 看源码必备的技能!
  15. GB50174《电子信息系统机房设计规范》贯标培训活动
  16. 大数据产品推荐:金蜂巢大数据集成与脱敏系统
  17. POJ 3233 矩阵快速幂
  18. tomcat-解决get请求中文乱码问题
  19. 什么是SEO?SEO的区别在哪里?
  20. 彼得林奇的成功投资---学习之一

热门文章

  1. excel 80080005 服务器运行失败,Word 2016自动生成“错误:80080005服务器执行失败”...
  2. ttl传输中过期可能是什么原因_ttl传输中过期怎么解决
  3. thinkphp5.1生成错误日志文件以及Evn的使用
  4. XRD测试的68个问题(一)
  5. 转叶寒栋分享:方舟支持C语言编译新功能开源啦!
  6. 制作自己的openwrt刷机包_openwrt刷机教程
  7. 光纤接头截面工艺分类
  8. CSS简单实现一个箭头
  9. CH340国产USB转异步串口芯片替代CP2102对比CH340C与CH340G
  10. WeiRuan DaBing