5 votos

lmer para medidas repetidas

Tengo varios pares de animales pair . Para cada uno de ellos, medí repetidamente las proporciones diarias de tiempo que pasaban en contacto time.con (30-60 mediciones para cada grupo, 1 medición por date ). Quiero comparar cuánto tiempo pasaron en contacto diferentes parejas utilizando lmer y controlando las medidas repetidas. Los pares son permanentes, por lo que esencialmente par = individuo. He aquí un ejemplo simplificado:

      pair   date     time.con

 [1,] "1"  "01.06.17" "0.12"  
 [2,] "1"  "02.06.17" "0"     
 [3,] "1"  "03.06.17" "0.11"  
 [4,] "2"  "04.06.17" "0.34"  
 [5,] "2"  "05.06.17" "0.02"  
 [6,] "2"  "06.06.17" "0.07"  
 [7,] "3"  "01.06.17" "0.14"  
 [8,] "3"  "02.06.17" "0.26"  
 [9,] "3"  "03.06.17" "0.1"

Así, el efecto fijo sería pair . La pregunta es: ¿cómo controlo las medidas repetidas? Si utilizo pair como efecto fijo y aleatorio, el modelo, obviamente, no converge:

`lmer(time.con ~ pair + (1|pair))`

Supongo que ahí es donde debo usar date de alguna manera (como anidado en pair ?), pero no consigo que la sintaxis sea correcta:

