Я озадачен несколькими вещами при обмене ответами и комментариями здесь.
Прежде всего, когда я пробую оригинальный пример OP, я не получаю значение p , столь же маленькое, как обсуждаемые здесь (несколько разных версий 2.13.x и R-devel) :
a <- 1:10
b <- 10:20
t.test(a,b)
## data: a and b
## t = -6.862, df = 18.998, p-value = 1.513e-06
Во-вторых, когда я значительно увеличиваю разницу между группами, я на самом деле получаю результаты, предложенные @eWizardII:
a <- 1:10
b <- 110:120
(t1 <- t.test(a,b))
# data: a and b
# t = -79.0935, df = 18.998, p-value < 2.2e-16
#
> t1$p.value
[1] 2.138461e-25
Поведение печатного вывода в t.test
определяется его вызовом stats:::print.htest
(который также вызывается другими функциями статистического тестирования, такими как chisq.test
, как отмечено в OP), который в свою очередь вызывает format.pval
, в котором значения p меньше значения eps
(по умолчанию .Machine$double.eps
) как < eps
. Я удивлен, что не согласен с такими обычно проницательными комментаторами ...
Наконец, хотя кажется глупым беспокоиться о точном значении очень маленького значения p , ОП правомерно, что эти значения часто используются в качестве показателей силы доказательств в литературе по биоинформатике - например, можно протестировать 100 000 генов-кандидатов и посмотреть на распределение полученных значений p (найдите «график вулкана», чтобы найти пример такой процедуры).