版权声明:本文为博主原创文章,转载请注明原文出处! https://blog.csdn.net/T_27080901/article/details/85991138
相关系数
r
r
r 和决定系数
R
2
R^2
R 2 的那些事
有人说相关系数(correlation coefficient,
r
r
r )和决定系数(coefficient of determination,
R
2
R^2
R 2 ,读作R-Squared)都是评价两个变量相关性的指标,且相关系数的平方就是决定系数?这种说法对不对呢?请听下文分解!
协方差与相关系数
要说相关系数,我们先来聊聊协方差。在之前的博文《使用Python计算方差协方差相关系数 》中提到协方差是计算两个随机变量
X
X
X 和
Y
Y
Y 之间的相关性的指标,定义如下:
C
o
v
(
X
,
Y
)
=
E
[
(
X
−
E
X
)
(
Y
−
E
Y
)
]
\mathrm{Cov}(X, Y) = \mathrm{E}[(X - \mathrm{E}X)(Y - \mathrm{E}Y)]
C o v ( X , Y ) = E [ ( X − E X ) ( Y − E Y ) ]
但是协方差有一个确定:它的值会随着变量量纲的变化而变化(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 = \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 = C o r r ( X , Y ) = σ X ⋅ σ Y C o v ( X , Y ) = E [ X − E X ] 2
E [ Y − E Y ] 2
E [ ( X − E X ) ( Y − E Y ) ]
对于相关系数,我们需要注意:
相关系数是用于描述两个变量线性 相关程度的,如果
r
>
0
r \gt 0
r > 0 ,呈正相关;如果
r
=
0
r = 0
r = 0 ,不相关;如果
r
<
0
r \lt 0
r < 0 ,呈负相关。
如果我们将
X
−
E
X
X - \mathrm{E}X
X − E X 和
Y
−
E
Y
Y - \mathrm{E}Y
Y − E Y 看成两个向量的话,那
r
r
r 刚好表示的是这两个向量夹角的余弦值,这也就解释了为什么
r
r
r 的值域是[-1, 1]。
相关系数对变量的平移和缩放(线性变换)保持不变(Correlation is invariant to scaling and shift,不知道中文该如何准确表达,😅)。比如
C
o
r
r
(
X
,
Y
)
=
C
o
r
r
(
a
X
+
b
,
Y
)
\mathrm{Corr}(X, Y) = \mathrm{Corr}(aX + b, Y)
C o r r ( X , Y ) = C o r r ( a X + 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 - \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}
R 2 = 1 − F V U = 1 − T S S R S S = 1 − i ∑ ( y i − y ^ ) 2 i ∑ ( y i − f i ) 2
上式中
y
y
y 是实际值,
f
f
f 是预测值,
y
^
\hat{y}
y ^ 是实际值的平均值。
F
V
U
\mathrm{FVU}
F V U 被称为fraction of variance unexplained,RSS叫做Residual sum of squares,TSS叫做Total sum of squares。根据
R
2
R^2
R 2 的定义,可以看到
R
2
R^2
R 2 是有可能小于0的,所以
R
2
R2
R 2 不是
r
r
r 的平方。一般地,
R
2
R^2
R 2 越接近1,表示回归分析中自变量对因变量的解释越好。
对于
R
2
R^2
R 2 可以通俗地理解为使用均值作为误差基准,看预测误差是否大于或者小于均值基准误差。
此外,我们做这样一个变形:
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 - \hat{y})^2 / n} = 1 - \frac{\mathrm{RMSE}}{\mathrm{Var}}
R 2 = 1 − i ∑ ( y i − y ^ ) 2 / n i ∑ ( y i − f i ) 2 / n = 1 − V a r R M S E ,可以看到变成了1减去均方根误差和方差的比值(有利于编程实现)。
另外有一个叫做Explained sum of squares,
E
S
S
=
∑
i
(
f
i
−
y
^
)
2
\mathrm{ESS} = \sum\limits_i(f_i - \hat{y})^2
E S S = i ∑ ( f i − y ^ ) 2
在一般地线性回归模型中,有
E
S
S
+
R
S
S
=
T
S
S
\mathrm{ESS} + \mathrm{RSS} = \mathrm{TSS}
E S S + R S S = T S S (证明过程参见: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{\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 = 1 − T S S R S S = T S S E S S = i ∑ ( y i − y ^ ) 2 i ∑ ( f i − y ^ ) 2
对于
R
2
R^2
R 2 我们需要注意:
R
2
R^2
R 2 一般用在线性模型中(虽然非线性模型总也可以用),具体参见:Regression Analysis: How Do I Interpret R-squared and Assess the Goodness-of-Fit?
R
2
R^2
R 2 不能完全反映模型预测能力的高低
最后,这篇文章《8 Tips for Interpreting R-Squared 》里面指出了不错误解读
R
2
R^2
R 2 的地方,读完之后,我觉得以后还是少用
R
2
R^2
R 2 ,对于模型的评估可以选择其它一些更适合的指标。
参考资料
[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 Assess the Goodness-of-Fit?
[5]. 8 Tips for Interpreting R-Squared