Modèle mixte avec 1 observation par niveau

12

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 niveaux
  • region: ID géographique de haut niveau (nord, sud, est, ouest)
  • zone: géographie de niveau intermédiaire imbriquée à l'intérieur region, environ 30 niveaux en tout
  • territory: géographie de bas niveau imbriquée à l'intérieur zone, 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 familyargument (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?

Hong Ooi
la source

Réponses:

4

Je serais fortement en désaccord avec la pratique consistant à ajuster un modèle mixte où vous avez le même nombre de groupes que les observations pour des motifs conceptuels, il n'y a pas de "groupes", et également pour des raisons de calcul, car votre modèle devrait avoir des problèmes identifiables - dans le cas d'un LMM au moins. (Je travaille exclusivement avec LMM, cela pourrait aussi être un peu biaisé. :))

La partie informatique: Supposons par exemple le modèle LME standard où . En supposant maintenant que vous avez un nombre égal d'observations et de groupes (disons sous un regroupement "simple", pas d'effets croisés ou imbriqués, etc.), alors toute votre variance d'échantillon se déplacerait dans la matrice , et devrait être nul . (Je pense que vous vous en êtes déjà convaincu) C'est presque équivalent à avoir autant de paramètres que de données dans un modèle de liner. Vous avez un modèle sur-paramétré. Par conséquent, la régression est un peu absurde.D σ 2yN(Xβ,ZDZT+σ2I)Dσ2

(Je ne comprends pas ce que vous entendez par AIC "raisonnable". L'AIC doit être calculable en ce sens que malgré un ajustement excessif de vos données, vous "calculez quelque chose".)

D'un autre côté avec glmer(disons que vous avez spécifié que la famille est Poisson), vous avez une fonction de lien qui dit comment votre dépend de (dans le cas d'un Poisson qui est un simple log - car ). Dans de tels cas, vous fixez votre paramètre d'échelle afin de pouvoir tenir compte de la sur-dispersion et donc vous avez une identifiabilité (et c'est pourquoi, tout en se plaignant, cela vous a donné des résultats); c'est ainsi que vous "contournez" la question d'avoir autant de groupes que d'observations.X β X β > 0yXβXβ>0glmer

La partie conceptuelle: je pense que c'est un peu plus "subjectif" mais un peu plus simple aussi. Vous utilisez Mixed Eff. modèles parce que vous avez essentiellement reconnu qu'il y avait une structure liée au groupe dans votre erreur. Maintenant, si vous avez autant de groupes que de points de données, il n'y a pas de structure à voir. Tout écart dans votre structure d'erreur LM qui pourrait être attribué à un "groupement" est désormais attribué au point d'observation spécifique (et vous vous retrouvez donc avec un modèle sur-ajusté).

En général, les groupes d'observation unique ont tendance à être un peu désordonnés; pour citer D.Bates de la liste de diffusion r-sig-mixed-models:

Je pense que vous constaterez qu'il y a très peu de différence dans l'adéquation du modèle, que vous incluiez ou excluiez les groupes d'observation unique. Essayez-le et voyez.

usεr11852
la source
1
a raison que cela ne semble pas avoir beaucoup de sens dans un cadre linéaire, mais cela peut être très utile dans la régression de Poisson. Je vais voir si je peux retrouver un lien vers quelque chose que Ben Bolker a dit à ce sujet (il est l'un des développeurs de lme4, avec Doug Bates).
David J. Harris
Ouais, comme je l'ai dit, je pense sans doute principalement aux LMM et je commentais la "partie conceptuelle". J'ai expliqué pourquoi cela fonctionne dans le cas de glmertoute façon (bien que je n'en sois pas trop satisfait).
usεr11852
8

Un niveau par observation peut être très utile si vous avez des données de comptage sur-dispersées comme variable de réponse. Cela revient à dire que vous vous attendez à ce que vos données de comptage proviennent d'une distribution Poisson-lognormale, c'est-à-dire que le paramètre lambda de votre distribution Poisson n'est pas entièrement déterminé par les variables prédictives de votre modèle et que les possibilités sont distribuées lognormalement.

Ben Bolker, l'un des développeurs de lme4, a fait deux exemples de tutoriel avec cela. Le premier, avec des données synthétiques, va un peu plus en détail. Vous pouvez trouver un pdf ici . Il a également parcouru une analyse exploratoire des données avec des données réelles impliquant des hiboux (code pdf et R disponible ici ).

David J. Harris
la source
1
+1. Je suis d'accord avec ce que tu dis. Comme je l'ai mentionné dans mon article d'origine: " la dispersion excessive (...) est la façon dont vous" contournez "la question d'avoir autant de groupes que d'observations. " Merci d'avoir fait un meilleur point de glmermanière conceptuelle.
usεr11852
1
Merci pour les liens! Après les avoir lus et avoir regardé de plus près les valeurs ajustées de mon modèle, j'ai une meilleure idée de ce qui se passe. En fait, je ne pense pas que ce que fait Ben soit approprié pour mon analyse. Il utilise une variable de niveau d'observation pour permettre une surdispersion, c'est donc comme un effet gênant. Pour mon analyse, distributorc'est un effet intéressant: je veux voir comment les distributeurs fonctionnent les uns par rapport aux autres en tenant compte d'autres variables. Il est donc plus comparable à un modèle mixte linéaire conventionnel, où le sur-ajustement est une véritable préoccupation.
Hong Ooi