如何仅用三个输入值通过phyper完成超几何检验的显著性判断
R中用
phyper计算集合重叠显著性的方法 参数对应规则
超几何检验需要4个输入参数,仅使用你提供的3个数值时,默认将两个集合的并集作为总背景(总大小为 488 + 312 - 16 = 784),参数映射如下:
q:观测重叠数调整值,检验重叠是否显著高于随机时取重叠数-1,检验是否显著低于随机时取重叠数m:集合A的总数量,对应值为488n:总背景中不属于集合A的数量,对应值为总背景大小 - 488 = 296k:集合B的总数量,对应值为312
计算代码
# 输入赋值 overlap_num <- 16 setA_size <- 488 setB_size <- 312 # 计算总背景(两集合并集) bg_total <- setA_size + setB_size - overlap_num # 检验重叠是否显著高于随机水平的单侧p值 p_higher <- phyper(q = overlap_num - 1, m = setA_size, n = bg_total - setA_size, k = setB_size, lower.tail = FALSE) # 检验重叠是否显著低于随机水平的单侧p值 p_lower <- phyper(q = overlap_num, m = setA_size, n = bg_total - setA_size, k = setB_size, lower.tail = TRUE)
结果说明
按你给出的数值计算,随机从并集中抽取312个元素时,预期与集合A的重叠数约为194,因此16的重叠属于显著低于随机水平(p_lower 近似为0),无证据表明重叠高于随机水平。
注意:如果你的两个集合是从远大于并集的外部总背景中独立抽取的(比如全基因组范围筛选的差异基因集),则必须补充外部总背景的大小才能完成准确检验,仅用当前3个数值无法计算。
内容的提问来源于stack exchange,提问作者Apex
相关产品推荐
相关产品推荐

