ti-enxame.com

Teste hipergeométrico (phyper)

Eu tenho uma pergunta sobre o teste hipergeométrico.

Eu tenho dados como este:

tamanho pop: 5260
tamanho da amostra: 131
Número de itens no pop classificados como sucessos: 1998
Número de itens na amostra classificados como sucessos: 62

Para calcular um teste hipergeométrico, isso está correto?

phyper(62, 1998, 5260, 131)
22
Nicolas Rosewick

Quase correto. Se você olhar para ?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.

Então, usando seus dados:

phyper(62,1998,5260-1998,131)
[1] 0.989247
22
James

Eu acho que você deseja calcular o valor p. Nesse caso, você quer

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

Então você quer

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

Observe que -1 lá nos primeiros parâmetros. E também é preciso subtrair isso de 1,0 para obter a área da cauda direita.

Corrija-me se eu estiver errado..

18
Albert

@Albert,

Para calcular um teste hipergeométrico, você obtém o mesmo valor p, P (observado 62 ou mais), usando:

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

Porque:

lower.tail: logical; if TRUE (default), probabilities are P[X <= x], 
            otherwise, P[X > x]
8
Frédéric Bigey

Eu acho que esse teste deve ser o seguinte:

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

Então a soma de todas as linhas será igual à soma de todas as colunas. Isso é importante ao lidar com tabelas de contingência.

0
user5531047