03 октября 2013

О проблеме множественных проверок статистических гипотез



В практике статистического анализа часто возникает ситуация, когда на одном и том же наборе данных выполняется проверка большого числа гипотез. Например, интерес может представлять выполнение всех возможных попарных сравнений средних значений нескольких экспериментальных групп. В других случаях несколько экспериментальных групп могут сравниваться с одной контрольной группой. Особенно большие количества одновременно проверяемых гипотез можно встретить в некоторых областях биологии: например, при работе с данными, которые получают при помощи технологии микрочипов, проверяются гипотезы в отношении уровней экспресии нескольких тысяч генов (см., например, здесь). По определению, при проверке каждой статистической гипотезы закладывается возможность ошибки первого рода (т.е. отклонение верной нулевой гипотезы; см. например, здесь). Чем больше гипотез мы проверяем на одних и тех же данных, тем больше будет вероятность допустить как минимум одну такую ошибку. Этот явление называют эффектом множественных сравнений (англ. multiple comparisons или multiple testing). Рассмотрим проблему множественных сравнений подробнее.

Представим, что у нас имеются три группы, подвергшиеся разным уровням воздействия определенного фактора. Как выяснить влияние этого фактора на интересующую нас переменную-отклик? При выполнении определенных условий, данную задачу можно решить, сравнив средние значения имеющихся групп при помощи однофакторного дисперсионного анализа. Однако дисперсионный анализ позволит сделать только вывод типа "да/нет", т.е. эффект изучаемого фактора либо имеется, либо отсутствует. Допустим, что результаты дисперсионного анализа указывают на наличие эффекта. Как теперь выяснить, какие именно группы различаются между собой?




Одним из (очень гибких) способов ответить на этот вопрос является использование линейных контрастов. К сожалению, эта концепция мало знакома большинству исследователей. Зато им хорошо знаком t-критерий Стьюдента, который они часто с легкостью рассчитывают для каждой пары сравниваемых групп (см. рисунок ниже). Получив достаточно высокое значение t в каком-либо из этих сравнений, исследователь сообщает, что "P < 0.05". Это утверждение означает, что вероятность ошибочного заключения о существовании различий между групповыми средними не превышает 0.05 (конечно, если принят именно этот уровень значимости). Однако в действительности это не так - вероятность ошибки значительно превышает 5%. Разберемся, почему.

Пример неверного использования t-критерия Стьюдента для выполнения попарных сравнений трех групп

Выполняя тест Стьюдента, исследователь проверяет нулевую гипотезу об отсутствии разницы между генеральными средними двух сравниваемых групп. Сравнивая группы A и В, он рискует ошибиться с вероятностью 5%. Точно такая же вероятность ошибки будет иметь место и при сравнении В с С и А с С. Соответственно, вероятность ошибиться хотя бы в одном из этих трех сравнений составит

\[P' = 1 - (1 - \alpha)^m =  1- (1 - 0.05)^3 = 0.143, \]

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

Для устранения эффекта множественных сравнений существует большой арсенал методов,. Этим методам будут посвящены следующие несколько сообщений.

20 комментариев :

kovla комментирует...

Насколько я понимаю суть вопроса, та же самая логика действует и в отношении моделирования. Когда мы конструируем, например, линейную регрессию на базе имеющегося набора данных, и она нас не устраивает, мы изменяем уравнение этой регрессии (часто учитывая результаты первой модели), и снова смотрим на результаты. В теории же исследователь должен остановиться после первой модели, либо использовать методы для множественного тестирования, либо сменить набор данных (например, разбивая изначальный набор данных на подвыборки).

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

Sergey Mastitsky комментирует...

Отличный вопрос! Вы правы в том, что в принципе при выборе оптимальной модели должна проводиться поправка на множественные сравнения. Однако, в большинстве учебников по регрессионному анализу эта проблема обходится стороной. Отчасти это объясняется тем, что проблема не имеет простого и однозначного решения. Варианты такие:
1) Выбирать оптимальную модель (например, пошагово исключая незначимые параметры), игнорирую проблему множественных сравнений. Как ни странно, во многих случаях этот подход все же неплохо работает на практике. Имеется в виду разработка предсказательных моделей. Если же модель строится для выяснения того, какие факторы важны для изучаемого процесса или явления, проблема остается.
2) Контролировать вероятность ошибки. О том, как это делать при помощи R, есть целая книга и соответствующий пакет:
http://cran.r-project.org/web/packages/multcomp/index.html
http://www.crcpress.com/product/isbn/9781584885740
3) Уйти от Р-значений и использовать информационные критерии (AIC и его разновидности). Преимущество этого подхода - в полном исключении проблемы множественной проверки гипотез в ее классическом понимании. Недостаток: не всегда очевидно, какую разницу в значениях AIC считать достаточной для того, чтобы отдать предпочтение той или иной модели.

