Чому lme та aov повертають різні результати для повторних заходів ANOVA в R?


24

Я намагаюся перейти від використання ezпакету до lmeповторних заходів ANOVA (оскільки, я сподіваюся, я зможу використовувати власні контрасти на с lme).

Дотримуючись поради з цього допису в блозі, я зміг налаштувати ту саму модель, використовуючи як aov(так і ezза запитом) та lme. Однак, хоча у прикладі, наведеному в цій публікації, значення F добре узгоджуються між собою aovі lme(я перевірив це, і вони роблять), це не стосується моїх даних. Хоча значення F подібні, вони не однакові.

aovповертає значення f 1,3399, lmeповертає 1,336264. Я готовий прийняти aovрезультат як "правильний", оскільки це також те, що повертає SPSS (і це те, що вважається моїм полем / керівником).

Запитання:

  1. Було б чудово, якби хтось міг пояснити, чому така різниця існує, і як я можу використовувати lmeдля отримання достовірних результатів. (Я також хотів би використати lmerзамість lmeцього типу матеріалів, якщо це дає "правильний" результат. Однак я поки не використовував його.)

  2. Після вирішення цієї проблеми я хотів би провести контрастний аналіз. Особливо мені було б цікаво контрастність об'єднання перших двох рівнів фактора (тобто c("MP", "MT")) і порівняння цього з третім рівнем фактора (тобто "AC"). Крім того, тестування третього проти четвертого рівня фактору (тобто "AC"проти "DA").

Дані:

tau.base <- structure(list(id = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 
9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 
22L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 
14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 1L, 2L, 3L, 4L, 
5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 
19L, 20L, 21L, 22L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 
11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L), .Label = c("A18K", 
"D21C", "F25E", "G25D", "H05M", "H07A", "H08H", "H25C", "H28E", 
"H30D", "J10G", "J22J", "K20U", "M09M", "P20E", "P26G", "P28G", 
"R03C", "U21S", "W08A", "W15V", "W18R"), class = "factor"), factor = structure(c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L), .Label = c("MP", "MT", "AC", "DA"
), class = "factor"), value = c(0.9648092876, 0.2128662077, 1, 
0.0607615485, 0.9912814024, 3.22e-08, 0.8073856412, 0.1465590332, 
0.9981672618, 1, 1, 1, 0.9794401938, 0.6102546108, 0.428651501, 
1, 0.1710644881, 1, 0.7639763913, 1, 0.5298989196, 1, 1, 0.7162733447, 
0.7871177434, 1, 1, 1, 0.8560509327, 0.3096989662, 1, 8.51e-08, 
0.3278862311, 0.0953598576, 1, 1.38e-08, 1.07e-08, 0.545290432, 
0.1305621416, 2.61e-08, 1, 0.9834051136, 0.8044114935, 0.7938839461, 
0.9910112678, 2.58e-08, 0.5762677121, 0.4750002288, 1e-08, 0.8584252623, 
1, 1, 0.6020385797, 8.51e-08, 0.7964935271, 0.2238374288, 0.263377904, 
1, 1.07e-08, 0.3160751898, 5.8e-08, 0.3460325565, 0.6842217296, 
1.01e-08, 0.9438301877, 0.5578367224, 2.18e-08, 1, 0.9161424562, 
0.2924856039, 1e-08, 0.8672987992, 0.9266688748, 0.8356425464, 
0.9988463913, 0.2960361777, 0.0285680426, 0.0969063841, 0.6947998266, 
0.0138254805, 1, 0.3494775301, 1, 2.61e-08, 1.52e-08, 0.5393467752, 
1, 0.9069223275)), .Names = c("id", "factor", "value"), class = "data.frame", row.names = c(1L, 
6L, 10L, 13L, 16L, 17L, 18L, 22L, 23L, 24L, 27L, 29L, 31L, 33L, 
42L, 43L, 44L, 45L, 54L, 56L, 58L, 61L, 64L, 69L, 73L, 76L, 79L, 
80L, 81L, 85L, 86L, 87L, 90L, 92L, 94L, 96L, 105L, 106L, 107L, 
108L, 117L, 119L, 121L, 124L, 127L, 132L, 136L, 139L, 142L, 143L, 
144L, 148L, 149L, 150L, 153L, 155L, 157L, 159L, 168L, 169L, 170L, 
171L, 180L, 182L, 184L, 187L, 190L, 195L, 199L, 202L, 205L, 206L, 
207L, 211L, 212L, 213L, 216L, 218L, 220L, 222L, 231L, 232L, 233L, 
234L, 243L, 245L, 247L, 250L))

І код:

require(nlme)

