Як запустити двосторонню 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 для тестування білків та способів лікування, які значно відрізняються один від одного. Я знайшов щось про тест Крускаля-Валіса, але лише для одного фактора (?). Я також знайшов речі щодо ранжирування чи рандамізації, але ще не про те, як реалізувати ці методи в Р.

Хтось має пропозицію, що мені робити?

Редагувати: дякую за ваші відповіді, я трохи переповнений читанням (просто здається, що все більше, а не менше), але я, звичайно, продовжуватиму.

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

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 ( pervtation.edu/~dhowell/StatPages/More_Stuff/Permutation%20Anova/… ). При такому підході гетероскедастичність не має значення. Основна причина, по якій люди використовують тести з рангом, полягає в тому, що вони обчислюються набагато простіше. Це вже не має значення. У нас є R та ефективні комп’ютери ...
Мікко

1
Що таке відповідь? Зауважте, що нас насправді не хвилює, чи відповідь є нормально розподіленим - ми хочемо перевірити, чи є залишки в аналізі приблизно нормальними з подібними відхиленнями. Але якщо насправді є ефект лікування, ми не сподіваємось, що відповідь буде нормально розподілений незначно.
Дасон

1
Зауважу, що я просто схопив дані, які ви опублікували, і побіг anova двостороннім і зробив тест шапіро на залишках, і це дало значення p 0,5022, що не викликає занадто великого занепокоєння.
Дейсон

1
@ Сабінна нормальність часто не викликає особливих проблем, що стосується ANOVA, але ваші зразки повинні походити з тієї самої сукупності, що означає, що рівність дисперсій є найважливішим, припущення після рандомізації, звичайно. Вам слід щось зробити, якщо ваші відхилення приблизно не рівні (спробуйте ?bartlett.test)
Мікко

Відповіді:


12

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

По-перше, яка ваша змінна відповідь?

По-друге, зауважте, що граничний розподіл вашої відповіді не повинен бути нормальним, скоріше розподіл, що залежить від моделі (тобто, залишків), - не ясно, що ви перевірили своїх залишків. Крім того, нормальність є найменш важливим припущенням лінійної моделі (наприклад, ANOVA); залишки можуть не бути абсолютно нормальними. Тести на нормальність взагалі не варті (див. Тут для обговорення резюме), сюжети набагато кращі. Я б спробував qq-графік ваших залишків. У Rцьому робиться qqnorm(), або спробуйте qqPlot()вcarпакет. Варто також розглянути спосіб, як залишки ненормальні: косості більше шкоди, ніж надмірний куртоз, зокрема, якщо перекоси чергують напрямки між групами.

Якщо дійсно є проблема, про яку варто турбуватися, трансформація - це хороша стратегія. Отримання журналу ваших необроблених даних є одним із варіантів, але не єдиним. Зауважте, що центрування та стандартизація насправді не є трансформаціями в цьому сенсі. Ви хочете заглянути в сімейство сильних перетворень Box & Cox . І пам’ятайте, результат не повинен бути абсолютно нормальним, достатньо хорошим.

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

Якщо цих стратегій недостатньо, я б, ймовірно, вивчив стійку регресію, перш ніж спробувати непараметричний підхід.

Якщо ви можете відредагувати своє запитання та сказати більше про свої дані, я можу оновити це, щоб надати більш конкретну інформацію.


Щодо мого другого пункту, я нещодавно написав тут відповідь, яка може допомогти зробити це питання яснішим. Ви можете прочитати його.
gung - Відновіть Моніку

8

( зауважте: ця відповідь була розміщена до того, як питання було перенесено та об'єднано з SO, тому до питання, які тут не адресовані, додано детальну інформацію. Багато хто звертається у коментарях та відповіді @gung).

Існує багато різних підходів, і це питання висвітлено в інших місцях на цьому веб-сайті. Ось перелік деяких підходів із посиланнями на інші питання на сайті та деякі посилання .:

  1. Перетворення потужності Box-Cox може нормалізувати залишки, що знаходяться в нелінійному масштабі
  2. ANOVA за класифікованими даними дуже легко, але має меншу потужність і важко інтерпретувати. Див. Коновер та Іман, (1981)
  3. Пропорційна порядкова логістична модель
  4. Тести перестановки ( Anderson and ter Braak 2003 ), реалізовані та описані Андерсоном та як adonisфункція в пакеті R Vegan
  5. Запуск завантаження
  6. Ієрархічне байєсівське моделювання ( Гельман 2005 )

+1, це хороший список деяких доступних варіантів для вивчення.
gung - Відновіть Моніку

Нижче наведено коментарі, спочатку обмінювані на Stack Overflow, якось втрачені під час міграції. Див. Meta.stats.stackexchange.com/q/1157/930 .
chl

Чи знаєте ви, чи існує реалізація ідей Андерсона та Браака? - Генрік 16 травня о 15:15
чл

@Henrik є реалізація в FORTRAN Anderson 2005, яка доступна через функцію R adonisв Veganпакеті R / David 16 травня о 16:20
chl

Спасибі. adonisздається, працює навіть з універсальними телевізорами. Однак у мене є відчуття, що він використовує щось на кшталт сум 1 квадратів, коли я отримую повідомлення Terms added sequentially (first to last)кожного разу, коли його запускаю. Ви користувались ним чи можете щось про це сказати? - Генрік 16 травня о 17:03
чл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.