O que é uma análise post-hoc válida para uma ANOVA de três medidas repetidas?

10

Eu realizei uma ANOVA de três medidas repetidas; que análises post-hoc são válidas?

Este é um design totalmente equilibrado (2x2x2) com um dos fatores que possui uma medida repetida dentro dos sujeitos. Estou ciente das abordagens multivariadas para ANOVA de medidas repetidas em R, mas meu primeiro instinto é prosseguir com um estilo simples de ANOVA aov ():

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

DV = variável de resposta

IV1 = variável independente 1 (2 níveis, A ou B)

IV2 = variável independente 2 (2 níveis, Sim ou Não)

IV3 = Tempo (2 níveis, Antes ou Depois)

Assunto = ID do sujeito (40 indivíduos no total, 20 para cada nível de 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 

Como alternativa, eu estava pensando em usar o pacote nlme para uma ANOVA no estilo 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

Meu primeiro instinto post-hoc de interações bidirecionais significativas com Tukey contrasta usando glht () do pacote 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

O principal problema que vejo nessas análises post-hoc são algumas comparações que não são úteis para minhas hipóteses.

Quaisquer sugestões para uma análise post-hoc apropriada são muito apreciadas, obrigado.

Editar: pergunta e resposta relevantes que apontam para o teste de matrizes de contraste manuais

RobJackson28
fonte
Seu modelo de efeito aleatório parece estranho: /é usado para denotar aninhamento (como normalmente visto em um experimento de plotagem dividida), diferentemente de seu uso no Errortermo aov()em que indica principalmente como criar estratos de erro .
chl 14/05
@chl Formatei o Errortermo aov()dessa maneira para especificar que Timeé o fator dentro dos grupos. De Baron Error(subj/(color + shape))parece ser usado da mesma maneira.
RobJackson28
@chl Obrigado por apresentar o lmemodelo, não estou claro sobre o uso adequado de /. Como você especificar Timecomo o fator dentro de-grupos como na Error()com aov()?
RobJackson28

Respostas:

2

Acho que os estatísticos lhe dirão que sempre há um problema com qualquer análise post hoc, porque ver os dados pode influenciar o que você olha e você pode ser tendencioso porque está procurando resultados significativos. A FDA em estudos de ensaios clínicos exige que o plano estatístico seja completamente descrito no protocolo. em um modelo linear, você certamente poderia pré-especificar os contrastes que gostaria de examinar caso a ANOVA ou a ANCOVA encontre uma diferença geral. Tais contrastes pré-especificados seriam bons de olhar, desde que o tratamento usual para a multiplicidade também faça parte dele.

Michael R. Chernick
fonte
Esse é o problema que estou tendo, considerando que a análise foi entregue a mim (sem nenhum planejamento estatístico a priori, exceto "vamos executar um monte de testes t"). Consegui destilar as hipóteses básicas pretendidas originalmente, mas estou tendo um pequeno problema com a sintaxe post-hoc. Justificar todas essas etapas para o experimentador é meu principal objetivo, a fim de evitar o dogma do teste t. O objetivo final: tornar o planejamento estatístico uma necessidade para futuros projetos experimentais. Por enquanto, tenho que trabalhar com o que tenho.
RobJackson28
11
Tudo o que eu gostaria de acrescentar é que, se você quiser prosseguir com análises post-hoc, não vejo problema desde que faça o ajuste apropriado da multiplicidade.
Michael R. Chernick 14/05
11
Estou correto ao supor que os ajustes de multiplicidade são análogos aos ajustes de erro familiares? Por exemplo, Tukey, Bonferroni, etc.?
RobJackson28
Exatamente certo. métodos de inicialização e permutação também estão disponíveis no SAS, por exemplo, com o Proc MULTTEST. Veja o trabalho de Westfall e Young.
Michael R. Chernick 14/05
Obrigado pela assistência @ Michael, agradeço. No entanto, ainda não estou claro a sintaxe para usar R. Especificamente, não tenho certeza se é mais apropriado especificar manualmente matrizes de contraste para os contrastes relevantes de Tukey usando glht()ou executar todas as comparações por padrão. Além disso, não sei como lidar adequadamente com a medida repetida de Timeem termos de post-hoc.
RobJackson28
1

Se você possui um pacote de software como o SAS, provavelmente utilizaria proc mixed para executar o modelo misto de medidas repetidas e se especificar qual contraste deseja usar o SAS o tratará adequadamente para você. Você também pode fazer isso com a opção repetida no PROC GLM, mas tenha cuidado, pois eles se comportam de maneira diferente e fazem suposições diferentes. As observações repetidas são geralmente corrigidas porque têm algo em comum. Frequentemente, tenho repetido medidas no mesmo paciente em diferentes momentos. Assim, ao calcular os contrastes, os termos de covariância entram no problema.

Michael R. Chernick
fonte