Практически говоря, как люди обращаются с ANOVA, когда данные не совсем соответствуют предположениям?


19

Это не вопрос строго статистики - я могу прочитать все учебники о предположениях ANOVA - я пытаюсь выяснить, как фактические работающие аналитики обрабатывают данные, которые не совсем соответствуют предположениям. Я просмотрел множество вопросов на этом сайте в поисках ответов, и я продолжаю находить посты о том, когда не следует использовать ANOVA (в абстрактном, идеализированном математическом контексте) или как делать некоторые вещи, которые я описываю ниже в R. I Я действительно пытаюсь выяснить, какие решения люди на самом деле принимают и почему.

Я провожу анализ сгруппированных данных от деревьев (фактических деревьев, а не статистических деревьев) в четырех группах. У меня есть данные для около 35 атрибутов для каждого дерева, и я просматриваю каждый атрибут, чтобы определить, значительно ли отличаются группы по этому атрибуту. Однако в нескольких случаях предположения ANOVA слегка нарушаются, потому что отклонения не равны (согласно тесту Левена с использованием альфа = 0,05).

На мой взгляд, у меня есть следующие варианты: 1. Преобразовать данные в мощность и посмотреть, не изменит ли это значение Левена. 2. Используйте непараметрический тест, такой как Уилкоксон (если да, то какой?). 3. Есть ли какая-то коррекция результата ANOVA, например, Bonferroni (на самом деле я не уверен, существует ли что-то подобное?). Я попробовал первые два варианта и получил немного разные результаты - в некоторых случаях один подход важен, а другой нет. Я боюсь попасть в ловушку с p-значением и ищу совет, который поможет мне обосновать, какой подход использовать.

Я также читал некоторые вещи, которые предполагают, что гетероскедастичность на самом деле не такая уж большая проблема для ANOVA, если только средние значения и дисперсии не коррелированы (т.е. они оба увеличиваются вместе), поэтому, возможно, я могу просто проигнорировать результат Левена, если я не увижу шаблон как этот? Если да, есть ли тест для этого?

Наконец, я должен добавить, что я делаю этот анализ для публикации в рецензируемом журнале, поэтому любой подход, на котором я остановлюсь, должен быть проверен рецензентами. Так что, если кто-то может предоставить ссылки на похожие, опубликованные примеры, это было бы фантастически


3
Независимо от того, используете ли вы R, вам может быть полезно прочитать мой ответ здесь: Альтернативы одностороннему ANOVA для гетероскедастических данных , в котором обсуждаются некоторые из этих проблем.
gung - Восстановить Монику

Ответы:


18

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

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

Я провожу анализ сгруппированных данных от деревьев в четырех группах. У меня есть данные для около 35 атрибутов для каждого дерева, и я просматриваю каждый атрибут, чтобы определить, значительно ли отличаются группы по этому атрибуту. Однако в нескольких случаях предположения ANOVA слегка нарушаются, потому что отклонения не равны (согласно тесту Левена с использованием альфа = 0,05).

1) Если размеры выборки равны, у вас нет особых проблем. ANOVA достаточно (на уровне) устойчива к различным дисперсиям, если n равны.

2) проверка равенства дисперсии, прежде чем решить, следует ли предположить, что это рекомендуется в ряде исследований. Если вы действительно сомневаетесь, что они будут близки к равным, лучше просто предположить, что они неравны.

Некоторые ссылки:

Циммерман, DW (2004),
«Записка о предварительных проверках равенства дисперсий».
Br. J. Math. Стат. Psychol. , Май ; 57 (часть 1): 173-81.
http://www.ncbi.nlm.nih.gov/pubmed/15171807

Хенрик дает три ссылки здесь

3) Важен размер эффекта, а не то, достаточно ли велика ваша выборка, чтобы сказать вам, что они существенно отличаются. Таким образом, в больших выборках небольшая разница в дисперсии покажется очень высокой по тесту Левена, но, по сути, не окажет значительного влияния. Если выборки велики, а размер эффекта - отношение отклонений или различий - достаточно близок к тому, чем они должны быть, то значение p не имеет значения. (С другой стороны, в небольших выборках хорошее большое значение p мало утешительно. В любом случае тест не отвечает на правильный вопрос.)