Макс комментирует...

Сергей, просто спасибо, что Вы есть. Очень помогаете делать красивые работы.

Анонимный комментирует...

Здравствуйте! Вопрос такой. Является ли сравнение двух групп по многим признакам (допустим, по 25) примером эффекта множественных сравнений? Например, исследуются две группы людей (с севера и юга) по показателям крови. Их может быть довольно много (от 10 до 30) и к тому же они могут зависеть друг от друга (допустим количество эритроцитов крови влияет на гематокрит (соотношение клетки/плазма крови). С одной стороны, групп сравнения только две, с другой - эти группы сравниваются по многим признакам (некоторые могут зависеть друг от друга). Следует ли в данном случае использовать критерий Манна-Уитни (данные имеют распределение, отличное от нормального), считая что сравнение идёт по двум группам, или использовать критерий Краскелла-Уоллеса, а затем критерии Ньюмана-Кейлса (для попарных сравнений равных выборок) или Данна (для попарных сравнений неравных выборок) - если присутствует эффект множественных сравнений. Заранее спасибо за помощь и ответ!!!

Sergey Mastitsky комментирует...

"Является ли сравнение двух групп по многим признакам (допустим, по 25) примером эффекта множественных сравнений?" - да, это самый что ни на есть классический пример.

Для того, чтобы Вы лучше поняли, что делать в этой ситуации, советую прочитать пару сообщений, которые были опубликованы вслед за этим:

http://r-analytics.blogspot.de/2013/11/blog-post.html
http://r-analytics.blogspot.de/2013/11/blog-post_11.html

Там же Вы найдете ссылки на оригинальные работы, в которых описаны соответствующие методы и преведены примеры, для которых они применимы.

Предполагая, что в Вашем случае данные не позволяют использовать t-тест (http://r-analytics.blogspot.de/2012/03/t.html), выполняйте соответствующий непараметрический тест (http://r-analytics.blogspot.de/2012/05/blog-post_20.html), с последующей коррекцией Р-значений.

Анонимный комментирует...

Большое спасибо Вам за разъяснение! Да, Вы правы, данные не позволяют использовать в данном случае Т-тест. Обычно использую критерий Манна - Уитни. Методы корректировки P очень интересны, и вообще благодарю за помощь :)))

Анонимный комментирует...

Добрый вечер :))) У меня к Вам дополнительный вопрос будет... Ну с двумя группами разобрались... а что делать если группы 3 и более? В принципе напрашивается критерий Краскелла-Уоллеса (как непараметрический аналог ANOVA), затем для попарного сравнения групп - апостериорные тесты. Но ведь как я уже указывал, две группы сравнивались по многим признакам, а тут мне надо сравнить три и более групп по многим признакам (допустим содержание 25 аминокислот у определённой группы животных летом, осенью и зимой) Задачка честно говоря ставит меня в тупик... Как скорректировать эффект множественных сравнений? :((( может Вы сможете что-нибудь посоветовать?

Sergey Mastitsky комментирует...

Несмотря на то, что эта задача действительно сложна, Вы не первый, кто с ней сталкивается. Такого рода проблемы, в частности, обычны в геномных исследованиях. Литературы много (естественно, на англ. языке). Есть и соответствующие программные решения. Из того, что известно мне - это пакет samr: http://cran.r-project.org/web/packages/samr/index.html
и пакет Mulcom, который является частью проекта Bioconductor (http://www.bioconductor.org/packages/2.12/bioc/html/Mulcom.html). Вот оригинальная статья с его описанием: http://www.biomedcentral.com/1471-2105/12/382

Анонимный комментирует...

С английским сложно))) Но всё равно большущее спасибо, буду переводить))) А то я уже замучался с этими сравнениями. На самом деле такая "задача" встречается очень часто... только её не видят никак... Например сравнить по несколько групп людей по показателям крови (гематологический анализатор) А там тоже получается на одного человека выборки - 15-30 штук этих показателей

