Załóżmy, że mam 10 uczniów, z których każdy próbuje rozwiązać 20 problemów matematycznych. Problemy są oceniane poprawnie lub niepoprawnie (w longdata), a wyniki każdego ucznia można podsumować za pomocą miary dokładności (w subjdata). Modele 1, 2 i 4 poniżej wydają się dawać różne wyniki, ale rozumiem, że robią to samo. Dlaczego dają różne wyniki? (Dołączyłem model 3).
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
użytkownik20061
źródło
źródło
library(betareg)
model5 = betareg(acc~scale(iq),subjdata)
library(car)
jest konieczne dla funkcji logowania.Odpowiedzi:
Modele 1 i 2 są różne, ponieważ pierwsza przekształca odpowiedź, a druga przekształca jej oczekiwaną wartość.
W przypadku modelu 1 logit każdej odpowiedzi jest Normalnie dystrybuowany ze średnią będący funkcją liniową wektorów predykcyjnych i współczynników. zatem W przypadku modelu 2 sama odpowiedź jest zwykle dystrybuowana nazwa , a logarytm jego średniej jest funkcją liniową predyktora i wektorów współczynników zatem
Więc struktura wariancji będzie inna. Wyobraź sobie symulację z Modelu 2: wariancja będzie niezależna od wartości oczekiwanej; i chociaż oczekiwane wartości odpowiedzi będą pomiędzy 0 a 1, odpowiedzi nie będą wszystkie.
Uogólnione liniowe modele mieszane, takie jak model 4, znów się różnią, ponieważ zawierają losowe efekty: patrz tutaj i tutaj .
źródło
longdata
), a nie proporcji jak w twoim Modelu 3.+1 do @Scortchi, który udzielił bardzo jasnej i zwięzłej odpowiedzi. Chcę zrobić kilka uzupełniających się uwag. Po pierwsze, dla drugiego modelu określasz, że rozkład odpowiedzi jest gaussowski (inaczej normalny). To musi być fałsz, ponieważ każda odpowiedź jest oceniana jako poprawna lub niepoprawna. Oznacza to, że każda odpowiedź jest próbą Bernoulliego. Zatem rozkład odpowiedzi jest dwumianowy. Ten pomysł znajduje również odzwierciedlenie w kodzie. Następnie prawdopodobieństwo rządzące rozkładem odpowiedzi jest zwykle rozkładane, więc łącze powinno być probit, a nie logit. Wreszcie, gdyby to była prawdziwa sytuacja, należy wziąć pod uwagę losowe efekty zarówno dla badanych, jak i pytań, ponieważ jest bardzo mało prawdopodobne, aby były identyczne. Sposób, w jaki generowałeś te dane, jedynym istotnym aspektem każdej osoby jest jej IQ, które zostały wyraźnie rozliczone. Dlatego nie ma już nic, co należałoby uwzględnić w modelu przypadkowym efektem. Odnosi się to również do pytań, ponieważ losowe odmiany trudności pytań nie są częścią procesu generowania danych w kodzie.
Nie mam zamiaru tu głupieć. Rozumiem, że twoja konfiguracja jest po prostu zaprojektowana, aby ułatwić twoje pytanie i spełniła swój cel; @Scortchi był w stanie odpowiedzieć na twoje pytania bardzo bezpośrednio, przy minimalnym zamieszaniu. Zwracam jednak na to uwagę, ponieważ oferują one dodatkowe możliwości zrozumienia sytuacji, z którą się zmagasz, i ponieważ możesz nie zdawać sobie sprawy, że Twój kod pasuje do niektórych części twojej historii, ale nie do innych.
źródło