Обратите внимание, что есть корректировка типа Уэлча-Саттертвейта для оценки остаточной стандартной ошибки и df в ANOVA, так же как и в t-тестах с двумя выборками.

  1. Используйте непараметрический тест, такой как Уилкоксон (если так, то какой?).

Если вы заинтересованы в альтернативах смещения местоположения, вы по-прежнему предполагаете постоянный спред. Если вы заинтересованы в гораздо более общих альтернативах, вы, возможно, подумаете об этом; k-образцом, эквивалентным критерию Уилкоксона, является критерий Крускала-Уоллиса.

Сделайте некоторую коррекцию к результату ANOVA

Посмотрите мое предположение о рассмотрении Welch-Satterthwaite, это «своего рода исправление».

(В качестве альтернативы вы можете разыграть свой ANOVA как набор попарных t-тестов типа Уэлча, и в этом случае вы, вероятно, захотите взглянуть на Bonferroni или что-то подобное)

Я также читал некоторые вещи, которые предполагают, что гетероскедастичность на самом деле не является большой проблемой для ANOVA, если только средние значения и дисперсии не коррелированы (то есть они оба увеличиваются вместе)

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

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

Очень сложно предсказать, что может удовлетворить ваших рецензентов. Большинство из нас не работают с деревьями.


12

На самом деле не очень сложно справиться с гетероскедастичностью в простых линейных моделях (например, в одно- или двухсторонних моделях, подобных ANOVA).

Надежность ANOVA

Во-первых, как отмечают другие, ANOVA удивительно устойчив к отклонениям от предположения о равных отклонениях, особенно если у вас есть приблизительно сбалансированные данные (равное количество наблюдений в каждой группе). Предварительные тесты на равные отклонения, с другой стороны, не являются (хотя тест Левена намного лучше, чем F- тест, обычно преподаемый в учебниках). Как сказал Джордж Бокс:

Провести предварительное испытание на отклонения - это все равно, что отправиться в море на гребной лодке, чтобы выяснить, достаточно ли спокойны условия для выхода океанического лайнера из порта!

Несмотря на то, что ANOVA очень устойчив, поскольку очень легко учитывать гетероскедатичность, нет особых причин не делать этого.

Непараметрические тесты

Если вы действительно заинтересованы в различиях в средствах , непараметрические тесты (например, тест Крускала-Уоллиса) действительно бесполезны. Они проверяют различия между группами, но не в целом проверяют различия в средствах.

Пример данных

Давайте сгенерируем простой пример данных, где хотелось бы использовать ANOVA, но где предположение о равных отклонениях неверно.

set.seed(1232)
pop = data.frame(group=c("A","B","C"),
                 mean=c(1,2,5),
                 sd=c(1,3,4))
d = do.call(rbind, rep(list(pop),13))
d$x = rnorm(nrow(d), d$mean, d$sd)

У нас есть три группы, с (явными) различиями как по средним, так и по отклонениям:

stripchart(x ~ group, data=d)

Полосная диаграмма, показывающая пример данных.

ANOVA

Не удивительно, что нормальный ANOVA справляется с этим довольно хорошо:

> mod.aov = aov(x ~ group, data=d)
> summary(mod.aov)
            Df Sum Sq Mean Sq F value  Pr(>F)    
group        2  199.4   99.69   13.01 5.6e-05 ***
Residuals   36  275.9    7.66                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Итак, какие группы отличаются? Давайте использовать метод HSD Тьюки:

> TukeyHSD(mod.aov)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = x ~ group, data = d)

$group
        diff        lwr      upr     p adj
B-A 1.736692 -0.9173128 4.390698 0.2589215
C-A 5.422838  2.7688327 8.076843 0.0000447
C-B 3.686146  1.0321403 6.340151 0.0046867

При значении P, равном 0,26, мы не можем претендовать на какую-либо разницу (по средним показателям) между группами A и B. И даже если мы не учтем, что провели три сравнения, мы не получим низкий уровень P - значение ( P  = 0,12):

> summary.lm(mod.aov)
[…]
Coefficients:
            Estimate Std. Error t value  Pr(>|t|)    
