Comment appliquer le GLMM binomial (glmer) à des pourcentages plutôt qu'à des nombres oui-non?

21

J'ai une expérience à mesures répétées où la variable dépendante est un pourcentage et j'ai plusieurs facteurs comme variables indépendantes. Je voudrais utiliser à glmerpartir du package R lme4pour le traiter comme un problème de régression logistique (en spécifiant family=binomial) car il semble s'adapter directement à cette configuration.

Mes données ressemblent à ceci:

 > head(data.xvsy)
   foldnum      featureset noisered pooldur dpoolmode       auc
 1       0         mfcc-ms      nr0       1      mean 0.6760438
 2       1         mfcc-ms      nr0       1      mean 0.6739482
 3       0    melspec-maxp    nr075       1       max 0.8141421
 4       1    melspec-maxp    nr075       1       max 0.7822994
 5       0 chrmpeak-tpor1d    nr075       1       max 0.6547476
 6       1 chrmpeak-tpor1d    nr075       1       max 0.6699825

et voici la commande R que j'espérais être appropriée:

 glmer(auc~1+featureset*noisered*pooldur*dpoolmode+(1|foldnum), data.xvsy, family=binomial)

Le problème avec cela est que la commande se plaint que ma variable dépendante n'est pas un entier:

In eval(expr, envir, enclos) : non-integer #successes in a binomial glm!

et l'analyse de ces données (pilotes) donne des réponses étranges en conséquence.

Je comprends pourquoi la binomialfamille attend des nombres entiers (oui-non), mais il semble qu'il devrait être correct de régresser directement les données de pourcentage. Comment faire ça?

Dan Stowell
la source
1
Cela ne me semble pas correct, car 5 sur 10 ne sont pas les mêmes informations que 500 sur 1000. Exprimez la réponse comme un décompte du non. "succès" et un chef d'accusation. "les échecs".
Scortchi - Réintégrer Monica
@Scortchi merci, je pense que vous avez peut-être raison. Je pensais en partie à la nature continue de mes pourcentages (dérivés de décisions probabilistes) similaires à cette question: stats.stackexchange.com/questions/77376/… mais je crois que je peux exprimer mes données via une conversion significative en nombres entiers.
Dan Stowell

Réponses:

22

Afin d'utiliser un vecteur de proportions comme variable de réponse avec glmer(., family = binomial), vous devez définir le nombre d'essais qui ont conduit à chaque proportion à l'aide de l' weightsargument. Par exemple, en utilisant les cbppdonnées du lme4package:

glmer(incidence / size ~ period + (1 | herd), weights = size,
   family = binomial, data = cbpp)

Si vous ne connaissez pas le nombre total d'essais, un modèle binomial n'est pas approprié, comme indiqué dans le message d'erreur.

Steve Walker
la source
Je ne peux pas dire si l'utilisation de poids pour cela fonctionne ou non. Mais vous pouvez certainement saisir les données sous forme de matrice à deux colonnes (succès / échecs) sur le côté gauche de la formule.
ndoogan
Mais @ndoogan, la question initiale portait sur les proportions, pas sur les succès / échecs. Et le code ci-dessus fonctionne, comme je l'ai pris sur la cbpppage d'aide.
Steve Walker
C'est suffisant. Cependant, je voulais dire des succès / échecs ( pas destinés à être des divisions) d'où viennent les proportions d'un modèle binomial.
ndoogan
+1 mais les lecteurs voudront peut-être voir la réponse de @ BenBolker ici stats.stackexchange.com/questions/189115 sur les moyens possibles de faire face à la surdispersion.
amibe dit Réintégrer Monica le
9

Si votre réponse est une proportion, un pourcentage ou quelque chose de similaire qui ne peut prendre que des valeurs en vous utiliserez généralement la régression bêta, pas la régression binomiale.(0,1)

M. Berk
la source
2
Un modèle binomial est un modèle de proportions. Cependant, cela n'est approprié que lorsque vous connaissez le nombre d'essais. Si tout ce que vous avez est un pourcentage sans indication du nombre d'essais, je pense que vous avez raison de dire que la régression bêta est appropriée.
ndoogan
@ndoogan Pour clarifier, mon conseil n'est pas "d'utiliser la régression bêta lorsque votre réponse est une proportion" mais plutôt "si votre réponse ne peut prendre que des valeurs en telles que des proportions / pourcentages, alors la régression bêta est typique"(0,1)
M. Berk
Merci, c'est un bon point. J'accepte l'autre réponse car elle répond à la question telle qu'elle est écrite, mais le point sur la régression bêta est bien fait, je l'ai donc voté positivement.
Dan Stowell