summary(aov(value ~ factor+Error(id/factor), data = tau.base))

anova(lme(value ~ factor, data = tau.base, random = ~1|id))

Схоже, ви щойно відповіли на частину про протиставлення себе у своїй відповіді тут ; якщо ні, будь ласка, відредагуйте це питання, щоб ми знали, яка складність залишається
Аарон - Відновити Моніку

2
@ Aaron, якщо існують різні відмінності в lmeрезультатах із стандартного підручника ANOVA (надано aov, і це те, що мені потрібно), це для мене не варіант. У своїй роботі я хочу повідомити про ANOVA, а не про щось на зразок ANOVA. Цікаво, що Venables & Ripley (2002, стор. 285) показують, що обидва підходи призводять до однакових оцінок. Але відмінності у значеннях F залишають у мене погані відчуття. Крім того, Anova()car) повертає лише Chi²-значення для lmeоб'єктів. Тому для мене на моє перше запитання ще не відповіли.
Генрік

Я розумію (але не поділяю) вашу настороженість lme; але для контрастів glhtробота на lmпідходах теж не просто lmeпідходить. (Також lmeрезультати є стандартними результатами підручника.)
Аарон - Відновити Моніку

На жаль, ви не можете вказати lmдля повторного аналізу вимірювань. Тільки aovможе мати справу з повторними заходами, але поверне об'єкт класу, aovlistякий, на жаль, не обробляється glht.
Генрік

3
lmвикористовує залишкову помилку як термін помилки для всіх ефектів; коли є ефекти, які повинні використовувати інший термін помилки, aovнеобхідно (або замість цього, використовуючи результати lmдля обчислення F-статистики вручну). У вашому прикладі термін помилки factor- це id:factorвзаємодія, яка є залишковим терміном помилки в адитивній моделі. Порівняйте свої результати з anova(lm(value~factor+id)).
Аарон - Відновити Моніку

Відповіді:


28

Вони відрізняються тим, що модель lme змушує компонент дисперсії idбути більшим за нуль. Переглядаючи необроблену таблицю anova для всіх термінів, ми бачимо, що середня помилка квадрата для id менша, ніж для залишків.

> anova(lm1 <- lm(value~ factor+id, data=tau.base))

          Df  Sum Sq Mean Sq F value Pr(>F)
factor     3  0.6484 0.21614  1.3399 0.2694
id        21  3.1609 0.15052  0.9331 0.5526
Residuals 63 10.1628 0.16131   

Коли ми обчислюємо компоненти дисперсії, це означає, що дисперсія через id буде негативною. Моя пам’ять очікуваної середньої площі пам’яті хитка, але обчислення щось подібне

(0.15052-0.16131)/3 = -0.003597.

Це звучить дивно, але може статися. Це означає, що середні значення для кожного id ближче один до одного, ніж ви очікували б один одного, враховуючи кількість залишкової зміни в моделі.

На противагу цьому, використовуючи lme, ця дисперсія буде більшою за нуль.

> summary(lme1 <- lme(value ~ factor, data = tau.base, random = ~1|id))
...
Random effects:
 Formula: ~1 | id
        (Intercept)  Residual
StdDev: 3.09076e-05 0.3982667

Це повідомляє про стандартні відхилення, порівнюючи, щоб отримати вихід дисперсії 9.553e-10для дисперсії id та 0.1586164для залишкової дисперсії.

Тепер ви повинні знати, що використання aovдля повторних заходів є доцільним лише у тому випадку, якщо ви вважаєте, що кореляція між усіма парами повторних заходів однакова; це називається складовою симетрією. (Технічно, сферичності потрібна , але цього досить для тепер.) Однією з причин для використання lmeбільш aov, що він може обробляти різні види кореляційних структур.

У цьому конкретному наборі даних оцінка цієї кореляції є негативною; це допомагає пояснити, як середня помилка квадрата для id була меншою, ніж залишкова помилка квадрата. Негативна кореляція означає, що якби перший показник у індивіда був нижче середнього, їх другий показник був би вище середнього, що зробило б загальні середні показники для індивідів менш змінними, ніж ми могли б очікувати, якщо буде нульова кореляція чи позитивна кореляція.

Використання lmeз випадковим ефектом еквівалентно встановленню складної моделі симетрії, коли ця кореляція вимушена бути негативною; ми можемо підігнати модель, коли кореляція дозволена негативною, використовуючи gls:

> anova(gls1 <- gls(value ~ factor, correlation=corCompSymm(form=~1|id),
                    data=tau.base))
Denom. DF: 84 
            numDF   F-value p-value
