📅  最后修改于: 2023-12-03 15:27:33.116000             🧑  作者: Mango
线性相关系数是衡量两个连续变量之间关系的一种方法。它的值在-1到1之间,我们可以使用线性相关系数来判断两个变量是否存在相关性、相关性的强度以及相关性的方向。
线性相关系数可以用多种公式来计算,本文将介绍两种常见的计算公式:Pearson相关系数和Spearman相关系数。
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相关系数的计算公式如下:
$r_s = 1 - \frac{6\sum d_i^2}{n(n^2 - 1)}$
其中,$r_s$为Spearman相关系数,$d_i$为样本$x,y$在排序后的排名差,$n$为样本量。
Spearman相关系数适用于衡量两个变量之间的单调关系,但不要求两个变量之间是线性关系。
下面是在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中使用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相关系数的结果。