Jaka jest ważna analiza post hoc dla ANOVA z powtarzanymi pomiarami w trzech kierunkach?

10

Przeprowadziłem ANOVA z powtarzanymi potrójnymi pomiarami; jakie analizy post-hoc są ważne?

Jest to w pełni zbalansowany projekt (2x2x2) z jednym z czynników powtarzających się w obrębie badanych osób. Jestem świadomy wielowymiarowego podejścia do ANOVA z powtarzanymi pomiarami w R, ale moim pierwszym instynktem jest przejście do prostej ANOVA w stylu aov ():

aov.repeated <- aov(DV ~ IV1 * IV2 * Time + Error(Subject/Time), data=data)

DV = zmienna odpowiedzi

IV1 = zmienna niezależna 1 (2 poziomy, A lub B)

IV2 = zmienna niezależna 2 (2 poziomy, tak lub nie)

IV3 = Czas (2 poziomy, Przed lub Po)

Obiekt = ID podmiotu (40 wszystkich przedmiotów, 20 dla każdego poziomu IV1: nA = 20, nB = 20)

summary(aov.repeated)

    Error: Subject
          Df Sum Sq Mean Sq F value   Pr(>F)   
IV1       1   5969  5968.5  4.1302 0.049553 * 
IV2       1   3445  3445.3  2.3842 0.131318   
IV1:IV2   1  11400 11400.3  7.8890 0.007987 **
Residuals 36  52023  1445.1                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

Error: Subject:Time
               Df Sum Sq Mean Sq F value   Pr(>F)   
Time            1    149   148.5  0.1489 0.701906   
IV1:Time        1    865   864.6  0.8666 0.358103   
IV2:Time        1  10013 10012.8 10.0357 0.003125 **
IV1:IV2:Time    1    852   851.5  0.8535 0.361728   
Residuals      36  35918   997.7                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

Alternatywnie, myślałem o użyciu pakietu nlme dla ANOVA w stylu lme:

aov.repeated2 <- lme(DV ~ IV1 * IV2 * Time, random = ~1|Subject/Time, data=data)
summary(aov.repeated2)

Fixed effects: DV ~ IV1 * IV2 * Time 
                                Value Std.Error DF   t-value p-value
(Intercept)                      99.2  11.05173 36  8.975972  0.0000
IV1                              19.7  15.62950 36  1.260437  0.2156
IV2                              65.9  15.62950 36  4.216385  0.0002 ***
Time                             38.2  14.12603 36  2.704228  0.0104 *
IV1:IV2                         -60.8  22.10346 36 -2.750701  0.0092 **
IV1:Time                        -26.2  19.97722 36 -1.311494  0.1980
IV2:Time                        -57.8  19.97722 36 -2.893295  0.0064 **
IV1:IV2:Time                     26.1  28.25206 36  0.923826  0.3617

Mój pierwszy instynkt post hoc znaczących dwukierunkowych interakcji z Tukey kontrastuje za pomocą glht () z pakietu multcomp:

data$IV1IV2int <- interaction(data$IV1, data$IV2)
data$IV2Timeint <- interaction(data$IV2, data$Time)

aov.IV1IV2int <- lme(DV ~ IV1IV2int, random = ~1|Subject/Time, data=data)
aov.IV2Timeint <- lme(DV ~ IV2Timeint, random = ~1|Subject/Time, data=data)

IV1IV2int.posthoc <- summary(glht(aov.IV1IV2int, linfct = mcp(IV1IV2int = "Tukey")))
IV2Timeint.posthoc <- summary(glht(aov.IV2Timeint, linfct = mcp(IV2Timeint = "Tukey")))

IV1IV2int.posthoc
#A.Yes - B.Yes == 0        0.94684   
#B.No - B.Yes == 0         0.01095 * 
#A.No - B.Yes == 0         0.98587    I don't care about this
#B.No - A.Yes == 0         0.05574 .  I don't care about this
#A.No - A.Yes == 0         0.80785   
#A.No - B.No == 0          0.00346 **

IV2Timeint.posthoc 
#No.After - Yes.After == 0           0.0142 *
#Yes.Before - Yes.After == 0         0.0558 .
#No.Before - Yes.After == 0          0.5358   I don't care about this
#Yes.Before - No.After == 0          0.8144   I don't care about this
#No.Before - No.After == 0           0.1941  
#No.Before - Yes.Before == 0         0.8616

