ANOVA de efecto mixto desequilibrado para medidas repetidas

17

Tengo datos de pacientes tratados con 2 tipos diferentes de tratamientos durante la cirugía. Necesito analizar su efecto sobre la frecuencia cardíaca. La medición del ritmo cardíaco se toma cada 15 minutos.

Dado que la duración de la cirugía puede ser diferente para cada paciente, cada paciente puede tener entre 7 y 10 mediciones de frecuencia cardíaca. Por lo tanto, se debe utilizar un diseño desequilibrado. Estoy haciendo mi análisis usando R. Y he estado usando el paquete ez para hacer ANOVA de efecto mixto de medidas repetidas. Pero no sé cómo analizar datos desequilibrados. ¿Alguien puede ayudar?

También se aceptan sugerencias sobre cómo analizar los datos.

Actualización:
como sugerí, ajusté los datos usando la lmerfunción y descubrí que el mejor modelo es:

heart.rate~ time + treatment + (1|id) + (0+time|id) + (0+treatment|time)

con el siguiente resultado:

Random effects:
 Groups   Name        Variance   Std.Dev. Corr   
 id       time        0.00037139 0.019271        
 id       (Intercept) 9.77814104 3.127002        
 time     treat0      0.09981062 0.315928        
          treat1      1.82667634 1.351546 -0.504 
 Residual             2.70163305 1.643665        
Number of obs: 378, groups: subj, 60; time, 9

Fixed effects:
             Estimate Std. Error t value
(Intercept) 72.786396   0.649285  112.10
time         0.040714   0.005378    7.57
treat1       2.209312   1.040471    2.12

Correlation of Fixed Effects:
       (Intr) time  
time   -0.302       
treat1 -0.575 -0.121

Ahora estoy perdido interpretando el resultado. ¿Estoy en lo cierto al concluir que los dos tratamientos difieren en afectar la frecuencia cardíaca? ¿Qué significa la correlación de -504 entre treat0 y treat1?

biostat_newbie
fuente
Antes de actualizar la respuesta, ¿es el tratamiento un factor repetido? es decir, ¿recibe cada sujeto el tratamiento "a" y el tratamiento "b" o es un factor entre sujetos?
Matt Albrecht
El tratamiento es un factor entre sujetos. Cada sujeto solo recibe 1 tipo de tratamiento. Codifiqué los dos tratamientos como 1 y 0 y establecí el tratamiento como una variable de factor.
biostat_newbie

Respuestas:

15

Las funciones lme / lmer de los paquetes nlme / lme4 pueden manejar diseños desequilibrados. Debe asegurarse de que el tiempo sea una variable numérica. También es probable que también desee probar diferentes tipos de curvas. El código se verá así:

library(lme4)
#plot data with a plot per person including a regression line for each
xyplot(heart.rate ~ time|id, groups=treatment, type= c("p", "r"), data=heart)

#Mixed effects modelling
#variation in intercept by participant
lmera.1 <- lmer(heart.rate ~ treatment * time + (1|id), data=heart)
#variation in intercept and slope without correlation between the two
lmera.2 <- lmer(heart.rate ~ treatment * time + (1|id) + (0+time|id), data=heart)
#As lmera.1 but with correlation between slope and intercept
lmera.3 <- lmer(heart.rate ~ treatment * time + (1+time|id), data=heart)

#Determine which random effects structure fits the data best
anova(lmera.1, lmera.2, lmera.3)

Para obtener modelos cuadráticos, use la fórmula "heart.rate ~ tratamiento * tiempo * I (tiempo ^ 2) + (efectos aleatorios)".

Actualización:
en este caso donde el tratamiento es un factor entre sujetos, me apegaría a las especificaciones del modelo anteriores. No creo que el término (0 + tratamiento | tiempo) sea uno que desee incluir en el modelo, para mí no tiene sentido en este caso tratar el tiempo como una variable de agrupación de efectos aleatorios.

Pero para responder a su pregunta de "qué significa la correlación -0.504 entre treat0 y treat1 ", este es el coeficiente de correlación entre los dos tratamientos donde cada agrupación de tiempo es un par de valores. Esto tiene más sentido si id es el factor de agrupación y el tratamiento es una variable dentro de los sujetos. Luego tiene una estimación de la correlación entre las intersecciones de las dos condiciones.

Antes de sacar conclusiones sobre el modelo, vuelva a instalarlo con lmera.2 e incluya REML = F. Luego cargue el paquete "languageR" y ejecute:

plmera.2<-pvals.fnc(lmera.2)
plmera.2

Entonces puede obtener valores p, pero por su aspecto, probablemente haya un efecto significativo del tiempo y un efecto significativo del tratamiento.

Matt Albrecht
fuente
1
¿Se debe establecer el argumento REML de lmer en FALSE al generar esos modelos, ya que finalmente se compararán con la función anova ()?
Mike Lawrence
77
Al comparar modelos usando pruebas de razón de probabilidad, puede comparar diferentes estructuras de efectos aleatorios usando REML (probabilidad máxima restringida / residual, como arriba), pero debe usar ML (probabilidad máxima) para comparar diferentes modelos de efectos fijos .
parada el
¿No debería ser el tiempo un efecto aleatorio ya que las mediciones de la frecuencia cardíaca son muestras tomadas durante la cirugía? Si este es el caso, ¿tendría sentido el siguiente ajuste (ya que todavía estoy leyendo sobre la función lmer y no he entendido bien la sintaxis)? lmer (heart.rate ~ tratamiento + (1 | id) + (1 + tiempo), data = heart)
biostat_newbie
1
El término '(tiempo | id)' en el lado de los efectos aleatorios le dice a la función que se ajuste a diferentes pendientes (lineales) para cada persona. Por lo tanto, puede tener tiempo como un efecto fijo y un efecto aleatorio, pero significan cosas diferentes. Eche un vistazo al ejemplo de sleepstudy en el libro de Douglas Bates: lme4.r-forge.r-project.org/book/Ch4.pdf
Matt Albrecht
2
No entiendo cómo para diseños de medidas repetidas, lmerse sugiere en lugar de los buenos viejos lme. En tales diseños, los efectos aleatorios cruzados, la fuerza principal para lmer, son raros, pero a menudo desea modelar la estructura de correlación de los residuos. Por lo que yo entiendo lmerno es compatible con eso, pero lo lmehace. ¿Me equivoco al suponer que en tales casos lmeres una herramienta inferior en comparación lme?
AlefSin