Гипергеометрический тест (фипер) - PullRequest
22 голосов
/ 05 декабря 2011

У меня вопрос по поводу гипергеометрического теста.

У меня есть такие данные:

размер pop: 5260
размер образца: 131
Количество предметов в поп, которые классифицируются как успехи: 1998
Количество элементов в выборке, которые классифицированы как успешные: 62

Для вычисления гипергеометрического теста это правильно?

phyper(62, 1998, 5260, 131)

Ответы [ 4 ]

22 голосов
/ 05 декабря 2011

Почти правильно. Если вы посмотрите на ?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
18 голосов
/ 10 сентября 2012

Я думаю, что вы хотите вычислить p-значение. В этом случае вы хотите

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

Так хочешь

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

Обратите внимание, что -1 есть в первых параметрах. А также вам нужно вычесть это из 1,0, чтобы получить область правого хвоста.

Поправь меня, если я ошибаюсь ..

8 голосов
/ 28 мая 2014

@ Альберт,

Чтобы вычислить гипергеометрический тест, вы получите такое же значение 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 голосов
/ 05 ноября 2015

Я думаю, что этот тест должен выглядеть следующим образом:

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

Тогда сумма всех строк будет равна сумме всех столбцов.Это важно при работе с таблицами непредвиденных обстоятельств.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...