Как запустить двухстороннюю ANOVA на данных без нормальности и равенства дисперсии в R?

16

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

План состоял в том, чтобы провести простую ДВУХКОМПОНЕНТНУЮ по моим данным, которая основана на 3 разных белках и 8 разных обработках этих, поэтому два моих фактора - белки и лечение Я проверил на нормальность, используя оба

> shapiro.test(time)

и

> ks.test(time, "norm", mean=mean(time), sd=sqrt(var(time)))

В обоих случаях (возможно, не удивительно) я получил ненормальный дистрибутив.

Который оставил мне первые вопросы о том, какой тест использовать для равенства дисперсий. Я придумал

> chisq.test(time)

и результат был в том, что у меня нет равных в моих данных.

Я пробовал разные преобразования данных (журнал, центр, стандартизация), и все это не решало моих проблем с отклонениями.

Теперь я в растерянности, как проводить ANOVA для проверки того, какие белки и какие методы лечения значительно отличаются друг от друга. Я нашел кое-что о тесте Крускала-Валиса, но только для одного фактора (?). Я также нашел кое-что о ранжировании или рандомизации, но пока не понял, как реализовать эти методы в R.

У кого-нибудь есть предложение, что мне делать?

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

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

protein treatment   time  
A   con 2329.0  
A   HY  1072.0  
A   CL1 4435.0  
A   CL2 2971.0  
A   CL1-HY sim  823.5  
A   CL2-HY sim  491.5  
A   CL1+HY mix  2510.5  
A   CL2+HY mix  2484.5  
A   con 2454.0  
A   HY  1180.5  
A   CL1 3249.7  
A   CL2 2106.7  
A   CL1-HY sim  993.0  
A   CL2-HY sim  817.5  
A   CL1+HY mix  1981.0  
A   CL2+HY mix  2687.5  
B   con 1482.0  
B   HY  2084.7  
B   CL1 1498.0  
B   CL2 1258.5  
B   CL1-HY sim  1795.7  
B   CL2-HY sim  1804.5  
B   CL1+HY mix  1633.0  
B   CL2+HY mix  1416.3  
B   con 1339.0  
B   HY  2119.0  
B   CL1 1093.3  
B   CL2 1026.5  
B   CL1-HY sim  2315.5  
B   CL2-HY sim  2048.5  
B   CL1+HY mix  1465.0  
B   CL2+HY mix  2334.5  
C   con 1614.8  
C   HY  1525.5  
C   CL1 426.3  
C   CL2 1192.0  
C   CL1-HY sim  1546.0  
C   CL2-HY sim  874.5  
C   CL1+HY mix  1386.0  
C   CL2+HY mix  364.5  
C   con 1907.5  
C   HY  1152.5  
C   CL1 639.7  
C   CL2 1306.5  
C   CL1-HY sim  1515.0  
C   CL2-HY sim  1251.0  
C   CL1+HY mix  1350.5  
C   CL2+HY mix  1230.5
Сабин
источник
2
Казалось бы, вы хорошо справляетесь с R, но я чувствую, что ваши трудности могут быть не связаны с R вообще. Возможно, вам нужно сначала проконсультироваться со статистиком, чтобы разобраться в проблеме, только тогда вы практически решите эту проблему. Ваш текущий вопрос довольно сложный и может удержать людей от удара по нему. Для технической части, вот несколько сайтов: ats.ucla.edu/stat/R/seminars/Repeated_Measures/… и personal-project.org/R/r.anova.html
Роман Луштрик
4
Очень хорошей альтернативой ранговым тестам является использование перестановки ANOVA ( uvm.edu/~dhowell/StatPages/More_Stuff/Permutation%20Anova/… ). При таком подходе гетероскедастичность не имеет значения. Основная причина, по которой люди используют ранговые тесты, заключается в том, что в вычислительном отношении они намного проще. Это больше не имеет значения. У нас есть R и эффективные компьютеры ...
Микко
1
Что такое ответ? Обратите внимание, что на самом деле нас не волнует, является ли ответ нормальным распределением - мы хотим проверить, являются ли остатки от анализа приблизительно нормальными с подобными отклонениями. Но если на самом деле есть эффект лечения, мы не ожидаем, что ответ будет обычно распределен незначительно.
Дейсон
1
Я отмечу, что я только что собрал данные, которые вы разместили, и запустил двухстороннее anova, и провел тест Шапиро Уилкса на остатки, и это дало значение p 0,5022, что не вызывает особых проблем.
Дейсон
1
@ Нормальность Сабина часто не представляет большой проблемы для ANOVA, но ваши выборки должны быть из одной популяции, что означает, что равенство дисперсии является наиболее важным предположением после рандомизации, конечно. Вы должны что-то сделать, если ваши отклонения примерно не равны (попробуйте ?bartlett.test)
Микко

