2011-12-05 50 views
19

我有一個大約在R.R:超幾何測試(phyper)

超幾何測試

問題我已經數據是這樣的:

彈出大小:5260
試樣尺寸:131
數在彈出的項目被分類爲成功的:1998年
樣品中的項目被分類爲成功的數量:62

爲了計算超幾何測試,是正確的:

phyper(62,1998,5260,131) 
+0

http://ygc.name/2012/04/28/enrichment-analysis/ – 2012-05-07 09:15:08

+0

相關文章:[計算RNA seq和ChIP芯片數據集之間基因列表重疊的概率] stats.stackexchange.com/a/16259/6454) – zx8754

回答

20

幾乎正確。如果你看看?phyper

phyper(q, m, n, k, lower.tail = TRUE, log.p = FALSE)

x, q vector of quantiles representing the number of white balls drawn without replacement from an urn which contains both black and white balls.

m the number of white balls in the urn.

n the number of black balls in the urn.

k the number of balls drawn from the urn.

因此,使用您的數據:

phyper(62,1998,5260-1998,131) 
[1] 0.989247 
+0

它不是phyper(** 61 **,1998,5260-1998,131)? –

+0

@NicoBxl不,62是樣本權利的成功數量? – James

+0

是的,它是62.但我讀了一個地方,我必須減去一個(幻燈片20) –

17

我想你想計算p值。在這種情況下,你想

P(Observed 62 or more) = 1-P(Observed less than 62). 

所以,你要

1.0-phyper(62-1, 1998, 5260-1998, 131) 

注意-1那裏的第一參數。而且你還需要從1.0中減去右邊尾部的區域。

糾正我,如果我錯了..

+5

OP是否想要右邊或左邊的尾巴將取決於測試中替代假設的方向,這在問題中沒有明確說明。因此,它可以是。 – joran

-1

關於-1。我一直在計算R中的P值,並且事實上如果你想獲得可以通過分析計算的值,那就是你必須要做的,

所以,確實phyper(61,1998,5260- 1998,131),選擇那些q是等於或大於62

馬亭惠能

7

@Albert的P,

爲了計算超幾何測試,則獲得相同的p值,P(62觀察到或更多)使用:

> phyper(62-1, 1998, 5260-1998, 131, lower.tail=FALSE)` 
[1] 0.01697598 

因爲:

lower.tail: logical; if TRUE (default), probabilities are P[X <= x], 
      otherwise, P[X > x] 
+0

Meng關於phyper和fisher.test的註釋(它們做了同樣的事情,但界面非常不同)也很有用:http://mengnote.blogspot.qa/2012/12/calculate-correct-hypergeometric-p。 HTML – Adi

0

我覺得這個測試是應該像下面:

phyper(62,1998,5260-1998,131-62,lower.tail=FALSE) 

然後,所有行的總和將等於所有列的總和。 這在處理應急表格時很重要。