📜  线性相关系数公式(1)

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

线性相关系数公式

线性相关系数是衡量两个连续变量之间关系的一种方法。它的值在-1到1之间,我们可以使用线性相关系数来判断两个变量是否存在相关性、相关性的强度以及相关性的方向。

线性相关系数可以用多种公式来计算,本文将介绍两种常见的计算公式:Pearson相关系数和Spearman相关系数。

Pearson相关系数

Pearson相关系数,也称为皮尔逊相关系数,用于测量两个连续变量之间的线性关系。 Pearson相关系数的计算公式如下:

$r_{xy}= \frac {\sum(x_i - \overline{x})(y_i - \overline{y})}{\sqrt{\sum(x_i - \overline{x})^2 \sum(y_i - \overline{y})^2}}$

其中,$r_{xy}$为Pearson相关系数,$x_i$和$y_i$分别为样本$x$和$y$的第$i$个观测值,$\overline{x}$和$\overline{y}$分别为$x$和$y$的样本均值。

Pearson相关系数衡量的是两个变量之间的线性关系,因此只有在两个变量呈线性关系时才有意义。

Spearman相关系数

Spearman相关系数,也称为斯皮尔曼相关系数,用于测量两个变量之间的单调关系。 Spearman相关系数的计算公式如下:

$r_s = 1 - \frac{6\sum d_i^2}{n(n^2 - 1)}$

其中,$r_s$为Spearman相关系数,$d_i$为样本$x,y$在排序后的排名差,$n$为样本量。

Spearman相关系数适用于衡量两个变量之间的单调关系,但不要求两个变量之间是线性关系。

示例代码
Python

下面是在Python中使用scipy库计算Pearson相关系数和Spearman相关系数的示例代码:

import scipy.stats as stats

# 生成样本数据
x = [5,6,8,9,10]
y = [9,15,21,27,33]

# 计算Pearson相关系数
pearsonr, _ = stats.pearsonr(x, y)
print(f"Pearson相关系数: {pearsonr}")

# 计算Spearman相关系数
spearmanr, _ = stats.spearmanr(x, y)
print(f"Spearman相关系数: {spearmanr}")
R

下面是在R中使用cor()函数计算Pearson相关系数和Spearman相关系数的示例代码:

# 生成样本数据
x <- c(5,6,8,9,10)
y <- c(9,15,21,27,33)

# 计算Pearson相关系数
pearson_cor <- cor(x, y, method = "pearson")
print(paste("Pearson相关系数:", round(pearson_cor, 2)))

# 计算Spearman相关系数
spearman_cor <- cor(x, y, method = "spearman")
print(paste("Spearman相关系数:", round(spearman_cor, 2)))

以上代码运行后,会输出Pearson相关系数和Spearman相关系数的结果。