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

Posted

技术标签:

【中文标题】单变量最小二乘回归中的多重 R 平方和调整 R 平方有啥区别?【英文标题】:What is the difference between Multiple R-squared and Adjusted R-squared in a single-variate least squares regression?单变量最小二乘回归中的多重 R 平方和调整 R 平方有什么区别? 【发布时间】:2011-02-21 16:10:26 【问题描述】:

谁能解释一下Multiple R-squaredAdjusted R-squared 之间的区别是什么?我正在做如下单变量回归分析:

 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 

【问题讨论】:

StatsOverflow 是个好主意。我希望有人建议它作为一个新的 StackExchange 站点。 去投票:meta.stackexchange.com/questions/5547/… 你的意思是crossvalidated.com(又名stats.stackexchange.com)? @BrandonBertelsen 我当时没有,因为它还不存在! 另见the answers provided to a very similar question on Cross Validated 【参考方案1】:

调整后的R平方中的“调整”与变量的数量和观察的数量有关。

如果您不断向模型中添加变量(预测变量),R 平方会有所改善 - 也就是说,预测变量似乎可以解释方差 - 但其中一些改善可能仅是由于偶然性。因此,调整后的 R 平方试图通过考虑比率 (N-1)/(N-k-1) 来纠正这一点,其中 N = 观察数,k = 变量数(预测变量)。

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

一些参考资料:

    How high, R-squared? Goodness of fit statistics Multiple regression Re: What is "Adjusted R^2" in Multiple Regression

【讨论】:

【参考方案2】:

R 平方不依赖于模型中的变量数量。调整后的 R 平方为。

调整后的 R 平方增加了向模型添加与您试图解释的变量不相关的变量的惩罚。您可以使用它来测试变量是否与您要解释的内容相关。

Adjusted R-squared 是 R-squared 添加了一些除法以使其取决于模型中变量的数量。

【讨论】:

注意:在回归中添加预测变量几乎总是会增加 r-squared,即使由于随机抽样只会增加一点点。 ty Jeromy,我的意思是说“下去”而不是上去。 R 平方永远不会因为向模型中添加新变量而下降。如果添加新变量,调整后的 R 平方可以上升或下降。这是一个不好的例子,所以我删除了它。【参考方案3】:

调整后的 R 平方接近但不同于 R2 的值。它不是基于解释的平方和 s-s-r 和总平方和 SSY,而是基于总体方差(我们通常不计算的量),s2T = SSY/(n - 1) 和误差方差 MSE (来自 ANOVA 表)并计算如下:调整后的 R 平方 = (s2T - MSE) / s2T。

这种方法通过添加解释变量为判断拟合的改进提供了更好的基础,但它没有 R2 所具有的简单概括解释。

如果我没记错的话,你应该验证调整后的 R-squared 和 R-squared 的值如下:

s2T <- sum(anova(v.lm)[[2]]) / sum(anova(v.lm)[[1]])
MSE <- anova(v.lm)[[3]][2]
adj.R2 <- (s2T - MSE) / s2T

另一方面,R2 为:s-s-r/SSY,其中 s-s-r = 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)
s-s-r <- (SSY - SSE) # or s-s-r <- sum((predict(v.lm,list(n_days)) - mean(epm))^2)
R2 <- s-s-r / SSY 

【讨论】:

最后一个代码框有错别字:deviance(v.lm)调用实际上会输出模型s-s-r,这反过来意味着SSE &lt;- (SSY - s-s-r)。至于SSY,无需重新调整模型即可检索它的更简单方法是:SSY &lt;- sum(anova(v.lm)$"Sum Sq") 其实我的意思是用s-s-r来解释SS是违反直觉的,s-s-r更容易表示残余SS,而SSE解释SS... s-s-r 是回归的平方和。 Rquares 的剩余朗姆酒是“RSS”en.wikipedia.org/wiki/Explained_sum_of_squares 该死的那些约定!我手头的书(Wooldridge,2009 年)分别使用 s-s-r、SSE、SST 来表示残差、解释和总 SS。我想当使用这些模棱两可的约定时,对其预期含义的注释会很方便...... Wiki 还将 s-s-r 定义为“残差平方和”:en.wikipedia.org/wiki/Residual_sum_of_squares。在我看来,RSS、ESS 和 TSS 是最不容易混淆的符号。【参考方案4】:

请注意,除了预测变量的数量外,上述调整后的 R 平方公式还会根据样本量进行调整。一个小样本会给出一个看似大的 R 平方。

Ping Yin & Xitao Fan, J. of Experimental Education 69(2): 203-224,“Estimating R-squared shrinkage in multiple regression”,比较了不同的调整 r-squared 的方法,总结出常用的方法上面引用的不好。他们推荐 Olkin & Pratt 公式。

但是,我看到一些迹象表明,人口规模的影响比这些公式中的任何一个都大得多。我不相信这些公式中的任何一个都足以让您比较使用非常不同的样本大小(例如,2,000 与 200,000 个样本;标准公式几乎不会进行基于样本大小的调整)的回归。我会做一些交叉验证来检查每个样本的 r 平方。

【讨论】:

以上是关于单变量最小二乘回归中的多重 R 平方和调整 R 平方有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

r语言如何最小二乘线性回归分析

拓端tecdat|R语言编程指导用线性模型进行臭氧预测: 加权泊松回归,普通最小二乘,加权负二项式模型,多重插补缺失值

R语言 | R包pls的偏最小二乘(PLS)回归

R语言中的偏最小二乘回归PLS-DA

什么是调整后的R方

什么是最小二乘法回归分析?