📜  计算皮尔逊的 r |计算图相关性 - Python (1)

📅  最后修改于: 2023-12-03 15:41:40.913000             🧑  作者: Mango

计算皮尔逊的 r | 计算图相关性 - Python

简介

本文介绍如何使用 Python 计算两个变量之间的皮尔逊相关系数 r,以及如何通过 r 判断两个变量之间的线性关系。

皮尔逊相关系数是一种用于衡量两个变量之间线性关系紧密程度的统计量。它的值在 -1 到 1 之间,值越接近 -1 或 1,表示两个变量之间的线性关系越强。若 r = 0,则表示两个变量之间无线性相关关系。这个值的正负号表示两个变量之间的线性关系是正相关还是负相关。

计算步骤

计算 r 的步骤如下:

  1. 计算每个变量的平均值。
  2. 计算每个变量的标准差。
  3. 对每个变量的数据除以其标准差,使每个变量的数据都标准化为其标准差单位下的值。
  4. 将每个标准化后的变量数据点相乘,并将结果对应相加。
  5. 将上一步骤的结果除以数据点总数减 1,即可得到皮尔逊相关系数 r。
  6. 在获取到 r 的值之后,可以通过 r 的大小和正负号来判断两个变量之间的线性关系。

下面的代码演示了如何用 Python 计算两个变量之间的皮尔逊相关系数 r。

import numpy as np

# 例子数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 6, 8, 10])

# 计算均值
mean_x = np.mean(x)
mean_y = np.mean(y)

# 计算标准差
std_x = np.std(x, ddof=1)  # 使用样本标准差,需将 ddof 设为 1
std_y = np.std(y, ddof=1)

# 标准化变量数据
x_std = (x - mean_x) / std_x
y_std = (y - mean_y) / std_y

# 计算 r
r = np.sum(x_std * y_std) / (len(x) - 1)

print('r =', r)

输出:

r = 1.0
结论

由于例子中的变量 y 是变量 x 的两倍,因此它们之间的线性关系是完全正相关的,r = 1.0。若 x 和 y 之间的线性关系不完全正相关,则 r 将会是 [-1,1] 之间的某个值。