Introducción
Tengo participantes que están tocando repetidamente superficies contaminadas con E. coli en dos condiciones ( A = usando guantes, B = sin guantes). Quiero saber si hay una diferencia entre la cantidad de bacterias en la punta de los dedos con y sin guantes, pero también entre la cantidad de contactos. Ambos factores están dentro del participante.
Método experimental:
Los participantes (n = 35) tocan cada cuadrado una vez con el mismo dedo para un máximo de 8 contactos (ver figura a).
Luego froto el dedo del participante y mido las bacterias en la punta del dedo después de cada contacto. Luego usan un dedo nuevo para tocar un número diferente de superficies y así sucesivamente de 1 a 8 contactos (ver figura b).
Aquí están los datos reales : datos reales
Los datos no son normales, por lo tanto, consulte la distribución marginal de bacterias | Número de contactos a continuación. x = bacterias. Cada faceta es un número diferente de contactos.
MODELO
Intentando desde lme4 :: glmer basado en las sugerencias de amebas usando Gamma (link = "log") y polinomio para NumberContacts:
cfug<-glmer(CFU ~ Gloves + poly(NumberContacts,2) + (-1+NumberContacts|Participant),
data=(K,CFU<4E5),
family=Gamma(link="log")
)
plot(cfug)
NÓTESE BIEN. Gamma (enlace = "inverso") no se ejecutará diciendo que la reducción a la mitad PIRLS no pudo reducir la desviación.
Resultados:
Equipado vs residuales para cfug
qqp (resid (cfug))
Pregunta:
¿Está mi modelo glmer correctamente definido para incorporar los efectos aleatorios de cada participante y el hecho de que todos hacen el experimento A seguido del experimento B ?
Adición:
La autocorrelación parece existir entre los participantes. Esto probablemente se deba a que no se analizaron el mismo día y el matraz de bacterias crece y disminuye con el tiempo. ¿Importa?
acf (UFC, retraso = 35) muestra una correlación significativa entre un participante y el siguiente.
NumberContacts
como factor numérico e incluir términos polinómicos cuadráticos / cúbicos. O busque en modelos mixtos aditivos generalizados.CFU ~ Gloves * poly(NumberContacts,2) + (Gloves * poly(NumberContacts,2) | Participant)
o algo así?CFU ~ Gloves * poly(NumberContacts,2) + (Gloves + poly(NumberContacts,2) | Participant)
o tal vez quitar los guantes de allíCFU ~ Gloves * poly(NumberContacts,2) + (poly(NumberContacts,2) | Participant)
...Gloves * poly(NumberContacts,2) + (poly(NumberContacts,2) | Participant)
es un modelo bastante decente.Respuestas:
Algunas parcelas para explorar los datos.
A continuación hay ocho, uno para cada número de contactos de superficie, gráficos xy que muestran guantes versus no guantes.
Cada individuo se traza con un punto. La media, la varianza y la covarianza se indican con un punto rojo y la elipse (la distancia de Mahalanobis corresponde al 97,5% de la población).
La pequeña correlación muestra que de hecho hay un efecto aleatorio de los individuos (si no hubo un efecto de la persona, entonces no debería haber correlación entre los guantes emparejados y los guantes). Pero es solo un efecto pequeño y un individuo puede tener diferentes efectos aleatorios para 'guantes' y 'sin guantes' (por ejemplo, para todos los puntos de contacto diferentes, el individuo puede tener conteos consistentemente más altos / bajos para 'guantes' que 'sin guantes') .
Debajo de la parcela hay parcelas separadas para cada una de las 35 personas. La idea de este gráfico es ver si el comportamiento es homogéneo y también qué tipo de función parece adecuada.
Tenga en cuenta que el 'sin guantes' está en rojo. En la mayoría de los casos, la línea roja es más alta, más bacterias para los casos 'sin guantes'.
Creo que una trama lineal debería ser suficiente para capturar las tendencias aquí. La desventaja de la gráfica cuadrática es que los coeficientes serán más difíciles de interpretar (no verá directamente si la pendiente es positiva o negativa porque el término lineal y el término cuadrático influyen en esto).
Pero lo más importante es que ve que las tendencias difieren mucho entre los diferentes individuos y, por lo tanto, puede ser útil agregar un efecto aleatorio no solo para la intercepción, sino también la pendiente del individuo.
Modelo
Con el modelo de abajo
.
Esto da
código para obtener parcelas
quimiometría :: función drawMahal
5 x 7 parcela
2 x 4 parcela
fuente
En cuanto a si usar
MASS:glmmPQL
olme4:glmer
para su modelo, entiendo que ambas funciones se ajustarán al mismo modelo (siempre que configure la ecuación del modelo, la distribución y la función de enlace de la misma), pero utilizan diferentes métodos de estimación para encontrar el ajuste. Podría estar equivocado, pero mi comprensión de la documentación es queglmmPQL
usa cuasi-verosimilitud penalizada como se describe en Wolfinger y O'Connell (1993) , mientras queglmer
usa la cuadratura de Gauss-Hermite. Si le preocupa, puede ajustar su modelo con ambos métodos y verificar que brinden las mismas estimaciones de coeficientes y de esa manera tendrá una mayor confianza en que el algoritmo de ajuste ha convergido a los verdaderos MLE de los coeficientes.Esta variable tiene un orden natural que parece tener una relación fluida con la variable de respuesta de sus gráficos, por lo que podría tratarla razonablemente como una variable numérica. Si fuera a incluir
factor(NumberContacts)
, no limitará su forma y no perderá muchos grados de libertad. Incluso podría usar la interacciónGloves*factor(NumberContacts)
sin perder demasiados grados de libertad. Sin embargo, vale la pena considerar si usar una variable de factor implicaría un ajuste excesivo de los datos. Dado que hay una relación bastante suave en su gráfica, una función lineal simple o cuadrática obtendría buenos resultados sin un ajuste excesivo.Ya ha puesto su variable de respuesta en una escala logarítmica utilizando una función de enlace logarítmico, por lo que un efecto de intercepción para
Participant
está dando un efecto multiplicativo en la respuesta. Si le diera a esto una pendiente aleatoria con la que interactuaríaNumberContacts
, tendría un efecto basado en el poder en la respuesta. Si desea esto, puede obtenerlo con(~ -1 + NumberContacts|Participant)
lo que eliminará la intersección pero agregará una pendiente en función del número de contactos.Comience mirando su parcela residual para ver si hay evidencia de heterocedasticidad. Según los gráficos que ya ha incluido, me parece que esto no es un problema, por lo que no necesita agregar ningún peso para la variación. En caso de duda, puede agregar pesos utilizando una función lineal simple y luego realizar una prueba estadística para ver si la pendiente de la ponderación es plana. Eso equivaldría a una prueba formal de heterocedasticidad, que le daría un respaldo para su elección.
Si ya ha incluido un término de efecto aleatorio para el participante, probablemente sería una mala idea agregar un término de autocorrelación en la cantidad de contactos. Su experimento utiliza un dedo diferente para diferentes números de contactos, por lo que no esperaría autocorrelación para el caso en el que ya ha contabilizado al participante. Agregar un término de autocorrelación además del efecto participante significaría que cree que existe una dependencia condicional entre el resultado de diferentes dedos, en función del número de contactos, incluso para un participante dado.
fuente
De hecho, es razonable argumentar que las mediciones tomadas de un participante no son independientes de las tomadas de otro participante. Por ejemplo, algunas personas pueden tender a presionar su dedo con más (o menos) fuerza, lo que afectaría todas sus mediciones en cada número de contactos.
Por lo tanto, el ANOVA de medidas repetidas de 2 vías sería un modelo aceptable para aplicar en este caso.
Alternativamente, uno también podría aplicar un modelo de efectos mixtos con
participant
un factor aleatorio. Esta es una solución más avanzada y más sofisticada.fuente