Sergey Mastitsky комментирует...

Могу порекомендовать еще один, недавно обнаруженный мной пакет - SimComp (http://cran.r-project.org/web/packages/SimComp/index.html). В нем есть функция SimTestDiff(), которая делает именно то, что Вам нужно. Обратите лишь внимание на то, что эта функция предполагает нормальное распределение значений всех признаков в каждой группе. Для приведения к распределению, близкому к нормальному, возможно, потребуется определенное преобразование исходных данных (например, log, Box-Cox).

Анонимный комментирует...

Большое спасибо за помощь) Пытаюсь разобраться сейчас)

Анонимный комментирует...

Добрый вечер!) Хотя наверное лучше сказать ночь. Пакет который Вы мне предложили очень помог, но до разбора полётов дошёл только сейчас. Появились некоторые вопросы и очень надеюсь, Вы сможете мне помочь с их решением.

1) Как я понимаю, нужно сначала установить R на комп, а затем уже и этот пакет? Где его возможно скачать? Возможно всё очевидно, тогда прошу прощения за тугоумие.
2) В данном пакете примеры основаны на критерии Даннета, т.е. сравниваются имеющиеся группы с контрольной. У меня же цель немного другая... нужно сравнивать все группы между собой... тогда, скорее всего подходит критерий Тьюки. Как Вы считаете, изменится ли реализация вычислений и их последовательность, при смене критерия???
3) Среди аргументов функции есть такой как "base". Скажите пожалуйста, каково его назначение? И нужен ли он при смене критерия? (это к вопросу 2).
4) Ступор вызывает ещё такая проблема... как вбить такой многомерный датасет? Одно дело когда имеются группы и значение признака в каждой группе... а когда приводится несколько групп, несколько признаков, да и к тому же n каждого признака... Как следует поступить? (Например, группы: новорождённые (n=7), молодые (n=10), старые (n=8). Признаки: 25 аминокислот (20 протеиногенных и 5 - производные)
5) И последнее... Вы упомянули про преобразование данных к нормальному распределению. Я полностью тут с вами согласен. Но есть данные, выраженные в процентах...сведёт ли их преобразование арксинуса к нормальному распределению???

Заранее прошу прощения за большое количество вопросов :((((, сам пакет в принципе мне понятен, остались вот такие только недоделки. Заранее огромное спасибо за Ваши разъяснения!

Sergey Mastitsky комментирует...

1) А как иначе Вы намерены использовать это программное обеспечение, не установив его на свой компьютер?
2) В каком пакете? Какие примеры?
3) Назначение всех аргументов любой функции R всегда описано в соответствующем справочном файле: см. ?имя_фукнции
4) См. предыдущий пункт - абсолютно во всех справочных файлах указывается, в каком виде данные должны подаваться на ту или иную функцию. Кроме того, обычно приводятся и примеры.
5) Вы ожидаете, что кто-то сможет ответить на этот вопрос, не видя данных? Так не бывает.
В заключение - очень советую почитать эту страницу: http://stackoverflow.com/help/how-to-ask

Анонимный комментирует...

Здравствуйте) Спасибо за ответ и за замечания. Прошу прощения за неточности в вопросах... надо лучше формулировать.
Вопросы 3) и 4) теперь понятны. Благодарю
В вопросе 2) я имел ввиду пакет http://cran.r-project.org/web/packages/SimComp/index.html и функцию SimTestDiff(). Примеры приведены с использованием критерия Даннета (сравниваются две группы с контрольной). Мне же нужно сравнить все группы между собой (критерий Тьюки). Возможно ли в аргументе заменить type="Dunnett" на type="Tukey"? И если я так сделаю, нужно ли что-то ещё изменить в функции SimTestDiff()?
А вопросе 5) я имел ввиду более общий момент...как поступить с данными, выраженными в процентах, для того чтобы можно было применить функцию SimTestDiff()?
Надеюсь теперь лучше смог донести то, что хотел узнать. Ещё раз прошу у Вас прощения за беспокойство и спасибо.

Анонимный комментирует...

