8.1 相关性分析
相关性分析是一种统计方法,用于评估两个或多个变量之间的关系或相关性。它可以帮助我们了解变量之间的相关程度,即一个变量如何随着另一个变量的变化而变化。
1. 两个变量之间的相关系数¶
我们先考虑下两个连续变量之间的统计关系。

Pearson相关系数是用于衡量两个连续变量之间线性相关程度的统计指标。它通常用于评估两个变量之间的线性关系,即当一个变量增加时,另一个变量是否也随之增加或减少。Pearson相关系数的取值范围在-1到1之间,其具体计算公式如下:
其中:
表示Pearson相关系数;
和 分别表示第 个样本的两个变量的取值;
和 分别表示两个变量的样本均值;
$ n ) 表示样本数量。
Pearson相关系数的解释如下:
当 时,表示两个变量完全正相关,即随着一个变量的增加,另一个变量也呈现增加的趋势。
当 时,表示两个变量完全负相关,即随着一个变量的增加,另一个变量呈现减少的趋势。
当 时,表示两个变量之间不存在线性关系。
需要注意的是,Pearson相关系数只能衡量线性相关性,对于非线性关系或者异常值敏感的情况,可能不适合使用Pearson相关系数。在这种情况下,可以考虑使用Spearman相关系数或者Kendall Tau相关系数等非参数方法。
2. 相关性系数的实现¶
2.1 numpy库计算Pearson相关系数¶
import numpy as np
# 定义两个变量的样本数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 3, 4, 5, 6])
# 计算Pearson相关系数
r = np.corrcoef(x, y)[0, 1]
print("Pearson相关系数:", r)
Pearson相关系数: 0.9999999999999999
2.2 scipy库计算Pearson相关系数¶
调用scipy.stats.pearsonr计算相关系数:
import scipy.stats as stats
r = stats.pearsonr(x, y)
r.correlation1.02.3 Pandas库计算Pearson相关系数¶
也可以使用pd.DataFrame.corr()来计算相关系数矩阵:
import pandas as pd
df = pd.DataFrame()
df['x'] = x
df['y'] = y
df.corr(method='pearson') # 计算相关系数矩阵Loading...