¿Cómo afectarán los efectos aleatorios con solo 1 observación a un modelo mixto lineal generalizado?

14

Tengo un conjunto de datos en el que la variable que me gustaría usar como efecto aleatorio solo tiene una observación única para algunos niveles. Según las respuestas a las preguntas anteriores, he deducido que, en principio, esto puede estar bien.

¿Puedo ajustar un modelo mixto con sujetos que solo tienen 1 observación?

Modelo de intercepciones aleatorias: una medida por sujeto

Sin embargo, en el segundo enlace, la primera respuesta dice:

"... suponiendo que no esté utilizando un modelo mixto lineal generalizado GLMM donde en ese caso entran en juego problemas de sobredispersión"

Estoy considerando usar un GLMM, pero realmente no entiendo cómo los niveles de efectos aleatorios con observaciones individuales afectarán el modelo.


Aquí hay un ejemplo de uno de los modelos que estoy tratando de adaptar. Estoy estudiando aves, y me gustaría modelar los efectos de la población y la temporada en el número de paradas durante la migración. Me gustaría usar el individuo como un efecto aleatorio, porque para algunos individuos tengo hasta 5 años de datos.

library(dplyr)
library(lme4)
pop <- as.character(c("BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "BF", "MA", "MA", "MA", "MA", "MA", "MA", "MA", "MA", "MA", "MA", "MA", "MA", "MA", "MA", "MA", "NU", "NU", "NU", "NU", "NU", "NU", "NU", "NU", "NU", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA", "SA"))
id <- "2 2 4 4 7 7 9 9 10 10 84367 84367 84367 84368 84368 84368 84368 84368 84368 84369 84369 33073 33073 33073 33073 33073 33073 33073 33073 33073 80149 80149 80149 80150 80150 80150 57140 57141 126674 126677 126678 126680 137152 137152 137157 115925 115925 115925 115925 115925 115925 115925 115925 115926 115926 115926 115926 115926 115926 115927 115928 115929 115929 115929 115930 115930 115930 115930 115931 115931 115931 115932 115932 115932"
id <- strsplit(id, " ")
id <- as.numeric(unlist(id))
year <- "2014 2015 2014 2015 2014 2015 2014 2015 2014 2015 2009 2010 2010 2009 2010 2010 2011 2011 2012 2009 2010 2009 2009 2010 2010 2011 2011 2012 2012 2013 2008 2008 2009 2008 2008 2009 2008 2008 2013 2013 2013 2013 2014 2015 2014 2012 2013 2013 2014 2014 2015 2015 2016 2012 2013 2013 2014 2014 2015 2013 2012 2012 2013 2013 2012 2013 2013 2014 2013 2014 2014 2013 2014 2014"
year <- strsplit(year, " ")
year <- as.numeric(unlist(year))
season <- as.character(c("fall", "spring", "fall", "spring", "fall", "spring", "fall", "spring", "fall", "spring", "fall", "fall", "spring", "fall", "fall", "spring", "fall", "spring", "spring", "fall", "spring", "fall", "spring", "fall", "spring", "fall", "spring", "fall", "spring", "spring", "fall", "spring", "spring", "fall", "spring", "spring", "fall", "fall", "fall", "fall", "fall", "fall", "fall", "spring", "fall", "fall", "fall", "spring", "fall", "spring", "fall", "spring", "spring", "fall", "fall", "spring", "fall", "spring", "spring", "fall", "fall", "fall", "fall", "spring", "fall", "fall", "spring", "spring","fall", "fall", "spring", "fall", "fall", "spring"))
stops <- "0 0 0 0 0 0 1 0 2 1 1 0 0 3 2 0 1 1 0 1 1 2 0 1 0 2 0 4 0 0 2 1 1 2 5 2 1 0 9 6 2 3 4 7 2 0 0 0 0 0 2 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0"
stops <- strsplit(stops, " ")
stops <- as.numeric(unlist(stops))

stopdata <- data.frame(pop = pop, id = id, year = year, season = season, stops = stops, stringsAsFactors = FALSE)


stopdata <- group_by(stopdata, pop, id)
summary1 <- summarise(stopdata, n.years = length(year))
table(summary1$n.years)

Hay 27 personas. 9 individuos tienen una sola observación. 18 individuos tienen 2-9 observaciones.

¿De qué debería preocuparse si 1/3 de los niveles de efectos aleatorios solo tienen una observación?


He estado considerando:

Opción 1: GLMM como se describe arriba

stops.glmm <- glmer(stops ~ pop + season + (1|id), data=stopdata, family = poisson)

Opción 2: GLM modelo lineal general ponderado utilizando medios para los individuos con múltiples observaciones

aggfun <- function(data, idvars=c("pop", "season", "id"), response){
#select id variables, response variable, and year
sub1 <- na.omit(data[,c(idvars, "year", response)])
#aggregate for mean response by year
agg1 <- aggregate(sub1[names(sub1) == response],by=sub1[idvars],FUN=mean)
#sample size for each aggregated group
aggn <- aggregate(sub1[response],by=sub1[idvars],FUN=length)
#rename sample size column
names(aggn)[4] <- "n"
agg2 <- merge(agg1, aggn)
agg2}


#Create weighted dataset
stops.weight <- aggfun(data = stopdata, response = "stops")
stops.weight$stops <- round(stops.weight$stops)

#Weighted GLM
stops.glm <- glm(stops~pop + season, data=stops.weight, family = poisson, weights = n)
canderson156
fuente
¿De dónde viene la cita? No puedo encontrar la respuesta correspondiente.
ameba dice Reinstate Monica
Segundo enlace, primera respuesta, entre paréntesis
canderson156
3
en resumen, no del todo respuesta: no creo que haya ningún problema. No sé exactamente qué quiso decir el primer respondedor a la segunda pregunta vinculada anteriormente: ¿ha considerado dejar un comentario allí para preguntar (si tiene suficiente representante)? En el límite donde tiene exactamente 1 observación por grupo, entonces la variabilidad entre grupos y residual se confundirá por completo. Podría no molestarme con modelos mixtos si tuviera una minoría de grupos con> 1 observación (y un pequeño número en esos grupos), pero su caso suena bien ...
Ben Bolker
No estoy seguro de que su segunda opción (Poisson ponderado) realmente funcione correctamente, pero tendría que pensarlo con más cuidado.
Ben Bolker, el
@BenBolker ¿Qué elegiría hacer en el caso que describe, donde solo hay una minoría de grupos con> 1 observación?
mkt - Restablecer a Monica

Respuestas:

3

En general, tiene un problema con la identificabilidad. Los modelos lineales con un efecto aleatorio asignado a un parámetro con una sola medición no pueden distinguir entre el efecto aleatorio y el error residual.

Una ecuación de efecto mixto lineal típico se verá así:

mi=β+ηyo+ϵj

βηyoyoϵjjηϵηϵSre(η)Sre(ϵ)vunr(η)+vunr(ϵ)

Sre(η)Sre(ϵ)

Bill Denney
fuente