对数转换线性回归,对数回归与对数混合模型之间有什么区别?


10

假设我有10个学生,每个学生都尝试解决20个数学问题。对问题的评分为正确或不正确(在longdata中),每个学生的表现都可以通过准确性度量(在subjdata中)进行总结。下面的模型1、2和4看起来会产生不同的结果,但是我知道它们在做相同的事情。他们为什么产生不同的结果?(我提供了模型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'))

我也尝试了beta回归,但遇到了一个错误... library(betareg) model5 = betareg(acc~scale(iq),subjdata)
user20061 2013年

library(car)对于logit功能是必需的。
user20061 2013年

1
它可能会帮助您阅读我对相关问题的两个答案:logit模型和概率模型之间的差异(一般讨论链接函数和GLiM,在最后的注释专门针对您的1和3),以及广义线性模型之间的差异。和广义线性混合模型(讨论您的4与1和3有何不同)。
gung-恢复莫妮卡

Answers:


15

模型1和2不同,因为第一个变换响应,第二个变换其期望值。

对于模型1,每个响应的logit为正态分布 及其平均值是预测因子和系数向量的线性函数。 ,因此 对于模型2,响应本身通常是分布的 ,其均值的对数是预测变量和系数向量的线性函数 ,因此

logitYiN(μi,σ2)
μi=xiβ
Yi=logit1(xiβ+εi)
YiN(μi,σ2)
logitμi=xiβ
Yi=logit1(xiβ)+εi

因此方差结构将有所不同。想象一下从模型2模拟:方差将独立于期望值;&尽管响应的期望值将在0和1之间,但响应并非全部如此。

像模型4这样的广义线性混合模型又有所不同,因为它们包含随机效应:请参见此处此处


非常感谢您-这非常清楚地区分了模型1和模型2。您认为模型2预测某些准确度得分(尽管不是其期望值)超出[0,1]的原因特别有帮助(并且出于我的考虑取消其资格) )。我相信可以对模型1使用类似的直觉:其可能的预测准确性得分的范围为(0,1)而不是[0,1]。在问题数量有限的情况下,模型应该预测一些准确性得分为0或1,而二项式分布可以做到这一点。
user20061 2013年

2
注意:您平时应(您的配合对原始数据的Logit链接二项式GLM longdata),而不是比例为你的模型3
恢复莫妮卡- Scortchi

7

向@Scortchi +1,后者提供了非常清晰简洁的答案。我想提出几点补充意见。首先,对于第二个模型,您指定响应分布为高斯分布(aka,正态)。这必须是错误的,因为每个答案的评分都正确或不正确。也就是说,每个答案都是伯努利审判。因此,您的响应分布是二项式。这个想法也正确地反映在您的代码中。接下来,控制响应分布的概率是正态分布的,因此链接应该是概率,而不是logit。最后,如果这是真实情况,则您需要考虑主题和问题的随机影响,因为它们极不可能完全相同。您生成这些数据的方式,每个人唯一相关的方面就是他们的智商,您已经明确说明了。因此,模型中的随机效应无需解决任何剩余问题。对于问题也是如此,因为问题难度的随机变化不是代码中数据生成过程的一部分。

我不是故意在这里挑剔。我知道您的设置只是为了方便您的问题而设计的,它已经达到了目的。@Scortchi可以非常轻松地直接解决您的问题。但是,我指出这些是因为它们提供了更多的机会来理解您所处的困境,并且因为您可能没有意识到代码与故事情节的某些部分匹配,而其他部分则没有。


感谢您对我的代码这么仔细的思考。作为处理经验数据的人,我很自豪地说我在生成虚假数据方面没有专业知识,在这里您发现的缺点就是它的体现。虽然,我的新手理解水平也可能会显示出来。
user20061 2013年

感谢gung,这些额外的信息非常有用,可以帮助其他人(至少是我)更好地了解整个情况。掌握GLM方法非常困难。
Christopher Poile 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.