Angenommen, ich habe 10 Schüler, die jeweils versuchen, 20 mathematische Probleme zu lösen. Die Probleme werden richtig oder falsch bewertet (in Langdaten) und die Leistung jedes Schülers kann durch ein Genauigkeitsmaß (in Unterdaten) zusammengefasst werden. Die folgenden Modelle 1, 2 und 4 scheinen unterschiedliche Ergebnisse zu liefern, aber ich verstehe, dass sie dasselbe tun. Warum produzieren sie unterschiedliche Ergebnisse? (Ich habe Modell 3 als Referenz beigefügt.)
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
quelle
quelle
library(betareg)
model5 = betareg(acc~scale(iq),subjdata)
library(car)
ist für die Logit-Funktion notwendig.Antworten:
Die Modelle 1 und 2 unterscheiden sich, da das erste die Antwort und das zweite den erwarteten Wert transformiert.
Für Modell 1 ist das Protokoll jeder Antwort normalverteilt mit seinem Mittelwert eine lineare Funktion der Prädiktor- und Koeffizientenvektoren sein. & daher Für Modell 2 ist die Antwort selbst normal verteilt wobei der Logit seines Mittelwerts eine lineare Funktion des Prädiktors und der Koeffizientenvektoren logit & daher
Die Varianzstruktur wird also unterschiedlich sein. Stellen Sie sich eine Simulation aus Modell 2 vor: Die Varianz ist unabhängig vom erwarteten Wert. & obwohl die erwarteten Werte der Antworten zwischen 0 und 1 liegen, werden nicht alle Antworten sein.
Verallgemeinerte lineare gemischte Modelle wie Ihr Modell 4 unterscheiden sich wieder, da sie zufällige Effekte enthalten: siehe hier und hier .
quelle
longdata
)+1 an @Scortchi, der eine sehr klare und präzise Antwort gegeben hat. Ich möchte einige ergänzende Punkte ansprechen. Zunächst geben Sie für Ihr zweites Modell an, dass Ihre Antwortverteilung Gauß (auch bekannt als normal) ist. Dies muss falsch sein, da jede Antwort als richtig oder falsch bewertet wird. Das heißt, jede Antwort ist ein Bernoulli-Prozess. Daher ist Ihre Antwortverteilung ein Binomial. Diese Idee spiegelt sich auch in Ihrem Code genau wider. Als nächstes wird die Wahrscheinlichkeit, die die Antwortverteilung regelt, normal verteilt, daher sollte die Verknüpfung probit und nicht logit sein. Wenn dies eine reale Situation wäre, müssten Sie zufällige Effekte sowohl für Themen als auch für Fragen berücksichtigen, da es äußerst unwahrscheinlich ist, dass sie identisch sind. Die Art und Weise, wie Sie diese Daten generiert haben, ist der einzig relevante Aspekt jeder Person ihr IQ. die Sie explizit berücksichtigt haben. Somit bleibt nichts übrig, was durch einen zufälligen Effekt im Modell berücksichtigt werden muss. Dies gilt auch für die Fragen, da zufällige Variationen der Schwierigkeitsgrade nicht Teil des Datengenerierungsprozesses in Ihrem Code sind.
Ich will hier nicht pingelig sein. Ich erkenne, dass Ihr Setup lediglich dazu dient, Ihre Frage zu erleichtern, und es hat diesen Zweck erfüllt. @Scortchi konnte Ihre Fragen mit minimalem Aufwand sehr direkt beantworten. Ich weise jedoch auf diese Dinge hin, weil sie zusätzliche Möglichkeiten bieten, die Situation zu verstehen, mit der Sie sich auseinandersetzen, und weil Sie möglicherweise nicht bemerkt haben, dass Ihr Code mit einigen Teilen Ihrer Handlung übereinstimmt, andere jedoch nicht.
quelle