Тест Scipy fisher_exact занимает очень много времени - PullRequest
0 голосов
/ 06 сентября 2018

Я использую scipy версию 1.0.0.

import scipy as sp
x = [[5829225, 5692693], [5760959, 5760959]]
sp.stats.fisher_exact(x)

Для значений выше scipy ничего не возвращает, но ждет. Что может быть причиной этого? Как я могу это исправить?

Однако в R он возвращает значение p почти сразу.

a = matrix(c(5829225,5692693,5760959,5760959), nrow=2)
fisher.test(a)

1 Ответ

0 голосов
/ 06 сентября 2018

Из заметок в документации :

Расчетный коэффициент шансов отличается от того, который использует R. Эта реализация scipy возвращает (более распространенную) «безусловную оценку максимального правдоподобия», тогда как R использует «условную оценку максимального правдоподобия».

Для таблиц с большими числами также может использоваться (неточный) критерий хи-квадрат, реализованный в функции chi2_contingency .

(Акцент мой)

Как упоминалось в комментарии DSM, оно, вероятно, просто очень медленно для ваших больших значений. А так как примечания вызывают большие значения, вы можете попробовать альтернативу, которую они предлагают:

>>> chi2, p, dof, expected = sp.stats.chi2_contingency(x)
>>> p
6.140729432506709e-178
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...