Głównym problemem, jaki widzę w tych analizach post-hoc, są niektóre porównania, które nie są przydatne w moich hipotezach.

Dziękujemy za wszelkie sugestie dotyczące odpowiedniej analizy post-hoc.

Edycja: Odpowiednie pytanie i odpowiedź wskazujące na przetestowanie ręcznych matryc kontrastowych

RobJackson28
źródło
Twój model z efektem losowym wygląda dziwnie: /jest używany do oznaczania zagnieżdżenia (jak zwykle widać w eksperymencie z podzieloną fabułą), w przeciwieństwie do jego zastosowania w zakresie, Errorw aov()którym wskazuje głównie, jak budować warstwy błędów .
chl
@chl Sformatowałem Errortermin w aov()ten sposób, aby określić, że Timejest to czynnik wewnątrz grup. Od Barona Error(subj/(color + shape))wydaje się być używany w ten sam sposób.
RobJackson28
@chl Dziękujemy za podniesienie lmemodelu, nie jestem pewien , jak prawidłowo go używać /. Jak określiłbyś Timejako czynnik wewnątrz grup jak w Error()przypadku aov()?
RobJackson28

Odpowiedzi:

2

Myślę, że statystycy powiedzą ci, że zawsze jest problem z każdą analizą post hoc, ponieważ widzenie danych może wpływać na to, na co patrzysz, i możesz być stronniczy, ponieważ polujesz na znaczące wyniki. FDA w badaniach klinicznych wymaga, aby plan statystyczny był całkowicie zapisany w protokole. w modelu liniowym z pewnością można wcześniej określić kontrasty, na które chciałbyś spojrzeć w przypadku, gdy ANOVA lub ANCOVA znajdzie ogólną różnicę. Takie uprzednio określone kontrasty byłyby w porządku, o ile tylko ich częścią jest zwykłe leczenie mnogości.

Michael R. Chernick
źródło
Jest to w zasadzie problem, zważywszy, że analiza została mi przekazana (bez żadnego planowania statystycznego z góry innego niż „przeprowadźmy kilka testów t”). Udało mi się przedstawić podstawowe hipotezy, które pierwotnie były zamierzone, ale mam trochę problemów ze składnią post-hoc. Uzasadnieniem wszystkich tych kroków dla eksperymentatora jest mój główny cel, aby uniknąć dogmatu o teście. Ostateczny cel: uczynić planowanie statystyczne koniecznością dla przyszłych projektów eksperymentalnych. Na razie muszę pracować z tym, co mam.
RobJackson28
1
Następnie chciałbym tylko dodać, że jeśli chcesz kontynuować analizy post-hoc, nie widzę problemu, pod warunkiem, że wykonasz odpowiednie dostosowanie krotności.
Michael R. Chernick
1
Czy mam rację, zakładając, że korekty dotyczące wielu uczestników są analogiczne do korekt błędów rodzinnych? Np. Tukey's, Bonferroni itp.?
RobJackson28
Dokładnie tak. metody ładowania i permutacji są również dostępne w SAS, na przykład z Proc MULTTEST. Zobacz prace Westfall and Young.
Michael R. Chernick
Dziękuję za pomoc @ Michael, doceniam to. Jednak nadal nie jestem pewien, jakiej składni użyć R. W szczególności nie jestem pewien, czy najbardziej odpowiednie jest ręczne określenie macierzy kontrastu dla odpowiednich kontrastów Tukey za pomocą glht()lub domyślne wykonanie wszystkich porównań. Ponadto nie jestem pewien, jak właściwie radzić sobie z powtarzaną miarą Timepost-hoc.
RobJackson28
1

Jeśli masz pakiet oprogramowania, taki jak SAS, prawdopodobnie użyłbyś proc mixed do wykonania modelu mieszanego z powtarzanymi pomiarami i jeśli określisz, który kontrast chcesz użyć SAS, odpowiednio go obsłuży. Możesz to również zrobić z powtarzającą się opcją w PROC GLM, ale bądź ostrożny, ponieważ zachowują się inaczej i przyjmują różne założenia. Powtarzające się obserwacje są zwykle skorygowane, ponieważ mają coś wspólnego. Często powtarzałem pomiary u tego samego pacjenta w różnych punktach czasowych. Tak więc przy obliczaniu kontrastów w grę wchodzą terminy kowariancji.

Michael R. Chernick
źródło