`lmer(time.con ~ pair + (1+pair|date))` (doesn't work)

Probablemente me estoy perdiendo algo sencillo, ya que soy nuevo tanto en R como en lmm. Agradecería cualquier consejo.

0 votos

Si se realiza un seguimiento diario de un par durante 30 o 60 días, ¿es cierto que se obtiene una única medición de ese par cada día? Además, ¿las parejas de animales son diferentes entre sí? En otras palabras, si en su estudio empareja al animal A con el animal B, ¿estos dos animales permanecerán emparejados hasta el final del estudio y no se emparejarán con ningún otro animal? ¿Por qué controló cada pareja durante tanto tiempo? ¿Preveía que la pareja pasaría cada vez más o menos tiempo junta a medida que avanzara el estudio?

1 votos

@Isabella Ghement Sí, para cada día tengo una única medida: la proporción de tiempo que la pareja pasó en contacto. Las parejas son permanentes, así que también podríamos decir que pareja = individuo. Lo añadiré al post.Sí, el tiempo pasado en contacto es diferente para los distintos periodos de vida de la pareja. Mi pregunta original era comparar periodos con/sin bebé, pero ahora también quiero ver en qué se diferencian las parejas entre sí.

0 votos

En cuanto al desfase entre sus mediciones, no es un problema para los modelos mixtos. Sin embargo, como mencioné en mi respuesta, deberías pensar cuál es el tiempo 0 de tu experimento. En cuanto a los ceros del time.con un modelo mixto de dos partes, por ejemplo, compruebe la GLMMadaptativo paquete: drizopoulos.github.io/GLMMadaptive/articles/

5voto

user219012 Puntos 1

Parece tratarse de un estudio longitudinal, con mediciones a lo largo del tiempo para cada pareja. Como primer paso, basándonos en la date se podría construir la variable de tiempo de seguimiento, que es el tiempo transcurrido desde la primera medición. No obstante, piense detenidamente si la primera medición es realmente la hora 0 de cada pareja para su experimento o tal vez otra fecha.

A continuación, se incluyen efectos aleatorios para el pair variable de agrupación, pero no incluirla también como efecto fijo. Podría empezar con un modelo de interceptos aleatorios, por ejemplo

fm1 <- lmer(time.con ~ follow_up_time + (1 | pair), 
            data = your_data)

Este modelo postula que las correlaciones a lo largo del tiempo dentro de un par permanecen constantes. Se podría ampliar el modelo suponiendo que las correlaciones disminuyen con el intervalo de tiempo entre las mediciones utilizando un modelo de interceptos aleatorios y pendientes aleatorias, por ejemplo,

fm2 <- lmer(time.con ~ follow_up_time + (follow_up_time | pair), 
            data = your_data)

Para evaluar si necesitas las pendientes aleatorias, podrías hacer una prueba de razón de verosimilitud, es decir,

anova(fm1, fm2)

0 votos

Antes de modelizar, merece la pena trazar la variable time.con frente a follow_up_time para varios pares, sólo para ver qué tipo de relación entre estas variables podría tener sentido.

1 votos

Si faltan datos en el time.con (lo que ocurre a menudo) que son del tipo faltan al azar (lo que también ocurre a menudo), un gráfico descriptivo de este tipo puede ser engañoso y no revelar la verdadera relación.

0 votos

@Dimitris Rizopoulos Por variable de seguimiento, ¿te refieres a "días desde el primer día de observación"? Algo así: follow_up <- c(0, 1, 2, 0, 1, 2, 0, 1, 2) en el caso de mis datos de ejemplo?

3voto

Nir Duan Puntos 101

(mi primer intento de respuesta en stackexchange... crucemos los dedos para que funcione)

No soy un experto, pero le daré mi opinión. No tengo suficiente reputación para poner esto en un comentario, así que aquí está una respuesta.

Supongo que lo primero que hay que preguntarse es qué se quiere aprender de los datos. Dices que quieres compararlos. Con esto, ¿sólo quiere ver las medias de cada par? Si es así, podría ver las medias sin ajustar o las medias reducidas:

  1. Las medias no ajustadas utilizando lm(). Es decir, sin agrupación se podría utilizar:

lm(time.con ~ Pair)

Para obtener los coeficientes:

coef( lm(time.con ~ Pair) )

  1. Los medios encogidos utilizando lmer(). Es decir, con pooling se podría utilizar:

lmer(time.con ~ (1|Pair))

Para obtener los coeficientes:

coef( lmer(time.con ~ (1|Pair)) )

Si no es eso lo que tiene en mente cuando dice que quiere compararlos, entonces ¿qué significa para usted "comparar" en este contexto?

Por último, dado que su variable de respuesta tiene un límite inferior duro en 0, y algunos valores que están cerca de él, incluido uno justo en 0, entonces la suposición típica de que el término de error es gaussiano podría no ser la mejor. Si desea tener en cuenta esto mediante el uso de modelos de aprendizaje generalizado, glm() y glmer() podrían ser útiles. Esperemos que alguien más pueda añadir más detalles sobre si valdría la pena o no pasar a un modelo lineal generalizado.

Para más antecedentes, creo que este es un buen recurso disponible gratuitamente en la web:

https://bookdown.org/roback/bookdown-bysh/ch-MLRreview.html

Trabajé con una versión antigua, pero parece que la actualizaron hace unos días.

1 votos

@ MichiganWater Quiero ver si, después de corregir el efecto de la presencia de bebés, la temporada, etc, las parejas pasan un tiempo significativamente diferente en contacto (tengo todas las razones para esperar que lo hagan). Sin embargo, no entiendo muy bien lo de las medias. Quiero comparar varianzas, no sólo medias, de lo contrario, ¿por qué tendría que utilizar lmm? Pero si hablamos de medias, supongo que necesito medias reducidas: Tengo mucho ruido y poca señal (muchos ceros atípicos). Este lmer(time.con~(1Pair)) ¡parece prometedor! Para que quede claro 1|Pair indicar al modelo que las observaciones de un mismo par no son independientes?

0 votos

@loir_loir Hmm. Estoy confundido. En tu pregunta original y en este comentario dices que "quieres comparar cuánto tiempo pasaron en contacto las distintas parejas" - eso, para mí, indica que quieres ver cómo varían los tiempos medios de contacto de las distintas parejas. Sin embargo, en este comentario también dice que quiere comparar varianzas. ¿Qué varianzas quiere comparar? ¿Quiere ver si algún par en particular tiene una gran varianza diaria dentro de un mismo par en comparación con todos los demás pares?

0 votos

@loir_loir Y, sí, el término (1|Par) le dice al modelo que las observaciones del mismo Par no son independientes. Me gusta pensar en ello de esta manera, el (1|grouping_variable) término, por ejemplo, utilizando el grupo "3" dice: "Hey, grupo "3", usted no tiene que utilizar el mismo intercepto que cualquier otro grupo. ¡Tienes tu propio intercepto! Pero todos los miembros de tu grupo deben trabajar juntos para llegar a la intercepción de tu grupo. Los individuos del grupo no podéis actuar de forma independiente".

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X