pandas 如何在python中执行p值调整(Mann-Whitney U检验)

s5a0g9ez  于 2023-11-15  发布在  Python
关注(0)|答案(1)|浏览(137)

我有两个一维的值列表。我需要对它们执行Mann-Whitney U检验(Mann-Whitney-Wilcoxon)。这是我在python中的工作流程:

import pandas

from scipy.stats import mannwhitneyu 

mannwhitneyu(x, y)

字符串
这给了我p值。我的问题是,我不知道如何执行BH(Benjamini & Hochberg)调整我的p值。我还没有在scipy. org上找到有关它的信息。如果使用此命令无法进行调整,请重新给我另一种方法来执行我的测试在PYTHON3(不是R

6vl6ewon

6vl6ewon1#

从SciPy 1.11.0开始,您可以将mannwhitneyu返回的p值数组传递给scipy.stats.false_discovery_control

from scipy import stats
import numpy as np
rng = np.random.default_rng(4755221886788)
x = rng.random(size=(4, 5))
y = rng.random(size=(4, 6))
res = stats.mannwhitneyu(x, y, axis=1)
res.pvalue
# array([0.32900433, 0.01731602, 0.12554113, 0.42857143])

stats.false_discovery_control(res.pvalue)
# array([0.42857143, 0.06926407, 0.25108225, 0.42857143])

字符串
Benjamini-Hochberg的默认值为method='bh',Benjaminini-Yekutieli的默认值为method='by'

相关问题