你好,我看到有人计算Venn图重叠p值的方法如下。他们使用超几何分布和R语言。当我在R中应用他们的函数时,我无法得到相同的结果。有人能帮我吗?
我在别人的出版物中看到的示例:
从15220个基因中,集合A包含1850+195个基因,集合B包含195+596个基因,重叠了195个基因。他们的p值为2e-26。
他们的方法是:给定总共N个基因,如果基因集A和B分别包含m和n个基因,并且其中k个基因是共同的,则富集的p值通过以下方式计算:
p = Σ (m,i)(N-m,n-i)/(N,n)
对于 i
从 k
到 min(m,n)
的情况,其中 "(m,i)
" 表示二项式形式。
我使用 R 的方式是:
sum(choose(596+195,195:(195+596))*choose(15220-596-195,(1850+195)-195:(195+596)))/choose(15220,1850+195)
。
结果为 NaN
。
或者使用:phyper(195,1850+195,15220-1850-195,596+195)
,结果为 1。
我还参考了链接http://www.pangloss.com/wiki/VennSignificance,但当我在 R 中计算
1 - phyper(448,1000,13800,2872)
时,得到的结果是 0,而不是链接中的 1.906314e-81。
我对 R 和统计学完全陌生,抱歉在这里发帖犯了许多错误。