R中lm中的调整后R平方公式是什么,应如何解释?


35

调整后的R平方在R中使用的确切公式是什么lm() ?我该怎么解释?

调整后的r平方公式

似乎存在一些公式来计算调整后的R平方。

  • Wherry的公式:1(1R2)(n1)(nv)
  • 麦克尼马尔公式:1(1R2)(n1)(nv1)
  • 洛德公式:1(1R2)(n+v1)(nv1)
  • 斯坦因公式:1[(n1)(nk1)(n2)(nk2)(n+1)n](1R2)

教科书说明

  • 根据菲尔德的教科书《使用R发现统计信息》(2012年,第273页),R使用了Wherry方程,“告诉我们如果该模型是从采样样本中得出的,则Y可以解释多少差异”。他没有给出Wherry的配方。他建议(手动)使用Stein的公式来检查模型的交叉验证程度。
  • Kleiber / Zeileis,《应用计量经济学与R》(2008年,第59页)声称它是“ Theil的R平方调整后的值”,并且没有确切说明其解释与多个R平方的差异。
  • Dalgaard在Introductory Statistics with R(2008,p。113)中写道:“如果[调整后的R平方]乘以100%,则可以解释为'%方差减少'”。他没有说这对应哪个公式。

我以前曾想并广泛地读到R平方会给模型增加其他变量而受到惩罚。现在,使用这些不同的公式似乎需要不同的解释。我还研究了有关堆栈溢出的一个相关问题(在单变量最小二乘回归中,多个R平方和调整R平方之间有什么区别?),以及UPenn的Wharton学校统计词典

问题

  • 哪个公式用于通过R调整的r平方 lm()
  • 我该怎么解释?

8
来自summary.lm() ans$adj.r.squared <- 1 - (1 - ans$r.squared) * ((n - df.int)/rdf):,其中ans $ r.squared = R ^ 2; n = n,rdf =残留df,df.int =截距df(0或1)。
EDi

我将在这里为真正的问题提供答案,而不是“什么样的R ^ 2 ...”。您(以及许多其他人)缺少的信息是:所有R包,甚至是内核,都使源代码可用。甚至在发行版中编译的内容也可以在CRAN或其他存储库上的{packagenames} .tar.gz中找到。
卡尔·威索夫特

此处的操作:感谢您的宝贵意见。第二个问题:我该如何解释?我读过许多关于Adj的解释。R平方,有时似乎基于可能不是Wherry的公式?

Answers:


29

1. lmR在调整后的r平方中使用什么公式?

如前所述,键入summary.lm将为您提供R用于计算调整后的R平方的代码。提取最相关的行:

ans$adj.r.squared <- 1 - (1 - ans$r.squared) * ((n - df.int)/rdf)

数学符号对应于:

Radj2=1(1R2)n1np1

假设存在一个截距(即df.int=1),是您的样本量,是您的预测变量数。因此,您的错误自由度(即)等于。pnprdfn-p-1

该公式对应于Yin and Fan(2001)标注的Wherry Formula-1(显然还有另一个不太常见的Wherry公式,在分母中使用代替)。他们建议按出现顺序最常用的名称是“ Wherry公式”,“ Ezekiel formlua”,“ Wherry / McNemar公式”和“ Cohen / Cohen公式”。n p 1npnp1

2.为什么调整后的r平方公式这么多?

ρ 2 ρ 2Radj2目的是估计,这是通过总体回归方程在总体中解释的方差比例。尽管这显然与样本量和预测变量的数量有关,但最好的估计变量尚不清楚。因此,您有诸如Yin和Fan(2001)之类的模拟研究,它们根据估计的好坏程度评估了不同的调整后的r平方公式(请参阅此问题以进行进一步的讨论)。ρ2ρ2

您将看到所有公式,随着样本量的增加,和之间的差异会变小。当样本量趋于无穷大时,差异接近零。预测变量越少,差异也越小。R 2 a d jR2Radj2

3.如何解释?Radj2

ρ 2 ρ 2 - [R 2Radj2是总体由真实回归方程解释的方差比例的估计。您通常会对感兴趣,而您对变量的理论线性预测感兴趣。相反,如果您对使用样本回归方程进行预测更感兴趣,那么在应用设置中通常是这种情况,那么某种形式的交叉验证的会更相关。ρ2ρ2R2

参考文献

  • Yin,P.,&Fan,X.(2001年)。在多元回归中估算收缩:不同分析方法的比较。实验教育杂志,69(2),203-224。PDF格式R2

9

关于第一个问题:如果您不知道它是如何计算的,请查看代码!如果您summary.lm在控制台中键入,则会获得此功能的代码。如果您略过代码,则会发现一行:ans$adj.r.squared <- 1 - (1 - ans$r.squared) * ((n - df.int)/rdf)。如果您在此行上方查看一些行,您会注意到:

  • ans$r.squared:是您的R2
  • n 是残差数=观察数
  • df.int 是0或1(取决于您是否有截距)
  • rdf 是您的剩余df

问题2:来自维基百科:“调整后的是对的修改,它针对模型中解释性术语的数量进行了调整。'R 2R2R2

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.