Ответы:

12

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

Во-первых, какова ваша переменная ответа?

Во-вторых, обратите внимание, что предельное распределение вашего ответа не обязательно должно быть нормальным, скорее должно быть распределение, зависящее от модели (т. Е. Остатки) - не ясно, что вы изучили свои остатки. Кроме того, нормальность является наименее важным предположением линейной модели (например, ANOVA); остатки, возможно, не должны быть совершенно нормальными. Испытания нормальности обычно не стоит (см здесь для обсуждения CV), участки гораздо лучше. Я бы попробовал qq-график ваших остатков. В Rэтом делается сqqnorm() , или попробовать qqPlot()вcarпакет. Стоит также рассмотреть манеру, в которой остаточные значения являются ненормальными: асимметрия является более разрушительной, чем избыточный эксцесс, особенно если перекосы чередуются в разных группах.

Если действительно есть проблема, о которой стоит беспокоиться, трансформация - это хорошая стратегия. Ведение журнала ваших необработанных данных является одним из вариантов, но не единственным. Обратите внимание, что центрирование и стандартизация не являются в этом смысле преобразованиями. Вы хотите взглянуть на семейство силовых трансформаций Box & Cox . И помните, результат не должен быть совершенно нормальным, достаточно хорошим.

Далее, я не слежу за тем, как вы используете критерий хи-квадрат для однородности дисперсии, хотя он может быть совершенно нормальным. Я хотел бы предложить вам использовать тест Левена (использовать leveneTest()вcar ). Гетерогенность является более разрушительной, чем ненормальность, но ANOVA является довольно устойчивой, если гетерогенность незначительна. Стандартное эмпирическое правило гласит, что наибольшая групповая дисперсия может быть в четыре раза меньше самой маленькой, не создавая серьезных проблем. Хорошая трансформация должна также учитывать неоднородность.

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

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

Gung - Восстановить Монику
источник
Что касается моего второго пункта, я недавно написал здесь ответ, который может помочь прояснить этот вопрос. Вы можете прочитать это.
gung - Восстановить Монику
8

( примечание: этот ответ был опубликован до того, как вопрос был перенесен и объединен с SO, поэтому к вопросу были добавлены подробности, которые здесь не рассматриваются. Многие из них рассматриваются в комментариях и ответе @gung).

Есть много разных подходов, и этот вопрос был рассмотрен в другом месте на этом сайте. Вот список некоторых подходов, со ссылками на другие вопросы на сайте и некоторыми ссылками.

  1. Преобразование мощности Бокса-Кокса может нормализовать невязки в нелинейном масштабе
  2. ANOVA для ранжированных данных очень проста, но имеет меньшую мощность и ее трудно интерпретировать. См. Коновер и Иман, (1981)
  3. Пропорциональные шансы порядковой логистической модели
  4. Тесты перестановок ( Anderson и ter Braak 2003 ), реализованные и описанные Anderson и как adonisфункция в пакете R Vegan
  5. Бутстрапирование
  6. Иерархическое байесовское моделирование ( Гельман 2005 )
Дэвид Лебауэр
источник
+1, это хороший список некоторых доступных вариантов для изучения.
gung - Восстановить Монику
Ниже приведены комментарии, которые первоначально были обменены на переполнение стека, так или иначе потерянные во время миграции. См. Meta.stats.stackexchange.com/q/1157/930 .
ЧЛ
Знаете ли вы, есть ли реализация идей Андерсона и Браака? - Хенрик 16 мая в 15:15
чел
@Henrik есть реализация в FORTRAN Anderson 2005 , который доступен через функцию R adonisв Veganпакете R / David 16 мая в 16:20
хл
Благодарю. adonisкажется, работает даже с одномерными DVS Однако у меня такое ощущение, что он использует что-то вроде суммы квадратов типа 1, так как я получаю сообщение, Terms added sequentially (first to last)когда запускаю его. Вы использовали это или можете сказать что-нибудь об этом? - Хенрик 16 мая в 17:03
ЧЛ