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'))
r
regression
logistic
generalized-linear-model
binomial
user20061
la source
la source
library(betareg)
model5 = betareg(acc~scale(iq),subjdata)
library(car)
est nécessaire pour la fonction logit.Réponses:
Les modèles 1 et 2 sont différents car le premier transforme la réponse et le second transforme sa valeur attendue.
Pour le modèle 1 le logit de chaque réponse est Normalement distribué avec sa moyenne étant une fonction linéaire du prédicteur et des vecteurs coefficients. & donc Pour le modèle 2, la réponse elle-même est normalement distribuée avec le logit de sa moyenne étant une fonction linéaire du prédicteur et des vecteurs coefficents & donc μ i = x ′ i β Y i = logit - 1 ( x ′ i β + ε i ) Y i ∼ N ( μ i , σ 2 ) logit μ i = x i β Y i = logit - 1 ( x
La structure de la variance sera donc différente. Imaginez simuler à partir du modèle 2: la variance sera indépendante de la valeur attendue; & bien que les valeurs attendues des réponses soient comprises entre 0 et 1, les réponses ne le seront pas toutes.
Les modèles mixtes linéaires généralisés comme votre modèle 4 sont à nouveau différents car ils contiennent des effets aléatoires: voir ici et ici .
la source
longdata
), et non aux proportions comme dans votre modèle 3.+1 à @Scortchi, qui a fourni une réponse très claire et concise. Je veux faire quelques remarques complémentaires. Premièrement, pour votre deuxième modèle, vous spécifiez que votre distribution de réponse est gaussienne (aka, normale). Cela doit être faux, car chaque réponse est notée comme correcte ou incorrecte. Autrement dit, chaque réponse est un procès Bernoulli. Ainsi, votre distribution de réponse est un binôme. Cette idée est également reflétée avec précision dans votre code. Ensuite, la probabilité qui régit la distribution des réponses est normalement distribuée, donc le lien doit être probit, pas logit. Enfin, s'il s'agissait d'une situation réelle, vous devriez tenir compte des effets aléatoires pour les sujets et les questions, car il est très peu probable qu'ils soient identiques. La façon dont vous avez généré ces données, le seul aspect pertinent de chaque personne est son QI, dont vous avez explicitement tenu compte. Ainsi, il ne reste rien qui doive être pris en compte par un effet aléatoire dans le modèle. Cela est également vrai pour les questions, car les variations aléatoires de la difficulté des questions ne font pas partie du processus de génération de données dans votre code.
Je ne veux pas être tatillonne ici. Je reconnais que votre configuration est simplement conçue pour faciliter votre question, et elle a atteint cet objectif; @Scortchi a pu répondre à vos questions très directement, avec un minimum de bruit. Cependant, je souligne ces choses parce qu'elles offrent des opportunités supplémentaires pour comprendre la situation avec laquelle vous vous débattez et parce que vous ne vous êtes peut-être pas rendu compte que votre code correspond à certaines parties de votre scénario mais pas à d'autres.
la source