Giả sử tôi có 10 học sinh, mỗi học sinh cố gắng giải 20 bài toán. Các vấn đề được chấm điểm chính xác hoặc không chính xác (theo longdata) và hiệu suất của mỗi học sinh có thể được tóm tắt bằng một thước đo chính xác (trong subjdata). Các mô hình 1, 2 và 4 dưới đây dường như tạo ra các kết quả khác nhau, nhưng tôi hiểu chúng sẽ làm điều tương tự. Tại sao họ tạo ra kết quả khác nhau? (Tôi bao gồm mô hình 3 để tham khảo.)
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)
là cần thiết, cho chức năng logit.
library(betareg)
model5 = betareg(acc~scale(iq),subjdata)