(Intercept)   0.5098     0.7678   0.664     0.511    
groupB        1.7367     1.0858   1.599     0.118    
groupC        5.4228     1.0858   4.994 0.0000153 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.768 on 36 degrees of freedom

Это почему? На основе сюжета, есть это довольно четкое различие. Причина в том, что ANOVA предполагает равные отклонения в каждой группе и оценивает общее стандартное отклонение в 2,77 (показано как «Остаточная стандартная ошибка» в summary.lmтаблице, или вы можете получить его, взяв квадратный корень из остаточного среднего квадрата (7,66) в таблице ANOVA).

Но в группе А стандартное отклонение (население) равно 1, а завышение в 2,77 затрудняет (без необходимости) получение статистически значимых результатов, т. Е. У нас есть тест с (слишком) низким энергопотреблением.

'ANOVA' с неравными отклонениями

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

> oneway.test(x ~ group, data=d, var.equal=FALSE)
    One-way analysis of means (not assuming equal variances)

data:  x and group
F = 12.7127, num df = 2.000, denom df = 19.055, p-value = 0.0003107

Итак, если вы хотите запустить простой односторонний ANOVA в R, не допуская равных отклонений, используйте эту функцию. Это в основном расширение (Уэлч)t.test() для двух образцов с неравными отклонениями.

К сожалению, он не работает с TukeyHSD()(или большинство других функций , которые вы используете на aovобъекты), так что даже если мы уверены , что там есть групповые различия, мы не знаем , где они находятся.

Моделирование гетероскедастичности

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

> library(nlme)
> mod.gls = gls(x ~ group, data=d,
                weights=varIdent(form= ~ 1 | group))
> anova(mod.gls)
Denom. DF: 36 
            numDF  F-value p-value
(Intercept)     1 16.57316  0.0002
group           2 13.15743  0.0001

Разумеется, все еще существенные различия. Но теперь различия между группами A и B также стали статически значимыми ( P  = 0,025):

> summary(mod.gls)
Generalized least squares fit by REML
  Model: x ~ group
  […]
Variance function:
 Structure: Different standard
            deviations per stratum
 Formula: ~1 | group 
 Parameter estimates:
       A        B        C 
1.000000 2.444532 3.913382 

Coefficients:
               Value Std.Error  t-value p-value
(Intercept) 0.509768 0.2816667 1.809829  0.0787
groupB      1.736692 0.7439273 2.334492  0.0253
groupC      5.422838 1.1376880 4.766542  0.0000
[…]
Residual standard error: 1.015564 
Degrees of freedom: 39 total; 36 residual

Так что использование соответствующей модели помогает! Также обратите внимание, что мы получаем оценки (относительных) стандартных отклонений. Расчетное стандартное отклонение для группы A можно найти в нижней части, результаты, 1,02. Расчетное стандартное отклонение группы B в 2,44 раза больше, или 2,48, а расчетное стандартное отклонение группы C аналогично составляет 3,97 (введите intervals(mod.gls)доверительные интервалы для относительных стандартных отклонений групп B и C).

Исправление для многократного тестирования

Тем не менее, мы действительно должны исправить для многократного тестирования. Это легко с помощью библиотеки 'multcomp'. К сожалению, в нем нет встроенной поддержки объектов 'gls', поэтому сначала нам нужно добавить несколько вспомогательных функций:

model.matrix.gls <- function(object, ...)
    model.matrix(terms(object), data = getData(object), ...)
model.frame.gls <- function(object, ...)
  model.frame(formula(object), data = getData(object), ...)
terms.gls <- function(object, ...)
  terms(model.frame(object),...)

Теперь давайте приступим к работе:

> library(multcomp)
> mod.gls.mc = glht(mod.gls, linfct = mcp(group = "Tukey"))
> summary(mod.gls.mc)
[…]
Linear Hypotheses:
           Estimate Std. Error z value Pr(>|z|)    
B - A == 0   1.7367     0.7439   2.334   0.0480 *  
C - A == 0   5.4228     1.1377   4.767   <0.001 ***
C - B == 0   3.6861     1.2996   2.836   0.0118 *  

Все еще статистически значимая разница между группой А и группой В! ☺ И мы можем даже получить (одновременные) доверительные интервалы для различий между групповыми средствами:

