Estou ajustando um modelo de efeitos aleatórios glmer
a alguns dados comerciais. O objetivo é analisar o desempenho de vendas por distribuidor, levando em consideração a variação regional. Eu tenho as seguintes variáveis:
distcode
: ID do distribuidor, com cerca de 800 níveisregion
: ID geográfico de nível superior (norte, sul, leste, oeste)zone
: geografia de nível médio aninhada dentroregion
, cerca de 30 níveis em todosterritory
: geografia de baixo nível aninhada dentrozone
, cerca de 150 níveis
Cada distribuidor opera em apenas um território. A parte complicada é que esses são dados resumidos, com um ponto de dados por distribuidor. Então, eu tenho 800 pontos de dados e estou tentando ajustar (pelo menos) 800 parâmetros, embora de maneira regularizada.
Eu instalei um modelo da seguinte maneira:
glmer(ninv ~ 1 + (1|region/zone/territory) + (1|distcode), family=poisson)
Isso é executado sem problemas, embora imprima uma nota:
O número de níveis de um fator de agrupamento para os efeitos aleatórios é igual a n, o número de observações
Isso é uma coisa sensata a se fazer? Recebo estimativas finitas de todos os coeficientes, e a AIC também não é irracional. Se eu tentar um GLMM poisson com o link de identidade, o AIC é muito pior, portanto o link de log é pelo menos um bom ponto de partida.
Se plotar os valores ajustados versus a resposta, obtenho o que é essencialmente um ajuste perfeito, o que acho que é porque tenho um ponto de dados por distribuidor. Isso é razoável ou estou fazendo algo completamente bobo?
Isso está usando dados por um mês. Posso obter dados por vários meses e obter alguma replicação dessa maneira, mas precisaria adicionar novos termos para variação mês a mês e possíveis interações, correto?
ETA: Eu executei o modelo acima novamente, mas sem family
argumentos (portanto, apenas um LMM gaussiano ao invés de um GLMM). Agora lmer
me deu o seguinte erro:
Erro em (função (fr, FL, start, REML, detalhado): o número de níveis de um fator de agrupamento para os efeitos aleatórios deve ser menor que o número de observações
Então, acho que não estou fazendo algo sensato, pois mudar a família não deve ter efeito. Mas a questão agora é: por que funcionou em primeiro lugar?