13 Post hoc тесты. Критерий Стьюдента. Проблема множественных сравнений

Что ж, мы попытались разобраться в одном из самых часто используемых и полезных методов статистического анализа — дисперсионном анализе — и сделаем вид, что что-то поняли. Однако задумаемся вот над чем:

  • дисперсионный анализ позволяет протестировать статистическую значимость связи между фактором и зависимой переменной
  • технически это выражается в поиске различий между группами, на которые делится категориальной переменной наша выборка [наблюдений]
  • статистическая значимость фактора говорит нам о том, что между какими-то группами есть различия
  • но между какими именно???

Этот вопрос остается открытым и на него надо как-то ответить.

13.1 Попарные сравнения

Для того, чтобы ответить на этот вопрос, нам придется сравнивать все группы [наблюдений] друг с другом. Этот процесс называется попарные сравнения (pairwise comparison). Выполняются они довольно просто — с обычно помощью t-теста. Однако здесь есть одна важная деталь, о которой нам необходимо поговорить.

Стоп, а если мы все равно сравниваем все группы друг с другом, зачем нам вообще дисперсионный анализ? Вопрос справелив. Однако обо всем по порядку. Начнем с нашей любимой ошибки первого рода.

13.1.1 Проблема множественных сравнений

Итак, мы сравниваем попарно все группы наблюдений между собой. В каждом сравнении мы фиксируем вероятность ошибки первого рода с помощью уровня значимости на уровне \(0.05\). А какова будет вероятность ошибки, если мы проводим несколько сравнений?

Считаем, что наши сравнения независимы, поэтому вероятности будут перемножаться1. Если верояность ошибиться в одном сравнении равна \(\alpha\), то вероятность сделать правильный вывод — \(1-\alpha\). Тогда вероятность сделать правильный вывод в \(m\) сравнения — \((1-\alpha)^m\). Отсюда мы можем вывести вероятность ошибиться хотя бы в одном сравнении:

