跳至主要内容

理解协方差:入门指南

了解协方差如何揭示变量之间的关系。学习如何在统计、金融和机器学习中计算与解读协方差。
· 5分钟 阅读

使用 AI 探索

协方差在统计学中起着关键作用,它揭示了两个变量彼此之间如何变化。它是相关系数、主成分分析以及回归等概念的核心。

在本指南中,您将了解协方差的含义、如何计算它,以及它的应用场景,从金融建模到机器学习。

由于协方差只是需要掌握的一个重要概念,请务必报名我们的 Statistics Fundamentals in Python 技能路径和/或 Introduction to Statistics in R 课程,继续深入学习。

什么是协方差?

协方差是一种基础统计函数,用于衡量两个变量,x 和 y,如何共同变化。如果两个变量倾向于同时增加或同时减少,协方差为正;如果一个增加而另一个减少,协方差为负。

对于两个随机变量 X 和 Y,协方差的数学定义是:

总体协方差公式

其中 𝜇x 和 𝜇y 分别是 X 和 Y 的均值。

对于样本量为 n 的样本,样本协方差计算为:

样本协方差公式

其中 x̅ 和 ȳ 分别是 x 和 y 的样本均值。

用 μ(mu)表示总体均值、用 x̅ 表示样本均值,是一种用于区分二者的惯例。

为什么协方差很重要

理解协方差有助于您分析两个变量之间的关系。在金融领域,协方差用于评估两只股票的联动性。在数据科学中,协方差是 PCA 等技术的基础,用于降低数据集的维度。它也支撑着回归分析,在建模变量之间的线性关系时,理解变量如何共同变化非常重要。

简而言之,协方差能够提供关于:1)变量之间线性关系的方向;2)关系的强弱(但未标准化);以及 3)计算相关系数的基础。

手工计算协方差

来练习一下。要手工计算样本协方差,请按以下步骤进行:

  1. 求出每个变量的均值。
  2. 用各自数值减去均值,得到偏差。
  3. 将对应配对的偏差相乘。
  4. 将这些乘积求和。
  5. 用 n − 1 相除,得到样本协方差。

例如,给定两个变量:

  • x:2、4、6
  • y:5、9、13

求出每个变量的均值

首先,计算均值:

计算 x 的均值以帮助求协方差

计算 y 的均值以帮助求协方差

用各自数值减去均值,得到偏差

接下来,计算与均值的偏差。我创建了一张表格来展示其过程。请注意在表格右侧,每个数据点分别减去了 4 或 9。

各数据点相对于均值的偏差表

将对应配对的偏差相乘

现在,将每一对的偏差相乘:

将每一对的偏差相乘

将乘积求和

然后,将乘积求和:8 + 0 + 8 = 16

通过对乘积求和来求协方差

用 n − 1 相除得到样本协方差

最后,我们用 n − 1 相除,得到样本协方差。

基于我们的数据计算样本协方差

我们可以这样写出答案:

协方差公式的答案

在 Python 和 R 中计算协方差

您可能希望在编程环境中计算协方差。下面我将展示如何在 Python 和 R 中实现,先从 Python 开始。

Python 中的协方差

您可以使用 NumPy 在 Python 中计算协方差。

要使用 NumPy 的 cov() 函数,先导入 NumPy 并定义数据:

import numpy as np

x = np.array([2, 4, 6])
y = np.array([5, 9, 13])

cov_matrix = np.cov(x, y, ddof=1)
print(cov_matrix)

输出的是一个协方差矩阵:

[[4. 8.]
 [8. 16.]]

我们可以看到,这两个变量之间的协方差为 8,与我们手工计算的结果一致。

R 中的协方差

您可以使用 R 内置的 cov() 函数计算协方差。

首先定义数据向量并将其传给 cov():

x <- c(2, 4, 6)
y <- c(5, 9, 13)

cov_matrix <- cov(cbind(x, y))
print(cov_matrix)

输出的是一个协方差矩阵:

  x  y
x 4  8
y 8 16

这两个变量之间的协方差为 8,与 Python 示例相同。

解读协方差矩阵

协方差矩阵汇总了多个变量之间的成对协方差。我们刚刚在 Python 和 R 中看到的输出就是一个协方差矩阵,尽管它很小(2×2)。

让我们尝试一个更大的例子。对于三个变量 x、y 和 z,协方差矩阵为:

该矩阵是对称的,对角线元素是各变量的方差。(这是因为变量与自身的协方差就是方差。)

协方差 vs. 相关系数

协方差衡量的是两个变量关系的方向,但其结果未标准化。相关系数则将协方差标准化到 −1 与 1 之间,更便于解读关系的强弱。

相关系数有多种公式,其中一种是:

与相关系数有关的协方差公式

其中:

  • Cov⁡(x,y) 是变量 x 与 y 的协方差
  • σx(读作“西格玛”)是 x 的标准差
  • σy 是 y 的标准差

还需了解的其他事项

在使用协方差时,请注意以下常见问题:

  • 协方差对变量的量纲(尺度)敏感。较大的数值会放大结果。
  • 协方差无法以标准化的方式表示关系强度。
  • 异常值可能会显著影响协方差的计算。

为获得更清晰的解读,请始终考虑对数据进行标准化,或使用相关系数。

结论

协方差是理解变量如何共同变化的必备统计工具。要真正理解数据关系,您需要掌握协方差。如果您对其中某些方面仍感到不清楚,不必担心——我们有合适的资源来帮助您,欢迎立即报名:

Josef Waples

作者

Josef Waples

我是数据科学编辑,曾为科学期刊发表的研究论文撰稿。我的兴趣领域包括线性代数、统计学、R 等相关主题。

协方差常见问答

协方差为 0 表示什么?

这意味着两个变量没有线性关系,但它们仍可能以非线性的方式相互依赖。

协方差在金融中如何使用?

它有助于评估两种资产的联动性,并用于投资组合优化和风险管理。

协方差与相关系数有什么区别?

协方差体现方向,相关系数在 −1 到 1 的范围内标准化后,既体现方向也体现强度。

协方差可以为负吗?

是的,负协方差表示反向关系。

协方差会受单位影响吗?

是的,与相关系数不同,协方差保留单位(例如:厘米-年)。

主题