Философская проблема, однако. Предположим, я - украинский ихтиолог. Заглядываю, предположим, в книгу "Фауна Украины в 40-а т. Т. 8. Рыбы. Вып. 2. Часть 1..." . Там на С. 11, 14 -17 приведены морфологические признаки плотвы (Rutilus rutilus (L.)). И вот показалось мне, что в нашей местной речке-вонючке, скажем, лучей в спинном плавнике больше, чем в среднем в других водоемах Украины. Проверяю я это дело каким-нибудь критерием и получаю, допустим, p=0.03. Может быть, это признак плохой экологической обстановки, а может, я новый подвид описал - смысл открытия в данном примере не важен. Публикую, значи,т статью в журнале. Рецензионная комиссия претензий не имеет, все замечательно. Но тут, через год (двадцать/пятьдесят/лет) другой ихтиолог Вася Пупкин надумывает сравнить аналогичные данные собранные в своей местной речке-вонючке с тем же самым литературным источником. Находит значимые различия, не находит - неважно. Но я как истинный последователь Бонферрони вынужден поделить свое p на два и сделать новую публикацию, опровергающую выводы предыдущей. А если таких ихтиологов с речками-вонючками много (а книга одна), то можно сразу ставить крест на прикладной статистике (а заодно - и на карьере ихтиолога) перепрофилироваться на изучение уникальных объектов, яиц Фаберже, например, там таких засад нету. Разумеется, мой выдуманный пример утрирован, и поправка Бонферрони - не единственный метод контроля вероятности ошибки первого рода, но принципиальная суть остается. Едва ли Вы будите отрицать, что в реальной науке сплошь и рядом неоднократно пользуются данными одних и тех же выборок в разных исследованиях. И если каждое новое исследование вне зависимости от его результатов понижает значимость предыдущего, то какой это выходит парадоксище! Принцип неопределенности Гейзенберга нервно курит в углу.

German Osmak комментирует...

В Вашем примере про ихтиолога, результаты получены на разных данных независимых выборок, коррекция Бонферрони для результатов полученных на одних и тех же данных. => в Вашем примере коррекция не требуется. На сколько я понимаю. А результаты повторного исследования либо опровергнут либо не опровергнут первоначальное исследование.

Vladimir Tsibulsky комментирует...

Сергей, меня волнует тот же вопрос, что и «ихтиолога». Настораживает также ваше игнорирование этого вопроса (почему-то отвечает другой участник вашей группы статистиков). Я никогда не встречал четкого условия, что поправка типа Бонферрони требуется только «для результатов полученных на одних и тех же данных» (я уже не говорю о весьма сомнительной логике самого выражения, взятого в кавычки). Парадокс, о котором говорит «ихтиолог», налицо и его необходимо снять.
Предположим, что в действительности никакого различия между группами нет (выборки были произведены из одной популяции). Если мы сделали только две выборки, то вероятность обнаружения Р<0.05 будет совершенно такой же как вероятность обнаружения Р>0.95 (то же справедливо и для любых других равных интервалов на шкале вероятностей), т.е. величина Р не содержит никакой информации о достоверности различия между группами, когда различия и нет. Теперь представим, что мы не знаем были произведены эти выборки из одной и той же популяции или из двух различных популяций. Очевидно, что один единственный тест не может помочь нам ответить на этот вопрос, поскольку он в принципе и в этом случае может привести к любому значению Р между нулем и единицей. Только множественные выборки и множественные сравнения между группами помогут решить эту задачу. Если мы проводим множественные тесты на выборках из одной популяции, то плотность встречаемости различных значений Р, как мы уже говорили, окажется одинаковой на любых равных интервалах на шкале от 0 до 1. Если выборки были произведены из различных популяций, то плотность распределения Р будет иметь пик в области малых значений Р и, следовательно, меньших, чем заранее установленное значение альфа, какое бы оно ни было. Вывод ясен: проведение множественных тестов является необходимым, если мы хотим сделать стастистический вывод о различии популяций. Низкое значение Р в первом тесте лишь подсказывает нам, что «да, есть некий шанс сделать открытие», и этот шанс несколько больше, чем в случае обнаружения большого значения Р в первом же тесте.
Теперь о вероятности совершения ошибки первого рода, которая измеряется величиной альфа, а не Р, как ошибочно думают некоторые. Вероятность невозможно вычислить по единственному событию, как невозможно вычислить скорость, зная пространственные координаты в любой единичный момент времени. После того как проведено множество тестов мы обнаружим, что количество случаев обнаружения Р в любом интервале, разумеется и в интервале от 0 до 0.05 тоже, прямо пропорциональна количеству тестов. В случае, если реальных различий между изучаемыми популяциями нет (т.е. выборки произведены из одной популяции), все равно, как и должно быть, количество ложных «открытий» будет расти с количеством тестов. Однако, с ростом их количества вероятность таких «открытий» не меняется, поскольку вероятность есть отношение количества интересующих нас событий (Р<0.05) к количеству всех событий (0<P<1). Исходя из этого очевидного факта, я совершенно не понимаю тех, кто предлагает вводить какие бы то ни было поправки к величине альфа, которая является всего лишь нашим предпочтением, т.е. произвольной величиной, никаким объективным образом не зависящим от количества совершаемых тестов. Введение поправок является, с одной стороны, излишним ужесточением критерия достоверности, а с другой стороны, приводит к парадоксу, указанному выше.
Владимир.