(Intercept)     1 199.55223  <.0001
factor          3   1.33985   0.267

Ця таблиця ANOVA узгоджується з таблицею з aovпристосування та з lmпристосування.

Добре, так що? Що ж, якщо ви вважаєте, що відхилення від idспостережень і співвідношення між спостереженнями мають бути негативними, то lmeпридатність насправді доцільніше, ніж придатність із застосуванням, aovабо lmоскільки її оцінка залишкової дисперсії трохи краща. Тим НЕ менше, якщо ви вважаєте , що кореляція між спостереженнями може бути негативним, aovабо lmчи glsкраще.

Можливо, вам також буде цікаво вивчити кореляційну структуру; щоб переглянути загальну структуру кореляції, ви зробите щось подібне

gls2 <- gls(value ~ factor, correlation=corSymm(form=~unclass(factor)|id),
data=tau.base)

Тут я обмежую лише вихід на кореляційну структуру. Значення від 1 до 4 представляють чотири рівні factor; ми бачимо, що фактор 1 і фактор 4 мають досить сильну негативну кореляцію:

> summary(gls2)
...
Correlation Structure: General
 Formula: ~unclass(factor) | id 
 Parameter estimate(s):
 Correlation: 
  1      2      3     
2  0.049              
3 -0.127  0.208       
4 -0.400  0.146 -0.024

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

> anova(lme1, gls2)
     Model df      AIC      BIC    logLik   Test  L.Ratio p-value
lme1     1  6 108.0794 122.6643 -48.03972                        
gls2     2 11 111.9787 138.7177 -44.98936 1 vs 2 6.100725  0.2965

2
Насправді можна використовувати складну симетрію, lmeщоб отримати ті самі результати, що і для aov(і тим самим уможливити lmeдля всіх ANOVA), а саме використовувати аргументацію кореляції у заклику до lme:anova(lme(value ~ factor, data = tau.base, random = ~1|id, correlation = corCompSymm(form = ~1|id)))
Генрік,

1
Приємна знахідка. Але хіба немає додаткового параметра, який підходить? Він має три параметри дисперсії; дисперсія для id, залишкової дисперсії та кореляції, тоді як gls має лише залишкову дисперсію та кореляцію.
Аарон - Відновити Моніку

1
Ваш аргумент звучить правдоподібно, проте результати не згодні. Всі таблиці ANOVA ( aov, lmeбез з'єднання симетрії, і lmeз з'єднанням симетрії) мають точно таку ж кількість ДФСА.
Генрік

1
Вам доведеться переконати мене, що ці три параметри справді є надмірною параметризацією перших двох. Ви розробили, як вони пов’язані?
Аарон - Відновити Моніку

1
Ні. Я довіряю результатам anova.lme(). З вашої відповіді я зрозумів, що співвідношення між ANOVA та змішаними моделями полягає у їх кореляційній структурі. Потім я прочитав, що накладення симетричної кореляційної структури обчислювальної системи призводить до рівності між двома підходами. Тому я наклав це. Я поняття не маю, якщо це з'їсть інший df. Однак результат не погоджується з цією інтерпретацією.
Генрік

2

aov()підходить до моделі за lm()допомогою використання найменших квадратів, lmeпідходить з максимальною ймовірністю. Ця різниця в тому, як оцінюються параметри лінійної моделі, ймовірно, пояснює (дуже малу) різницю ваших f-значень.

На практиці (наприклад, для тестування гіпотез) ці оцінки однакові, тому я не бачу, як можна було б вважати "надійнішими", ніж інші. Вони походять від різних примірних парадигм.

Для контрастів потрібно встановити контрастну матрицю для ваших факторів. Венеблі і Ріплі показують, як це зробити на стор 143, с.146 та с.293-294 4-го видання.


Хм, але чому тоді іноді існують відмінності, а часом результати точно рівні? З іншого боку, тоді, здається, неможливо використовувати lmeабо lmerдля обчислення ANOVA (строго кажучи), оскільки він використовує метод, подібний, але не тотожний. Тож чи не існує можливості обчислити контрастність для повторного вимірювання ANOVA в R?
Генрік

Якщо система, для якої ви моделюєте, справді лінійна, ніж найменші квадрати, і ML має дати однакову статистику. Тільки тоді, коли в даних є інша структура, ці два методи дадуть різні результати. Пінхайро та Бейтс висвітлюють це у своїй книзі моделей зі змішаними ефектами. Крім того, вони, ймовірно, не "точно" рівні, якби ви ходили досить далеко в знакових цифрах, я впевнений, що ви знайдете якусь різницю. Але для всіх практичних цілей вони однакові.
Кріс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.