相关系数r和决定系数R2的那些事
o协方差与相关系数
o决定系数(R方)
o参考资料
有人说相关系数(correlation coefficient,rrrr)和决定系数(coefficient of determination,R2R2R^2R2,读作R-Squared)都是评价两个变量相关性的指标,且相关系数的平方就是决定系数?这种说法对不对呢?请听下文分解!
协方差与相关系数
要说相关系数,我们先来聊聊协方差。在之前的博文《使用Python计算方差协方差相关系数》中提到协方差是计算两个随机变量XXXX和YYYY 之间的相关性的指标,定义如下:
Cov(Xnorway,Y)=E[(X−EX)(Y−EY)]Cov(X,Y)=E[(X−EX)(Y−EY)]\mathrm{Cov}(X, Y) = \mathrm{E}[(X - \mathrm{E}X)(Y - \mathrm{E}Y)]Cov(X,Y)=E[(X−EX)(Y−EY)]
但是协方差有一个确定:它的值会随着变量量纲的变化而变化(covariance is not scale invariant),所以,这才提出了相关系数的概念:
r=Corr(Xlrx,Y)=Cov将来进行时(X,Y)σX⋅σYlofter是什么意思=E[(X−EX)(Y−EY)]E[X−EX]2√E[Y−EY]2√r=Corr(X,Y)=Cov(X,Y)σX⋅σY=E[(X−EX)(Y−EY)]E[X−EX]2E[Y−EY]2r = \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=Corr(X,Y)=σX⋅σYCov(X,Y)=E[X−EX]2E[Y−EY]2E[(X−EX)(Y−EY)]
对于相关系数,我们需要注意:
1.相关系数是用于描述两个变量线性相关程度的,如果r免费英语口语学习>0r>0r \gt 0r>0,呈正相关;如果r=0r=0r = 0r=0,不相关;如果r<0r<0r \lt 0r<0,呈负相关。
2.如果我们将X−EXX−EXX - \mathrm{E}XX−EX和Y−E一般将来时的用法YY−EYY - \mathrm{E}YY−EY看成两个向量的话,那rrrr刚好表示的是这两个向量夹角的余弦值,这也就解释了为什么rrrr的值域是[-1, 1]。
3.相关系数对变量的平移和缩放(线性变换)保持不变(Correlation is invariant to scaling and shift,不知道中文该如何准确表达,?)。比如Corr(X,Y)=Corr(aX+b,Y)Corr(X,Y)=Corr(aX+b,Y)\mathrm{Corr}(X, Y) = \mathrm{Corr}(aX + b, Y)Corr(X,Y)=Corr(aX+b,Y)恒成立。
决定系数(R方)
下面来说决定系数,R方一般用在回归模型用用于评估预测值和实际值的符合程度,R方的定义如下:
R2=1−FVU=1−RSSTSS=1−∑i(yi−fi)2∑i(yi−惊喜的英文单词yˆ)2R2=1−FVU=1−RSSTSS=1−∑i(yi−fi)2∑i(yi−y^)2R^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}R2=1−FVU=1−usually是什么意思TSSRSS=1−i∑(yi−y^)2i∑(yi−fi)2
上式中yyyy是实际值,ffff是预测值,yˆy^\hat{y}y^是实际值的平均值。FVUFVU\mathrm{FVU}FVU被称为fraction of variance unexplained,RSS叫做Residual sum of squares,TSS叫做Total sum of squares。根据R2R2R^2R2的定义,可以看到R2R
2R^2R2是有可能小于0的,所以R2R2R2R2不是rchatroulette comrrr的平方。一般地,R2R2R^2R2越接近1,表示回归分析中自变量对因变量的解释越好。
对于R2R2R^2R2可以通俗地理解为使用均值作为误差基准,看预测误差是否大于或者小于均值基准误差。
此外,我们做这样一个变形:R2=1−∑i(yi−fi)2/n∑i(yi−培训日语yˆ)2/n=1−RMSEVarR2=1−∑i(yi−fi)2/n∑i(yi−y^)2/n=1−RMSEVarR^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}}R2=1−i∑(yi−y^)2/ni∑(yi−fi)2/n=1−VarRMSE,可以看到变成了1减去均方根误差和方差的比值(有利于编程实现)。
另外有一个叫做Explained sum of squares,ESS=∑i(fi−yˆ)2ESS=∑i(fi−y^)2\mathrm{ESS} = \sum\limits_i(f_i - \hat{y})^2ESS=i∑(fi−y^)2
在一般地线性回归模型中,有ESS+RSS=TSSESS+RSS=TSS\mathrm{ESS} + \mathrm{RSS} = \mathrm{TSS}ESS+RSS=TSS(证明过程参见:Partitioning in the general ordinary least squares model)
在这种情况下:我们有R2=1−RSSTSS=ESSTSS=∑i(fi−yˆ)2∑i(yi−yˆ)2R2=1−RSSTSS=ESSTSS=∑i(fi−y^)2∑i(yi−y^)2R^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}R2=1−TSSRSS=TSSESS=i∑(yi−y^)2i∑(fi−y^)2
对于R2R2R^2R2我们需要注意:
1.R2R2R^2R2一般用在线性模型中(虽然非线性模型总也可以用),具体参见:Regression Analysis: How Do I Interpret R-squared and Asss the Goodness-of-Fit?
2.R2R2R^2R2不能完全反映模型预测能力的高低
最后,这篇文章《8 Tips for Interpreting R-Squared》里面指出了不错误解读R2R2R^2R2的地方,读完之后,我觉得以后还是少用R2R2R^2R2,对于模型的评估可以选择其它一些更适合的指标。
参考资料
[1]. The relationship between correlation and the coefficient of determination
[2]. Coefficient of determination
[3]. Explained sum of squares
[4]. Regression Analysis: How Do I Interpret R-squared and Asss the Goodness-of-Fit?
[5]. 8 Tips for Interpreting R-Squared