2011-12-05 6 views
19

Ho una domanda sul test ipergeometrica in R.R: Test ipergeometrica (phyper)

ho dati in questo modo:

dimensione pop: 5260
dimensioni del campione: 131
Numero di elementi della pop che sono classificati come successi: 1998
Numero di elementi del campione che sono classificati come successi: 62

Per calcolare un test ipergeometrica, è quella giusta:

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

http://ygc.name/2012/04/28/enrichment-analysis/ –

+0

Post pertinente: [Calcolo della probabilità di sovrapposizione dell'elenco di geni tra un seq RNA e un set di dati ChIP-chip] (http: // stats.stackexchange.com/a/16259/6454) – zx8754

risposta

20

Quasi corretto. Se si guarda alla ?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.

Quindi, utilizzando i dati:

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

Non è phyper (** 61 **, 1998,5260-1998,131)? –

+0

@NicoBxl No, 62 è il numero di successi nel campione giusto? – James

+0

sì è 62. Ma ho letto da qualche parte che devo sottrarre uno (diapositiva 20) –

17

Penso che si desidera calcolare p-value. In questo caso, si vuole

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

Così si vuole

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

noti che -1 lì nei primi parametri. E inoltre devi sottrarre quello da 1,0 per ottenere l'area della coda giusta.

Correggetemi se sbaglio ..

+5

Se l'OP vuole che la coda destra o sinistra dipenda dalla direzione dell'ipotesi alternativa nel test , che non è chiaramente indicato nella domanda. Quindi potrebbe essere entrambi. – joran

-1

per quanto riguarda il -1.Ho giocato con il calcolo del valore P in R, e in effetti se si desidera ottenere il valore che è possibile calcolare analiticamente, questo è quello che devi fare,

così, in effetti phyper (61,1998,5260- 1998,131) per la P che q è uguale o maggiore di 62

Martijn Huynen

7

@Albert,

per calcolare un test ipergeometrica, si ottiene lo stesso valore p, P (62 osservata o più), utilizzando:

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

Poiché:

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

Anche le note di Meng su phyper e fisher.test (che fanno la stessa cosa, ma hanno un'interfaccia molto diversa) sono molto utili: http://mengnote.blogspot.qa/2012/12/calculate-correct-hypergeometric-p. html – Adi

0

ritengo questo test essere dovrebbe essere come segue:

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

Poi la somma di tutte le righe sarà uguale alla somma di tutte le colonne. Questo è importante quando si tratta di tabelle di contingenza.

Problemi correlati