Я нашел эту проблему с t-критериями и chi-squared в R, но я полагаю, что эта проблема обычно относится к другим тестам. Если я это сделаю:
a <- 1:10
b <- 100:110
t.test(a,b)
Получаю: t = -64.6472, df = 18.998, p-value < 2.2e-16
. Я знаю из комментариев, что 2.2e-16
- это значение .Machine$double.eps
- наименьшее число с плавающей запятой, такое, что 1 + x != 1
, но, конечно, R может представлять числа, намного меньшие, чем это. Я также знаю из R FAQ, что R должен округлять поплавки до 53 двоичных цифр: R FAQ.
Несколько вопросов: (1) Правильно ли я читаю, что как 53 двоичных цифр точности или значения в R < .Machine$double.eps
не рассчитаны точно? (2) Почему при выполнении таких вычислений R не предоставляет средства для отображения меньшего значения для p-значения даже при некоторой потере точности? (3) Есть ли способ показать меньшее значение p, даже если я потеряю некоторую точность? Для одного теста 2 десятичных значащих цифры будут хорошими, для значений, которые я собираюсь внести в Bonferroni, мне нужно больше. Когда я говорю "потерять некоторую точность", я думаю, 53 двоичных разряда, но (4) я полностью ошибаюсь, и любое значение p < .Machine$double.eps
дико неточно? (5) Является ли R просто честным, а другие пакеты статистики не являются?
В моей области очень маленькие значения p являются нормой, некоторые примеры: http://www.ncbi.nlm.nih.gov/pubmed/20154341, http://www.plosgenetics.org/article/info%3Adoi%2F10.1371%2Fjournal.pgen.1002215, и именно поэтому я хочу представить такие маленькие p-значения.
Спасибо за вашу помощь, извините за такой извилистый вопрос.