> confint(mod.gls.mc)
[…]
Linear Hypotheses:
           Estimate lwr     upr    
B - A == 0 1.73669  0.01014 3.46324
C - A == 0 5.42284  2.78242 8.06325
C - B == 0 3.68615  0.66984 6.70245

Используя приблизительно (здесь точно) правильную модель, мы можем доверять этим результатам!

Обратите внимание, что для этого простого примера данные для группы C на самом деле не добавляют никакой информации о различиях между группами A и B, поскольку мы моделируем как отдельные средние, так и стандартные отклонения для каждой группы. Мы могли бы просто использовать попарные t- тесты, исправленные для нескольких сравнений:

> pairwise.t.test(d$x, d$group, pool.sd=FALSE)
    Pairwise comparisons using t tests with non-pooled SD 

data:  d$x and d$group 

  A       B      
B 0.03301 -      
C 0.00098 0.02032

P value adjustment method: holm 

Однако для более сложных моделей, например, двусторонних моделей или линейных моделей с множеством предикторов, использование GLS (обобщенных наименьших квадратов) и явное моделирование функций дисперсии является лучшим решением.

И функция дисперсии не обязательно должна быть отдельной константой в каждой группе; мы можем наложить структуру на это. Например, мы можем смоделировать дисперсию как степень среднего значения каждой группы (и, следовательно, нужно оценить только один параметр, показатель степени) или, возможно, как логарифм одного из предикторов в модели. Все это очень легко с GLS (и gls()в R).

Обобщенные наименьшие квадраты - ИМХО очень недоиспользуемая методика статистического моделирования. Вместо того, чтобы беспокоиться об отклонениях от модельных предположений, смоделируйте эти отклонения!


1
Спасибо за ответ! Я не понимаю о результате от oneway.test () и gls () для неравной дисперсии ANOVA (Уэлч ANOVA). Значение p для oneway.test () равно p-значению = 0,0003107. Но значение p для gls (x ~ group, data = d, weights = varIdent (form = ~ 1 | group)) равно 0,0001. Почему эти два результата отличаются?
WCMC

2
Растет беспокойство по поводу исправлений для множественного тестирования, я думаю, что отчет о нескорректированных p-значениях вместе с количеством проведенных сравнений более прозрачен. Тем более, что вы можете не интересоваться каждым парным сравнением при тестировании их в R, поэтому исправление будет сделано с учетом сравнений, которые не представляют интереса.
Nakx

7
  1. В действительности ваши данные могут быть преобразованы в приемлемо нормальное распределение. Конечно, теперь вы делаете вывод о преобразованных данных, а не о преобразованных данных.

  2. Предполагая, что вы говорите об одностороннем ANOVA, тест Крускала-Уоллиса является подходящим непараметрическим аналогом одностороннего ANOVA. Тест Данны (не тест разнообразие сада суммы рангов), пожалуй, самый распространенный непараметрический тест подходит для постфактум множественных сравнений парных, хотя существует и другие тесты , такие как Коновер-Иман тест (строго более мощный , чем тест Данны после отказа Крускала-Уоллиса) и тест Дваса-Стила-Крайтлоу-Флингера.

  3. Процедуры множественных сравнений (будь то семейное отклонение частоты ошибок или ложное обнаружение частоты ) на самом деле не имеют прямого отношения к вашим конкретным предположениям теста (например, нормальность данных), скорее они имеют отношение к значениюα (готовность ложно отвергнуть нулевую гипотезу), учитывая, что вы выполняете несколько тестов.

ANOVA основан на соотношении внутри группы и между групповыми отклонениями. Я не совсем уверен, что вы подразумеваете под гетероскедастичностью в этом контексте, но если вы имеете в виду неравные различия между группами, мне кажется, что это в корне нарушает логику нулевой гипотезы теста.

Простой запрос Google Scholar для «теста Данна» вместе с общим термином из вашей дисциплины должен вернуть множество опубликованных примеров.


Ссылки

Коновер, WJ и Иман, RL (1979). О процедурах множественных сравнений . Технический отчет LA-7677-MS, Лос-Аламосская научная лаборатория.

Crichtlow, DE и Fligner, MA (1991). О множественных сравнениях без распределения в одностороннем дисперсионном анализе . Коммуникации в статистике - теория и методы 20 (1): 127.

