在 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>
为了了解变量之间的关联,我想实施 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>