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 à glmer
partir du package R lme4
pour 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 binomial
famille 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?
Réponses:
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'weights
argument. Par exemple, en utilisant lescbpp
données dulme4
package: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.
la source
cbpp
page d'aide.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 )
la source