Данн, О.Дж. (1964). Многократные сравнения с использованием ранговых сумм . Technometrics , 6 (3): 241–252.


2
Хорошо, спасибо за этот ответ, но я не совсем понимаю, о чем вы говорите. Что касается «гетероскедастичности», я подумал, что я использовал слово в обычном смысле: «набор случайных переменных является гетероскедастичным, если есть подгруппы, которые имеют отличия от других. Здесь« изменчивость »может быть определена количественно по дисперсии или любая другая мера статистической дисперсии. "- Википедия. По моим данным, дисперсии подгрупп неравны (согласно критерию Левена), поэтому я описал их как гетероскедастические. Разве это не правильно?
Джас Макс

1
То, что я действительно пытаюсь обсудить, - это разрыв между статистикой учебников и реальным миром. В каждом учебнике написано, что «дисперсия должна быть одинаковой для ANOVA», но, конечно, они никогда не бывают. Итак, мы произвольно отключаемся в определенной точке и переключаемся на другой тест - если да, то в какой момент? В моей области (биология растений) большинство людей просто используют любой тест, который они обучили использовать, не задумываясь. Я не очень доволен этим. Я хотел бы получить любые предложения для книг / веб-сайтов, которые обсуждают «практическое» использование статистики - то есть, какой тест использовать, когда и почему. Спасибо за предложение Данна, это помогает.
Джас Макс

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

1
Как вы узнаете что-либо о дисперсии населения, если не оцените выборочную дисперсию? Я интерпретирую тест p-val Левена как «если предположить, что дисперсии населения равны, каковы шансы, что ваши выборочные отклонения будут так сильно отличаться». Если я получаю низкий p-val, я отвергаю гипотезу о том, что дисперсии населения равны и не могут использовать ANOVA. Крускал-Уоллес кажется хорошей альтернативой, но предпочтительнее ли преобразовывать данные, чтобы соответствовать предположениям ANOVA, и если да, то почему?
Джас Макс

1
Кроме того, является ли тест Левена p <0,05 подходящим тестом и порогом для этого решения? Что касается О'Брайена, Бартлетта ... результаты этого теста могут существенно различаться, и я не знаю, какой именно использовать - поэтому я иду с Левен, потому что он кажется самым консервативным. Но, возможно, это излишне - возможно, слишком быстро, чтобы отказаться от ANOVA, я переключаюсь на тест, который излишне снижает статистическую мощность моего анализа.
Джас Макс

1

Для меня это звучит так, как будто вы выполняете работу и стараетесь изо всех сил, но беспокоитесь, что ваши усилия не будут достаточно хороши, чтобы пройти мимо рецензентов. Очень реальная проблема. Я думаю, что все исследователи борются с анализами, которые время от времени кажутся пограничными или даже откровенно нарушающими предположения. В конце концов, миллионы статей оценивают, например, эффекты лечения у 3 маленьких групп мышей с примерно 6-7 мышами в каждой группе. Как узнать, удовлетворяются ли предположения Anova в такой статье!

Я просмотрел большое количество статей, особенно в области сердечно-сосудистой патофизиологии, и на самом деле никогда не чувствую себя на 100% уверенным, могу ли я доверять данным или нет в статье, которую я читаю. Но для меня , как рецензент, я на самом деле , как правило, считают , что проблемы могут возникнуть в так многих уровнях науки, что, вероятно, нет смысла слишком глубоко копаться в статистике - в конце концов, весь набор данных может быть сфабрикован, и я бы никогда через миллион лет сможет рассказать. Соответственно, в этой области работы всегда будет элемент доверия, который исследователи никогда не должны злоупотреблять.

Самое реальное предложение, которое я хотел бы дать, это то, что вам нужно очень тщательно все продумать, прежде чем вы отправите заявку, и убедитесь, что вы сможете правдиво ответить на любые вопросы, заданные рецензентами. Пока вы сделали все возможное, ваши намерения честны и вы хорошо спите ночью, я думаю, что вы должны быть в порядке.


2
Я не уверен, что согласен с тем, что не могу обнаружить фальсификации: я уже видел такие раньше.
Алексис
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.