О чём спрашивает t-критерий
Любой t-критерий отвечает на один и тот же базовый вопрос: реально ли это различие средних или это просто шум? Выборки колеблются: измерьте время реакции десяти человек дважды — и получите два разных средних, хотя ничего не менялось. t-критерий сравнивает наблюдённое различие с той дрожью, которой стоило бы ожидать от случайности, и сообщает, насколько удивительными были бы ваши данные, будь истинное различие нулевым.
Три разновидности, одна функция:
- Одновыборочный — отличается ли среднее этой группы от фиксированного значения?
- Двухвыборочный — различаются ли средние двух независимых групп?
- Парный — изменились ли одни и те же испытуемые между двумя измерениями?
Одновыборочный: t.test(x, mu = ...)
Допустим, процесс должен занимать в среднем 5.0 секунд, и вы засекли десять запусков:
Выборочное среднее равно 5.61 — но значимо ли превышение цели на 0.61 всего при десяти запусках, или это в пределах обычной дрожи? Именно на это и отвечает вывод.
Чтение вывода строка за строкой
Вот раздел, который окупается: вывод у всех вариантов t.test() имеет одинаковую форму, так что научитесь читать его один раз. Запустите блок выше и сопоставьте каждую строку:
- t = 4.26 — статистика критерия: наблюдённое различие (5.61 − 5 = 0.61), делённое на стандартную ошибку среднего (около 0.143). Она говорит, что выборочное среднее лежит чуть больше чем в четырёх стандартных ошибках от гипотетического значения. Больше |t| = удивительнее при нулевой гипотезе.
- df = 9 — число степеней свободы, здесь n − 1. Малое df означает малые выборки, а значит, критерий потребует большего t, прежде чем впечатлится.
- p-value ≈ 0.002 — если бы истинное среднее действительно было 5, вероятность вытянуть выборку, чьё среднее отклонится от 5 хотя бы настолько (в любую сторону), составляла бы около 0.2%. В этом всё значение. Это не вероятность того, что истинное среднее равно 5, и малое p-значение не доказывает ваше любимое объяснение — оно лишь говорит: «трудно свалить на случайность». При обычном пороге 0.05 нулевая гипотеза здесь отвергается.
- alternative hypothesis — переформулировка того, что означало бы «отвергнуть».
not equal to 5подтверждает, что критерий был двусторонним. - 95 percent confidence interval: от 5.29 до 5.93 — диапазон истинных средних, совместимых с данными. Обратите внимание, что 5 лежит вне него: это тот же вердикт, что и p < 0.05, но выраженный в собственных единицах данных, и он вдобавок говорит о правдоподобной величине эффекта, чего p-значение не делает никогда.
- sample estimates — наблюдённое среднее, чтобы читатель видел проверяемый сырой факт.
Если части нужны программно: result <- t.test(times, mu = 5), затем result$p.value, result$conf.int, result$estimate.
Двухвыборочный: сравнение независимых групп
Для двух независимых групп формульный интерфейс читается как сам вопрос. ToothGrowth фиксирует рост зубов у морских свинок, получавших витамин C в виде апельсинового сока (OJ) или аскорбиновой кислоты (VC):
Читается как «проверить len в разбивке по supp». Вывод теперь показывает две выборочные оценки (среднее по группе, около 20.7 против 17.0), а доверительный интервал относится к разности между ними. Здесь p ≈ 0.061, а интервал идёт примерно от −0.17 до 7.57: он пересекает ноль, поэтому на уровне 0.05 вы не можете исключить «различия нет», — хотя интервал, тянущийся до +7.6, предостерегает и от объявления различия несуществующим. «Не значимо» означает не доказано, а не доказано отсутствие.
Уэлч по умолчанию — и это хорошо
Посмотрите на заголовок вывода: Welch Two Sample t-test, с дробным df (около 55.3). Классический критерий Стьюдента предполагает равные дисперсии в обеих группах; версия Уэлча отбрасывает это предположение и корректирует число степеней свободы для компенсации. Когда дисперсии действительно равны, Уэлч даёт по сути идентичные ответы; когда нет, критерий Стьюдента может быть сильно разбалансирован, тогда как Уэлч остаётся честным. Так что умолчание R является безопасным — переопределять его почти никогда незачем.
Предварительный ритуал «сначала проверь равенство дисперсий, потом выбери критерий» — устаревший совет; просто используйте Уэлча.
Парный: до и после
Когда оба измерения получены с одних и тех же испытуемых, группы не являются независимыми, и трактовка их как независимых выбрасывает мощность критерия. Баллы восьми человек до и после обучающего курса:
paired = TRUE проверяет среднее внутрииндивидуальных разностей (здесь в среднем 2.75 балла, p ≈ 0.001). Почему сопряжение меняет всё: люди различаются между собой гораздо сильнее, чем обучение изменило кого-либо, — разброс от испытуемого к испытуемому от 65 до 80 утопил бы улучшение в 2–3 балла в несопряжённом критерии. Разности вычитают базовый уровень каждого человека, так что остаётся только изменение. Правило: если у данных есть естественная структура «одна и та же единица измерена дважды», сопрягайте. (И никогда не используйте paired = TRUE, когда группы действительно независимы, — сопряжение было бы вымыслом.)
Односторонние критерии: обращаться осторожно
По умолчанию критерий двусторонний: он считает различие в любую сторону свидетельством. Если — до того как вы увидели данные — ваша гипотеза имела смысл только в одном направлении, вы можете это указать:
p-значение уменьшается вдвое относительно двустороннего критерия — именно поэтому и существует искушение: переключение на односторонний после подглядывания в данные является p-хакингом. Используйте alternative = "greater" или "less" только с действительно заранее заявленным направлением; сомневаетесь — оставайтесь двусторонними.
Предпосылки и запасной вариант
t-критерий предполагает, что наблюдения независимы и что выборочные средние распределены приблизительно нормально, — что выполняется, когда сами данные примерно нормальны или выборки достаточно велики (центральная предельная теорема делает тяжёлую работу; при n ≈ 30+ на группу умеренная ненормальность не проблема). Проверьте форму быстрой гистограммой или ящиком с усами. А вот независимость не спасёт никакой критерий — она берётся из того, как собирались данные.
Для малых выборок с явно скошенными данными или экстремальными выбросами стандартный непараметрический запасной вариант умещается в строку: wilcox.test(len ~ supp, data = ToothGrowth), который сравнивает распределения по рангам, а не по средним.
Что вы уносите с собой
t.test(x, mu = )для одной выборки,t.test(y ~ group, data = )для двух,paired = TRUEдля «до и после».- p-значение — это «насколько удивительны эти данные, если истинное различие нулевое», и не более; доверительный интервал говорит о правдоподобной величине эффекта в реальных единицах.
- Умолчание для двух выборок в R — критерий Уэлча (дробное df); оставьте его.
- Сопряжение убирает межиндивидуальный шум; используйте его всякий раз, когда одни и те же единицы измерены дважды.
- Односторонние альтернативы — только с заранее выбранным направлением;
wilcox.test()— ранговый запасной вариант.
Дальше: сравнение средних трёх и более групп сразу — дисперсионный анализ через aov().
Часто задаваемые вопросы
Как провести t-критерий в R?
С помощью t.test(). Одна выборка против фиксированного значения: t.test(x, mu = 5). Две независимые группы: t.test(value ~ group, data = df). Измерения до и после на одних и тех же испытуемых: t.test(after, before, paired = TRUE).
Как интерпретировать p-значение t-критерия в R?
Это вероятность увидеть различие не меньше вашего, если истинное различие равно нулю. Малое p-значение (по соглашению ниже 0.05) означает, что данные трудно объяснить шумом, и вы отвергаете нулевую гипотезу. Это не вероятность того, что нулевая гипотеза верна, и оно ничего не говорит о величине или важности различия — для этого читайте доверительный интервал.
Почему R по умолчанию выдаёт критерий Уэлча?
Двухвыборочный t.test() в R по умолчанию использует версию Уэлча, которая не предполагает равенства дисперсий в группах, — поэтому число степеней свободы получается дробным. Уэлч ведёт себя почти идентично классическому критерию Стьюдента при равных дисперсиях и безопаснее при неравных, так что умолчание является правильным выбором. Используйте var.equal = TRUE, только если учебное задание явно требует классического объединённого критерия.
Когда следует использовать парный t-критерий в R?
Когда два набора измерений образуют естественные пары — один и тот же испытуемый измерен до и после, один и тот же объект оценён двумя методами. t.test(after, before, paired = TRUE) проверяет среднее внутрипарных разностей, что убирает межиндивидуальную вариацию и обычно даёт гораздо большую мощность, чем трактовка групп как независимых.