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

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

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

有人说相关系数(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}}$$

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

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

决定系数(R方)

下面来说决定系数,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$我们需要注意:

  1. $R^2$一般用在线性模型中(虽然非线性模型总也可以用),具体参见:Regression Analysis: How Do I Interpret R-squared and Assess the Goodness-of-Fit?

  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

[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

目录
相关文章
|
SQL 分布式计算 数据可视化
Tableau与大数据:可视化工具在大数据分析中的应用
【4月更文挑战第8天】Tableau是一款领先的数据可视化工具,擅长于大数据分析,提供广泛的数据连接器,支持多源整合。它与Hadoop、Spark等深度集成,实现高效大数据处理。Tableau的拖拽式界面和交互式分析功能使得非技术人员也能轻松探索数据。在实战中,Tableau用于业务监控、数据storytelling和自助式分析,推动数据民主化,提升决策效率。未来,Tableau将持续创新,扩展生态系统,并保障数据安全与合规性,助力企业最大化数据价值。
1029 0
|
并行计算 监控 算法
通过matlab对比music,mvdr以及tdoa三种定位算法的性能
通过matlab对比music,mvdr以及tdoa三种定位算法的性能
|
机器学习/深度学习 存储 数据中心
《深度揭秘:TPU张量计算架构如何重塑深度学习运算》
TPU(张量处理单元)是谷歌为应对深度学习模型计算需求而设计的专用硬件。其核心矩阵乘法单元(MXU)采用脉动阵列架构,显著提升矩阵运算效率;内存管理单元优化数据流通,减少瓶颈;控制单元协调系统运作,确保高效稳定。TPU在训练和推理速度、能耗方面表现出色,大幅缩短BERT等模型的训练时间,降低数据中心成本。尽管通用性和易用性仍有挑战,但TPU已为深度学习带来革命性变化,未来有望进一步优化。
1003 19
|
存储 数据可视化 atlas
maftools | 从头开始绘制发表级oncoplot(瀑布图)
maftools | 从头开始绘制发表级oncoplot(瀑布图)
751 0
|
SQL 存储 NoSQL
现代数据库技术的演进与未来趋势
随着信息时代的发展,数据库技术已经成为现代应用程序和系统的核心。本文探讨了数据库技术从传统到现代的演进历程,分析了当前流行的数据库类型及其特点,并展望了未来数据库技术的发展趋势。
|
监控 网络协议 Linux
在Linux中,如何排查网络连接问题?
在Linux中,如何排查网络连接问题?
如何把多个文件(夹)向上移动1层(或多层)(在批量复制前或后进行)
该文介绍了如何使用一个工具将四个文件夹内的所有文件合并到另一个文件夹中。工具可以从百度网盘或蓝奏云下载,提取码分别为qwu2和2r1z。操作步骤包括:打开工具,选择文件批量复制,设置源路径上移,确定设置后将文件夹拖入,导入文件,移除不需要的文件夹路径,最后执行移动操作。移动过程中会删除空文件夹,并在回收站中可见。
|
开发者 Python
【Python】已解决:(pandas read_excel 读取Excel报错)ImportError: Pandas requires version ‘2.0.1’ or newer of ‘x
【Python】已解决:(pandas read_excel 读取Excel报错)ImportError: Pandas requires version ‘2.0.1’ or newer of ‘x
1102 0
|
存储 机器学习/深度学习 算法
10个大型语言模型(LLM)常见面试问题和答案解析
今天我们来总结以下大型语言模型面试中常问的问题
974 0

热门文章

最新文章