J'adapte un modèle d'effets aléatoires glmer
à certaines données d'entreprise. L'objectif est d'analyser la performance commerciale par distributeur en tenant compte des variations régionales. J'ai les variables suivantes:
distcode
: ID distributeur, avec environ 800 niveauxregion
: ID géographique de haut niveau (nord, sud, est, ouest)zone
: géographie de niveau intermédiaire imbriquée à l'intérieurregion
, environ 30 niveaux en toutterritory
: géographie de bas niveau imbriquée à l'intérieurzone
, environ 150 niveaux
Chaque distributeur opère sur un seul territoire. La partie délicate est qu'il s'agit de données résumées, avec un point de données par distributeur. J'ai donc 800 points de données et j'essaie d'adapter (au moins) 800 paramètres, mais de manière régulière.
J'ai monté un modèle comme suit:
glmer(ninv ~ 1 + (1|region/zone/territory) + (1|distcode), family=poisson)
Cela fonctionne sans problème, bien qu'il imprime une note:
Le nombre de niveaux d'un facteur de regroupement pour les effets aléatoires est égal à n, le nombre d'observations
Est-ce une chose sensée à faire? J'obtiens des estimations finies de tous les coefficients, et l'AIC n'est pas non plus déraisonnable. Si j'essaie un GLMM poisson avec le lien d'identité, l'AIC est bien pire, donc le lien du journal est au moins un bon point de départ.
Si je trace les valeurs ajustées par rapport à la réponse, j'obtiens ce qui est essentiellement un ajustement parfait, ce qui, je suppose, est parce que j'ai un point de données par distributeur. Est-ce raisonnable ou est-ce que je fais quelque chose de complètement idiot?
Cela utilise des données pendant un mois. Je peux obtenir des données pendant plusieurs mois et obtenir une certaine réplication de cette façon, mais je devrais ajouter de nouveaux termes pour la variation d'un mois à l'autre et les interactions possibles, n'est-ce pas?
ETA: J'ai de nouveau exécuté le modèle ci-dessus, mais sans family
argument (donc juste un LMM gaussien plutôt qu'un GLMM). Maintenant lmer
, m'a donné l'erreur suivante:
Erreur dans (fonction (fr, FL, start, REML, verbose): le nombre de niveaux d'un facteur de regroupement pour les effets aléatoires doit être inférieur au nombre d'observations
Je suppose donc que je ne fais rien de sensé, car changer de famille ne devrait pas avoir d'effet. Mais la question est maintenant, pourquoi cela a-t-il fonctionné en premier lieu?