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

implementing pearson's correlation coefficient for 3 variables in scipy.stats

为了了解变量之间的关联,我想实施 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) 的二元组列表,例如:

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