\[ \mathrm{P}' = 1 - (1 - \alpha)^m \]

Пусть у нас есть три группы, которые нам надо сравнить друг с другом — получается необходимо провести три сравнения. Итого вероятность ошибиться получается:

\[ \mathrm{P}' = 1 - (1 - 0.05)^3 \approx 0.143 \]

Значительно больше, чем \(0.05\), что нехорошо. И дальше только хуже. Поэтому нам надо либо корректировать уровень значимости, либо использовать мощные методы типа дисперсионного анализа.

13.1.2 Корректировка уровня значимости

Корректировать уровень значимости можно по-разному. Например, можно разделить \(\alpha\) на количество попарных сравнений — такой способ называется поправкой Бонферрони (Bonferroni):

\[ \alpha' = \frac{\alpha}{n}, \]

где \(n\) — число попарных сравнений.

Поправка Бонферрони считается самой консервативной поправкой — она достаточно сильно уменьшает уровень значимости, и мы можем не поймать искомую закономерность, то есть совершить ошибку второго рода2. Поэтому придумали более либеральные поправки, например, поправку Холма (Холма–Бонферрони, Holm) или поправку Тьюки (Tukey’s HSD test). Можно посмотреть на их формулы, но в целом, не обяз, потому что их все равно никто не знает, а в статистических пакетах мы либо допишем аргумент в функцию, либо нужную галку поставим.

На практике в силу того, что в статистических пакетах мы работаем с p-value, корректируется именно его значение.

По достаточно незамысловатой логике

Здесь: вариант для поправки Бонферрони.

\[ p < \frac{\alpha}{n} \Rightarrow np < \alpha \]

Таким образом, мы просто сравниваем уже скорретированное p-value, которое нам считает комплюхтер, с тем же самым \(\alpha = 0.05\). Жизнь становится значительно проще и приятнее.

13.1.3 Дисперсионный анализ и проблема множественных сравнений

Использование методов типа дисперсионного анализа, которые позволяют проверить наличие статистическую значимость фактора в целом помогает следующим образом:

  • если фактор статистически НЕ значим, мы НЕ проводим попарные сравнения по группам, на которые он делит нашу выборку — различий между группами все равно не будет
  • если фактор статистически значим, мы проводим попарные сравнения по группам, на которые он делит нашу выборку, чтобы узнать, между какими группами есть различия

Особенно сильно это помогает в случае взаимодействия факторов, так как там может быть невероятное количество попарных сравнений3.

13.2 Двухвыборочный t-тест

С уровне значимости разобрались — теперь к самому статистическому тесту. Задача такова: протестировать гипотезу о том, что между двумя группами наблюдений нет различий, то есть:

\[ H_0: \mu_1 = \mu_2 \\ H_1: \mu_1 \neq \mu_2 \]

Гипотезы сформулировали. Выбираем статистический критерий. Он таков:

\[ t = \frac{\bar x_1 - \bar x_2}{\sqrt{\frac{s_1^2}{n_1} + \frac{s_1^2}{n_2}}} \]

Эта статистистика при справедливости нулевой гипотезы подчиняется t-распределению (распределению Стьюдента) с числом степеней свободы, рассчитывающимся по очень страшной формуле.

Вот такой \[ df = \frac{\big(\frac{s_1^2}{n_1} + \frac{s_2^2}{n_2}\big)^2}{\frac{\big(\tfrac{s_1^2}{n_1}\big)^2}{(n_1-1)} + \frac{\big(\tfrac{s_2^2}{n_2}\big)^2}{(n_2-1)}} \]

Напоминаю, что t-распределение выглядит так:

Далее мы рассчитываем статистику критерия — значение t, потом рассчитываем для него p-value, корректируем сообразно выбранному способу корректировки, и сравниваем с уровнем значимости \(\alpha\).

И, как обычно, по неизменному ни при каких обстоятельствах алгоритму, делаем вывод:

  • Если p-value \(< \alpha\), то мы получаем значение t-статистики, не характерное для случая, когда нулевая гипотеза верна, что даёт нам основания отклонить нулевую гипотезу об отсутствии различий между группами и принять альтернативную, о том, что хотя бы между двумя какими-либо группами есть различия.
  • Если p-value \(> \alpha\), то мы получаем значение t-статистики, характерное для случая, когда нулевая гипотеза верна, что не даёт нам оснований отклонить нулевую гипотезу об отсутствии различий между группами.

Двухвыборочный t-тест пригоден, если наши выборки независимы. Если же у нас связанные, или зависимые, выборки, то нам необходим t-тест для зависимых выборок.

13.3 Парный t-тест

Он даже попроще. Или нет.

Гипотеза та же:

\[ H_0: \mu_1 = \mu_2 \\ H_1: \mu_1 \neq \mu_2 \]

Статистика другая:

\[ t = \frac{M_d}{\frac{s_d}{\sqrt{n}}}, \]

где \(M_d = \frac{1}{n} \sum_{i=1}^n (x_{i1} - x_{i2})\), \(s_d = \sqrt{\frac{1}{n-1}\sum_{i=1}^n (M_d - (x_{i1} - x_{i2}))^2}\).

Эта статистистика при справедливости нулевой гипотезы подчиняется t-распределению (распределению Стьюдента) с числом степеней свободы \(n-1\).

Статистический вывод идентичен предыдущем случаю.

13.4 Че за post hoc?

Итак, с помощью t-теста мы попарно сравниваем группы по фактору, который в дисперсионном анализе оказался статистически значимым, чтобы узнать, между какими группами есть различия.

Зачем это нужно? Статистическая значимость фактора не обязывает все группы различаться между собой — может случиться так, что разница есть только между двумя из трех, или двумя из четырех групп. Это надо узнать, чтобы мы могли корректно интерпретировать результаты с точки зрения теории, которая стоит за нашим исследованием.

Если в дисперсионном анализе участвуют только две группы — то есть фактор содержит два уровня — ничего дополнительно тестировать не нужно!

Данный анализ незывается post hoc analysis или post hoc tests (от лат. post hoc — ‘after this’, ‘after this event’), так как мы проводим его после того, как провели основной анализ другим методом. Такие дела.

13.5 t-тест — сильный и независимый

Вообще t-тест может быть и самостоятельным методом статистического анализа, если у вас в исследовании только две группы наблюдений. Или вы выборочно сравниваете какие-то условия, которые вас интересуют, при сложном дизайне. Или вы проверяете какие-то группы на эквивалетность по каким либо параметрам. В общем, t-тест молодец-красавчик — и сам по себе тоже существует, но и другим статистическим методам помогает.


  1. Об этом нам рассказала теорема умножения вероятностей, которая гласит, что вероятность пересечения независимых событий равна произведению вероятностей этих событий.↩︎

  2. Помним, что при стремлении вероятности ошибки первого рода к нулю, вероятность ошибки второго рода стремиться к единице.↩︎

  3. Допустим для двух факторов с тремя уровнями количество групп будет \(3 \times 3 = 9\), а количество попарных сравнений — \(\frac{n(n-1)}{2} = \frac{9 \cdot 8}{2} = 36\)!↩︎