有人说相关系数(correlation coefficient,r)和决定系数(coefficient of determination,R^2,读作R-Squared)都是评价两个变量相关性的指标,且相关系数的平方就是决定系数?这种说法对不对呢?请听下文分解!
要说相关系数,我们先来聊聊协方差。在之前的博文《使用Python计算方差协方差相关系数》中提到协方差是计算两个随机变量X和Y 之间的相关性的指标,定义如下:
\mathrm{Cov}(X, Y) = \mathrm{E}[(X - \mathrm{E}X)(Y - \mathrm{E}Y)]
但是协方差有一个确定:它的值会随着变量量纲的变化而变化(covariance is not scale invariant),所以,这才提出了相关系数的概念:
r = \mathrm{Corr}(X, Y) = \frac{Cov(X, Y)}{\sigma_X \cdot \sigma_Y} = \frac{\mathrm{E}[(X - \mathrm{E}X)(Y - \mathrm{E}Y)]}{\sqrt{\mathrm{E}[X - \mathrm{E}X]^2}\sqrt{\mathrm{E}[Y - \mathrm{E}Y]^2}}
对于相关系数,我们需要注意:
下面来说决定系数,R方一般用在回归模型用用于评估预测值和实际值的符合程度,R方的定义如下:
R^2 = 1 - \mathrm{FVU} = 1 - \frac{\mathrm{RSS}}{\mathrm{TSS}} = 1 - \frac{\sum\limits_i(y_i - f_i)^2}{\sum\limits_i(y_i - \hat{y})^2}
上式中y是实际值,f是预测值,\hat{y}是实际值的平均值。\mathrm{FVU}被称为fraction of variance unexplained,RSS叫做Residual sum of squares,TSS叫做Total sum of squares。根据R^2的定义,可以看到R^2是有可能小于0的,所以R2不是r的平方。一般地,R^2越接近1,表示回归分析中自变量对因变量的解释越好。
对于$R^2$可以通俗地理解为使用均值作为误差基准,看预测误差是否大于或者小于均值基准误差。
此外,我们做这样一个变形:R^2 = 1 - \frac{\sum\limits_i(y_i - f_i)^2 / n}{\sum\limits_i(y_i - \hat{y})^2 / n} = 1 - \frac{\mathrm{RMSE}}{\mathrm{Var}},可以看到变成了1减去均方根误差和方差的比值(有利于编程实现)。
另外有一个叫做Explained sum of squares,\mathrm{ESS} = \sum\limits_i(f_i - \hat{y})^2
在一般地线性回归模型中,有\mathrm{ESS} + \mathrm{RSS} = \mathrm{TSS}(证明过程参见:Partitioning in the general ordinary least squares model)
在这种情况下:我们有R^2 = 1 - \frac{\mathrm{RSS}}{\mathrm{TSS}} = \frac{\mathrm{ESS}}{\mathrm{TSS}} = \frac{\sum\limits_i(f_i - \hat{y})^2}{\sum\limits_i(y_i - \hat{y})^2}
对于R^2我们需要注意:
最后,这篇文章《8 Tips for Interpreting R-Squared》里面指出了不错误解读R^2的地方,读完之后,我觉得以后还是少用R^2,对于模型的评估可以选择其它一些更适合的指标。
1. The relationship between correlation and the coefficient of determination
2. Coefficient of determination
4. Regression Analysis: How Do I Interpret R-squared and Assess the Goodness-of-Fit?