Supposons que j'ai 10 élèves qui tentent chacun de résoudre 20 problèmes mathématiques. Les problèmes sont notés correctement ou incorrectement (en données longues) et la performance de chaque élève peut être résumée par une mesure de précision (en sous-données). Les modèles 1, 2 et 4 ci-dessous semblent produire des résultats différents, mais je comprends qu'ils font la même chose. Pourquoi produisent-ils des résultats différents? (J'ai inclus le modèle 3 pour référence.)
library(lme4)
set.seed(1)
nsubjs=10
nprobs=20
subjdata = data.frame('subj'=rep(1:nsubjs),'iq'=rep(seq(80,120,10),nsubjs/5))
longdata = subjdata[rep(seq_len(nrow(subjdata)), each=nprobs), ]
longdata$correct = runif(nsubjs*nprobs)<pnorm(longdata$iq/50-1.4)
subjdata$acc = by(longdata$correct,longdata$subj,mean)
model1 = lm(logit(acc)~iq,subjdata)
model2 = glm(acc~iq,subjdata,family=gaussian(link='logit'))
model3 = glm(acc~iq,subjdata,family=binomial(link='logit'))
model4 = lmer(correct~iq+(1|subj),longdata,family=binomial(link='logit'))
library(car)
est nécessaire pour la fonction logit.
library(betareg)
model5 = betareg(acc~scale(iq),subjdata)