Sergey Mastitsky комментирует...

Уважаемый Владимир,

Поверьте, что парадокс, волнующий "ихтиолога" и Вас, волновал и продолжает волновать и многих других исследователей, и если бы он уже был "снят", то я бы обязательно поделился ссылкой на соответствующую работу (возможно такая работа и существует, но мне она, к сожалению, не известна). Могу лишь привести Вам следующую цитату из Wait TA and Campbell LG (2006) Controlling the false discovery rate and increasing statistical power in ecological research. Ecoscience 13(4): 439-442:

"What is m [количество проверяемых гипотез]? Is it the number of tests (P-values) in a single statistical table? Is it the total number of tests conducted over the course of one's career? These questions have been discussed extensively elsewhere (Perneger, 1998). We do not intend to resolve the debate over m's definition here. Instead, we simply recommend that however one might ordinarily determine m for Bonferroni-based correction for multiplicity, the same m could be used for a BH correction."

И несколько пояснений на следующее Ваше замечание: "Настораживает также ваше игнорирование этого вопроса (почему-то отвечает другой участник вашей группы статистиков)"

Наверное, стоит еще раз подчеркнуть, о чем этот блог. Как можно узнать из раздела "О проекте", "Этот блог - моя попытка сделать посильный вклад в продвижение R среди русскоязычных пользователей. Читатель найдет здесь примеры анализа и визуализации данных при помощи R, а также переводы документации по этой программе." Другими словами, это блог о R, а не о статистических методах как таковых. Здесь я описываю то, как соответствующие методы можно реализовать в R. Для удобства я также привожу краткие описания теории этих методов, но эти описания ни в коей мере не являются полными. Для этого читателю нужно "копать" самостоятельно, и я стараюсь помочь в этом, приводя полезные, как мне кажется, ссылки.

В том же разделе "О проекте" Вы можете узнать, что:

"4. Я не комментирую вопросы, которые носят тривиальный характер (ответы на такие вопросы, как правило, можно быстро найти в результате простого Google-поиска, включая поиск на английском языке).

5. В ряде случаев я не отвечаю на заданные в комментариях вопросы в связи тем, что:
- я просто не знаю на них ответов;
- у меня нет возможности и/или времени на них ответить.
Тем не менее такие вопросы остаются опубликованными в надежде, что с ответами помогут другие (более сведущие и/или менее занятые) посетители сайта."

Анонимный комментирует...

здравствуйте! не подскажете, а как можно сравнить уже имеющиеся средние? пишется обзорная статья, цитируются авторы и их данные: длительность операции, частота осложнений и т.д. Естественно, массива данных авторов нет, только среднее (и без дисперсий и отклонений). Каким образом можно проверить однородность данных, соответствие их единой тенденции?

ErYdit комментирует...

Здравствуйте!
Подскажите, пожалуйста: имеется несколько типов почв (1,2,3,...,n), для каждого типа применяется обработка(A-без обработки, B-обработка). Затем проводится оценка влияния обработки на каждый тип почвы по схеме:
1A vs 1B
2A vs 2B
3A vs 3B
...
nA vs nB

Является ли эта схема примером множественных сравнений и требуется ли коррекция p-значений?
Спасибо.

Отправить комментарий