Не могу смоделировать значения достаточно экстремально в Монте-Карло - PullRequest
0 голосов
/ 24 мая 2019

У меня есть биологический набор данных из 576 генов, представляющих интерес, и назначенных им функциональных категорий. У меня также есть назначенные функциональные категории для всех генов в геноме вида, с которым я работаю. Это позволяет мне настроить взвешенное, случайное рисование, где я могу выбрать 576 генов / функциональных назначений из генома и посмотреть, как распределены различные функциональные категории. Я повторил это 1 миллион раз, что кажется излишним; однако, для одной из моих категорий, я в настоящее время не могу имитировать такое же экстремальное значение, как в генах интереса.

Для обеспечения контекста, функциональная категория (давайте обозначим «А») представляет 14% генома и 28% интересующих генов. Наивысшее значение, которое я смоделировал, составляет 22,92% для категории A, а доверительный интервал 97,5% составляет 17,19%. Это доставляет мне проблемы, когда я начинаю вычислять р-значение, как я делаю это эмпирически, т. Е. (Количество значений, смоделированных для А, которые превышают значение А для интересующих генов) / (общее количество симуляций), поэтому мое значение р просто ноль.

len([i for i in probs_dict["A"] if i > target_per])/total_sims

Есть ли другой способ для вычисления p-значений здесь или для представления высокой степени перепредставления?

1 Ответ

0 голосов
/ 31 мая 2019

Может быть целесообразно добавить 1 к вашему числителю и номинатору. См. Например бумагу . Это предотвращает р = 0. Таким образом, ваша формулировка р-значения станет:

(1 + len([i for i in probs_dict["A"] if i > target_per]))/(1 + total_sims)
...