Коррекция Бонферрони |
Здравствуйте, гость ( Вход | Регистрация )
Коррекция Бонферрони |
1.11.2018 - 16:12
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 13 Регистрация: 5.05.2018 Пользователь №: 31338 |
Всем здравствуйте!
Я опять про своих собак с кожными поражениями Ответы в предыдущей своей теме http://forum.disser.ru/index.php?showtopic=4251 периодически перечитываю, пытаюсь понять, пока не все получается, но неудобно отвлекать с просьбами разжевать каждую фразу. Сегодня я прошу помочь разобраться в проблеме множественных сравнений и в частности, коррекции Бонферрони. Исходя из определения, эта проблема возникает всегда, когда на одной выборке проводится много статистических тестов. Если у меня 8 пород собак, у каждой из которых 8 зон поражения, каждое из которых может быть 3 типов - получается 8*8*3 сравнений и любая коррекция сделает результаты статистически незначимыми. Но прочитав эту публикацию: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5426219/ я засомневалась в правильном применении коррекции Бонферрони для моих сравнений. Если я сравниваю породу 1 со всеми остальными собаками по нескольким параметрам - это одна выборка, да. А если я беру породу 2 и всех остальных собак - это уже другая выборка? |
|
30.11.2018 - 21:24
Сообщение
#2
|
|
Группа: Пользователи Сообщений: 902 Регистрация: 23.08.2010 Пользователь №: 22694 |
Сделал логлинейный анализ 3-входовой таблицы сопряженности (из предыдущего поста) в R.
Краткий отчет: 1. Сделал в Экселе массив, пригодный для работы с R. Назвал его незатейливо: Dogs. В этом массиве 4 столбца: три из них соответствуют факторам "Тип поражения" (Б-бактериальный, Г - грибковый, К-комбинированный), "Порода"(1-9) и "Область" (I-VIII) соответственно, четвертый ("Отклик") - содержит наблюдаемые частоты. Нулевые ячейки этого массива заменил на ,5. > head(Dogs,8) Тип Порода Область Отклик Б 1 I 13 Б 1 II 4 Б 1 III 4 Б 1 IV 5 Б 1 V 13 Б 1 VI 4 Б 1 VII 6 Б 1 VIII 7 2. Определил "Тип" "Породу" и "Область" как факторы: > str(Dogs) 'data.frame': 216 obs. of 4 variables: $ Тип : Factor w/ 3 levels "Б","Г","К": 1 1 1 1 1 1 1 1 1 1 ... $ Порода : Factor w/ 9 levels "1","2","3","4",..: 1 1 1 1 1 1 1 1 2 2 ... $ Область: Factor w/ 8 levels "I","II","III",..: 1 2 3 4 5 6 7 8 1 2 ... $ Отклик : num 13 4 4 5 13 4 6 7 6 1 ... 3. Для логлинейной параметризации модели воспользовался функцией loglm() из пакета {MASS} >library(MASS) 4. Нулевая гипотеза при логлинейном анализе заключается в том, что модель не противоречит наблюдаемым частотам, альтернативная - в том, что противоречит. Соответственно, если после исключения к-л фактора из модели, она по-прежнему не противоречит исходным данным, то фактор считаем статистически незначимым. Тестирование гипотезы осуществляется критерием отношения правдоподобия (Likelihood ratio test) 5. Логлинейное моделирование таблицы сопряженности заключается в построении т.н. иерархической модели, при которой включение трехфакторного взаимодействия в качестве предиктора автоматически влечет за собой включение двухфакторных взаимодействий и исходных факторов. Такая модель называется насыщенной (saturated) и не имеет познавательной ценности, поскольку точно подгоняет наблюдаемые частоты. Построим ее для примера: > model.saturated<-loglm(Отклик~Тип*Порода*Область, Dogs) > model.saturated Call: loglm(formula = Отклик ~ Тип * Порода * Область, data = Dogs) Statistics: X^2 df P(> X^2) Likelihood Ratio 0 0 1 Pearson 0 0 1 Как видно, чудес не произошло, и модель идеально соответствует наблюдаемым частотам. Поэтому идея логлинейного моделирования заключается в том, чтобы более экономно (меньшим количеством параметров) параметризовать модель, поглядывая при этом на результаты тестирования нулевой гипотезы. 6. Переоценим модель, исключив из нее трехфакторное взаимодействие: > m1<-loglm(Отклик~Тип:Порода+Тип:Область+Порода:Область,Dogs) > m1 Call: loglm(formula = Отклик ~ Тип:Порода + Тип:Область + Порода:Область, data = Dogs) Statistics: X^2 df P(> X^2) Likelihood Ratio 48.81494 112 1 Pearson 48.24563 112 1 Модель по-прежнему не противоречит наблюдаемым частотам. 7. Проверим, допускает ли модель дальнейшее упрощение: удалим из нее все двухфакторные взаимодействия. > m2<-loglm(Отклик~Тип+Порода+Область,Dogs) > m2 Call: loglm(formula = Отклик ~ Тип + Порода + Область, data = Dogs) Statistics: X^2 df P(> X^2) Likelihood Ratio 131.4224 198 0.9999225 Pearson 144.9575 198 0.9982221 Модель по-прежнему адекватна данным. Так что двухфакторные взаимодействия статистически незначимы. А среди них было и драгоценное "Порода:Область". В общем, по этой базе данных делаем вывод, что природой не "предусмотрена" зависимость локализации кожных поражений от породы, равно как и предрасположенность к-л. пород / областей к определенному типу поражения. P.S. К аналогичному выводу можно придти, если насыщенную модель упрощать не вручную, а автоматически с помощью функции step(), которая с опцией "backward" по информационному критерию Акаике (AIC) ищет наиболее удачную параметризацию модели. В нашем случае такая модель тоже не противоречила наблюдаемым частотам. Сообщение отредактировал 100$ - 30.11.2018 - 21:51 |
|