单变量最小二乘回归中的多重R平方和调整后的R平方有什么区别?

40

有没有人能向统计学小白解释一下多重R平方调整后R平方的区别是什么?我正在进行单变量回归分析,如下所示:

 v.lm <- lm(epm ~ n_days, data=v)
 print(summary(v.lm))

结果:

Call:
lm(formula = epm ~ n_days, data = v)

Residuals:
    Min      1Q  Median      3Q     Max 
-693.59 -325.79   53.34  302.46  964.95 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  2550.39      92.15  27.677   <2e-16 ***
n_days        -13.12       5.39  -2.433   0.0216 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

Residual standard error: 410.1 on 28 degrees of freedom
Multiple R-squared: 0.1746,     Adjusted R-squared: 0.1451 
F-statistic: 5.921 on 1 and 28 DF,  p-value: 0.0216 

5
StatsOverflow是一个非常好的想法。我希望有人已经将其建议为一个新的StackExchange网站。 - neilfws
2
请前往以下网址为其投票:http://meta.stackexchange.com/questions/5547/proposal-for-statistics-data-mining-stackexchange-site - fmark
4
您是指 http://www.crossvalidated.com (又称 http://stats.stackexchange.com) 吗? - Brandon Bertelsen
4
当时我没有这样做,因为那还不存在! - fmark
哦,哈哈,我甚至没有看日期。 - Brandon Bertelsen
3
请参见在Cross Validated上提供给一个非常相似问题的答案(http://stats.stackexchange.com/questions/48703/what-is-the-adjusted-r-squared-formula-in-lm-in-r-and-how-should-it-be-interpreted)。 - Jeromy Anglim
4个回答

61

在调整后的R-squared中的"adjustment"与变量数量和观测值数量有关。

如果您不断向模型添加变量(预测因子),R-squared将会改善,即预测因子看起来能够解释方差,但其中一部分改善可能仅由于偶然原因。因此,调整后的R-squared试图通过考虑比率(N-1)/(N-k-1)(其中N=观测值数量,k=变量数量(预测因子))来进行纠正。

对于您的情况,这可能不是一个问题,因为您只有一个自变量。

一些参考资料:

  1. 如何评价高的R-squared?
  2. 拟合优度统计量
  3. 多元回归
  4. 关于多元回归中的"Adjusted R^2"

8
调整后的R平方值与R2值接近,但略有不同。它不是基于解释的平方和SSR和总平方和SSY,而是基于总方差(我们通常不计算的数量),s2T = SSY /(n-1)和误差方差MSE(来自ANOVA表),并按如下方式计算:调整后的R平方=(s2T-MSE)/ s2T。
这种方法为评估添加解释变量后拟合改进提供了更好的基础,但它没有R2的简单概括解释。
如果我没有犯错,您应该按以下方式验证调整后的R平方和R平方的值:
s2T <- sum(anova(v.lm)[[2]]) / sum(anova(v.lm)[[1]])
MSE <- anova(v.lm)[[3]][2]
adj.R2 <- (s2T - MSE) / s2T

另一方面,R2 是 SSR/SSY,其中 SSR = SSY - SSE。
attach(v)
SSE <- deviance(v.lm) # or SSE <- sum((epm - predict(v.lm,list(n_days)))^2)
SSY <- deviance(lm(epm ~ 1)) # or SSY <- sum((epm-mean(epm))^2)
SSR <- (SSY - SSE) # or SSR <- sum((predict(v.lm,list(n_days)) - mean(epm))^2)
R2 <- SSR / SSY 

最后一个代码框中有一个错别字:deviance(v.lm) 调用实际上会输出模型的 SSR,这意味着 SSE <- (SSY - SSR)。至于 SSY,一个更简单的方法是在不必重新拟合模型的情况下检索它:SSY <- sum(anova(v.lm)$"Sum Sq") - landroni
实际上我的意思是,使用SSR来解释SS是不直观的,而SSR更容易表示剩余SS,而SSE则表示解释的SS... - landroni
SSR是回归平方和。残差平方和是“RSS”。请参阅https://en.wikipedia.org/wiki/Explained_sum_of_squares。 - gd047
该死的约定!我手头的书(Wooldridge,2009年)分别使用SSR、SSE、SST表示残差、解释的平方和、总平方和。我猜当使用这些模棱两可的约定时,注明它们预期的含义会很方便...维基百科还将SSR定义为“残差平方和”:https://en.wikipedia.org/wiki/Residual_sum_of_squares 。从我所看到的,RSS、ESS和TSS是最不令人困惑的符号。 - landroni

8

R-squared(R平方)并不取决于模型中变量的数量。但是调整后的R-squared(调整后的R平方)却与此有关。

调整后的R-squared会对向模型中添加与你试图解释的变量不相关的变量进行惩罚。你可以使用它来测试一个变量是否与你试图解释的事物相关。

调整后的R-squared是在R-squared基础上增加了一些除数,使其依赖于模型中的变量数量。


注意:将预测变量添加到回归中几乎总是会增加r-squared,即使只是由于随机抽样而略微增加。 - Jeromy Anglim
谢谢Jeromy,我本意是说“下降”而不是上升。加入新变量后,R平方值永远不会下降。如果添加新变量,则调整后的R平方值可能会上升或下降。这是一个糟糕的例子,所以我把它删除了。 - Jay

2
请注意,除了预测变量数量外,上述调整后的R-squared公式还调整了样本大小。样本较小会导致R-squared估计偏高。
一篇题为“多元回归中R-squared收缩的估计”的论文(作者为Ping Yin和Xitao Fan,发表于实验教育期刊69(2):203-224),比较了不同的调整R-squared方法,并得出结论:上述常用的方法并不好。他们推荐使用Olkin & Pratt公式。
然而,我看到一些迹象表明,总体大小的影响比这些公式所示的任何影响都要大得多。我不确定这些公式是否足够好,以允许您比较使用非常不同的样本大小进行的回归(例如,含有2000个与20万个样本的回归;标准公式几乎不基于样本大小进行调整)。我建议进行一些交叉验证,检查每个样本的R-squared值。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接