Como os efeitos aleatórios com apenas uma observação afetam um modelo misto linear generalizado?


14

Eu tenho um conjunto de dados no qual a variável que eu gostaria de usar como efeito aleatório tem apenas uma única observação para alguns níveis. Com base nas respostas às perguntas anteriores, concluí que, em princípio, isso pode ser bom.

Posso ajustar um modelo misto com assuntos que possuem apenas 1 observação?

Modelo de interceptação aleatória - uma medição por sujeito

No entanto, no segundo link, a primeira resposta afirma:

"... supondo que você não esteja usando um modelo misto linear generalizado GLMM onde, nesse caso, questões de excesso de dispersão entrem em ação"

Estou pensando em usar um GLMM, mas realmente não entendo como os níveis de efeito aleatório com observações únicas afetarão o modelo.


Aqui está um exemplo de um dos modelos que estou tentando ajustar. Estou estudando pássaros e gostaria de modelar os efeitos da população e da estação no número de paradas durante a migração. Eu gostaria de usar o indivíduo como um efeito aleatório, porque para alguns indivíduos eu tenho até 5 anos de dados.

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)

Existem 27 indivíduos. 9 indivíduos têm uma única observação. 18 indivíduos têm 2-9 observações.

O que deve se preocupar se 1/3 dos níveis de efeito aleatório têm apenas uma observação?


Eu estive considerando:

Opção 1: GLMM, conforme descrito acima

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

Opção 2: Modelo linear generalizado ponderado GLM usando meios para indivíduos com múltiplas observações

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)

De onde vem a citação? Não consigo encontrar a resposta correspondente.
Ameba diz Reinstate Monica

Segundo link, primeira resposta, entre parênteses
canderson156 03/11

3
resposta curta: não acho que haveria algum problema. Não sabe exatamente o que significava o primeiro respondente da segunda pergunta acima: você já pensou em deixar um comentário para perguntar (se você tem representante suficiente)? No limite em que você tem exatamente 1 observação por grupo, a variabilidade residual e entre grupos será completamente confundida. Eu poderia não se preocupar com modelos mistos se você tivesse uma minoria de grupos com> 1 observação (e um pequeno número nesses grupos), mas o seu sons de casos bem ...
Ben Bolker

Não tenho certeza de que sua segunda opção (Poisson ponderada) realmente funcione corretamente, mas teria que pensar nisso com mais cuidado.
precisa

@BenBolker O que você escolheria fazer no caso em que descreve, onde há apenas uma minoria de grupos com> 1 observação?
mkt - Restabelece Monica

Respostas:


3

Em geral, você tem um problema com a identificabilidade. Modelos lineares com um efeito aleatório atribuído a um parâmetro com apenas uma medição não podem distinguir entre o efeito aleatório e o erro residual.

Uma equação linear típica de efeito misto será semelhante a:

E=β+ηEu+ϵj

βηEuEuϵjjηϵηϵSD(η)SD(ϵ)vumar(η)+vumar(ϵ)

SD(η)SD(ϵ)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.