在 scipy.stats 中实现 3 个变量的皮尔逊相关系数

问题描述

为了了解变量之间的关联,我想实施 Pearson 相关系数检验。虽然我知道如何在 Pandas 中为三个变量做这件事,但我不知道如何在 scipy.stats 中做到这一点。由于我也想知道这些相关性的 P 值,所以 scipy.stats 是我最好的解决方案。任何人都可以帮助我如何在 scipy 中实现 3 个变量的人员相关系数。

解决方法

您可以使用 itertools.combinations 生成 3 对来计算以下各项的相关性:

from itertools import combinations
import scipy.stats

list_of_vars = [array_1,array_2,array_3]
results = [scipy.stats.pearsonr(*pair) for pair in combinations(list_of_vars,2)]

results 将是 (r,p_value) 的 2 元组列表,例如:

[(0.3488605505012684,0.7731373652607254),# for <array_1,array_2>
 (-0.7590110031075414,0.45136569429566353),array_3>
 (0.3453846068421791,0.7754969404436115)]      # for <array_2,array_3>