相关系数r和决定系数R2的那些事

Posted 卡尔曼和玻尔兹曼谁曼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了相关系数r和决定系数R2的那些事相关的知识,希望对你有一定的参考价值。

文章目录

相关系数 r r r和决定系数 R 2 R^2 R2的那些事

有人说相关系数(correlation coefficient, r r r)和决定系数(coefficient of determination, R 2 R^2 R2,读作R-Squared)都是评价两个变量相关性的指标,且相关系数的平方就是决定系数?这种说法对不对呢?请听下文分解!

协方差与相关系数

要说相关系数,我们先来聊聊协方差。在之前的博文《使用Python计算方差协方差相关系数》中提到协方差是计算两个随机变量 X X X Y Y Y 之间的相关性的指标,定义如下:

C o v ( X , Y ) = E [ ( X − E X ) ( Y − E Y ) ] \\mathrmCov(X, Y) = \\mathrmE[(X - \\mathrmEX)(Y - \\mathrmEY)] Cov(X,Y)=E[(XEX)(YEY)]

但是协方差有一个确定:它的值会随着变量量纲的变化而变化(covariance is not scale invariant),所以,这才提出了相关系数的概念:

r = C o r r ( X , Y ) = C o v ( X , Y ) σ X ⋅ σ Y = E [ ( X − E X ) ( Y − E Y ) ] E [ X − E X ] 2 E [ Y − E Y ] 2 r = \\mathrmCorr(X, Y) = \\fracCov(X, Y)\\sigma_X \\cdot \\sigma_Y = \\frac\\mathrmE[(X - \\mathrmEX)(Y - \\mathrmEY)]\\sqrt\\mathrmE[X - \\mathrmEX]^2\\sqrt\\mathrmE[Y - \\mathrmEY]^2 r=Corr(X,Y)=σXσYCov(X,Y)=E[XEX]2 E[YEY]2 E[(XEX)(YEY)]

对于相关系数,我们需要注意:

  1. 相关系数是用于描述两个变量线性相关程度的,如果 r &gt; 0 r \\gt 0 r>0,呈正相关;如果 r = 0 r = 0 r=0,不相关;如果 r &lt; 0 r \\lt 0 r<0,呈负相关。
  2. 如果我们将 X − E X X - \\mathrmEX XEX Y − E Y Y - \\mathrmEY YEY看成两个向量的话,那 r r r刚好表示的是这两个向量夹角的余弦值,这也就解释了为什么 r r r的值域是[-1, 1]。
  3. 相关系数对变量的平移和缩放(线性变换)保持不变(Correlation is invariant to scaling and shift,不知道中文该如何准确表达,?)。比如 C o r r ( X , Y ) = C o r r ( a X + b , Y ) \\mathrmCorr(X, Y) = \\mathrmCorr(aX + b, Y) Corr(X,Y)=Corr(aX+b,Y)恒成立。

决定系数(R方)

下面来说决定系数,R方一般用在回归模型用用于评估预测值和实际值的符合程度,R方的定义如下:

R 2 = 1 − F V U = 1 − R S S T S S = 1 − ∑ i ( y i − f i ) 2 ∑ i ( y i − y ^ ) 2 R^2 = 1 - \\mathrmFVU = 1 - \\frac\\mathrmRSS\\mathrmTSS = 1 - \\frac\\sum\\limits_i(y_i - f_i)^2\\sum\\limits_i(y_i - \\haty)^2 R2=1FVU=1TSSRSS=1i(yiy^)2i(yifi)2

上式中 y y y是实际值, f f f是预测值, y ^ \\haty y^是实际值的平均值。 F V U \\mathrmFVU FVU被称为fraction of variance unexplained,RSS叫做Residual sum of squares,TSS叫做Total sum of squares。根据 R 2 R^2 R2的定义,可以看到 R 2 R^2 R2是有可能小于0的,所以 R 2 R2 R2不是 r r r的平方。一般地, R 2 R^2 R2越接近1,表示回归分析中自变量对因变量的解释越好。

对于 R 2 R^2 R2可以通俗地理解为使用均值作为误差基准,看预测误差是否大于或者小于均值基准误差。

此外,我们做这样一个变形: R 2 = 1 − ∑ i ( y i − f i ) 2 / n ∑ i ( y i − y ^ ) 2 / n = 1 − R M S E V a r R^2 = 1 - \\frac\\sum\\limits_i(y_i - f_i)^2 / n\\sum\\limits_i(y_i - \\haty)^2 / n = 1 - \\frac\\mathrmRMSE\\mathrmVar R2=1i(yiy^)2/ni(yifi)2/n=1VarRMSE,可以看到变成了1减去均方根误差和方差的比值(有利于编程实现)。

另外有一个叫做Explained sum of squares, E S S = ∑ i ( f i − y ^ ) 2 \\mathrmESS = \\sum\\limits_i(f_i - \\haty)^2 ESS=i(fiy^)2

在一般地线性回归模型中,有 E S S + R S S = T S S \\mathrmESS + \\mathrmRSS = \\mathrmTSS ESS+RSS=TSS(证明过程参见:Partitioning in the general ordinary least squares model

在这种情况下:我们有 R 2 = 1 − R S S T S S = E S S T S S = ∑ i ( f i − y ^ ) 2 ∑ i ( y i − y ^ ) 2 R^2 = 1 - \\frac\\mathrmRSS\\mathrmTSS = \\frac\\mathrmESS\\mathrmTSS = \\frac\\sum\\limits_i(f_i - \\haty)^2\\sum\\limits_i(y_i - \\haty)^2 R回归分析的判定系数等于1是啥原因

什么是决定系数?

决定系数啥意思?

拟合曲线时,R2值为负值表示啥意思

使用 numpy 和 sklearn 计算 R^2(确定系数)给出不同的结果

如何计算两变量的相关系数r?