我正在处理纵向数据,并试图说明在混合模型的情况下使用负二项式分布而不是泊松分布来解决过度分散的想法。我正在使用lme4
软件包,尤其是尝试使用glmer.nb()
。
给我的印象是glmer.nb()
会估计theta,也就是说,当我们不知道色散参数,也不必指定theta时,可以使用此命令。我很确定我可以早一点使用它,但是今天我无法使其工作-我认为我没有对代码或已加载的软件包进行任何更改,但是现在收到一条错误消息,指出似乎是在告诉我我需要指定theta。
我的代码:
ep.glmer.nb<-glmer.nb(
count~trt*time + (1|id)+(0+time|id)
+offset(log(offset)),
data=ep_long)
错误消息:
negative.binomial(theta = 41.1203758840614)中的错误: 未使用的参数(theta = 41.1203758840614)
通过将这个数字作为theta并将glmer
与family=MASS::negative.binomial
一起使用,我能够尝试一种解决方法
ep.glmer.nb2 <- glmer(count~trt*time + (1|id)+(0+time|id) +
offset(log(offset)),
data=ep_long,
family=MASS::negative.binomial(theta= 41.1203758840614))
我还确定,通过从等效的泊松模型中调用theta可以得到相似(但不完全相同)的结果:
ep.glmer.nb3<-glmer(count~trt*time + (1|id)+(0+time|id) +offset(log(offset)),
data=ep_long,
family=MASS::negative.binomial(theta = lme4:::est_theta(ep.glmer))
)
这些变通办法很好,并且可以使我足够接近...。但是我的印象是,使用glmer.nb
时不需要这些。
外面的人有没有输入有关glmer.nb
为何无法正常工作的信息?