1

最近,为了应用负二项式回归,我处理并清理了一个数据。

首先,我尝试在Rglm.nb中使用包MASS的功能,但在确保模型将实现数据针对一个唯一参与者(一组观察结果中可能存在相关性)时遇到了问题。

然后,我意识到我可以使用glmmPQLMASSglmerlme4并在其家庭链接中使用家庭负二项式。

问题是我想知道我可以在模型的哪个部分嵌入偏移量(治疗天数的对数)以及我应该如何插入 id 的时间常数观察值(例如性别和基线年龄) df)?

我最近的尝试是:

(glmmPQL (event ~ treatment + offset (log(person.time)) , 
random= list (id=~1, gender=~1, baseline.age=~1), 
family= negative.binomial (theta=1.75), data=df ))

它面临与内存相关的错误(可能是因为错误的代码)。数据示例:

df<-data.frame(id=rep(1:3,each=4),treatment=sample(c(0,1),12,replace = T),
event=sample(c(0,1),12,replace = T),
person.time=sample(c(15,31,30),12,replace = T),
age=rep(c(65,58,74),each=4),gender=rep(c("m","f","m"),each=4))
4

1 回答 1

1

我想在这里回答我自己的问题,以便将来对某些研究人员有用。

首先,我意识到与MASS包中的glmPQL相比, lme4包可能是混合效果模型的更好选择。

其次,我意识到,当我们对数据使用 glmer 模型时,我们对计算发生率比率(如发生率比率)感兴趣(如在我们的示例中),我们需要在偏移参数中使用时间段,并且案例一对使用二元结果变量的时间序列分析感兴趣,应该使用连续两次观察之间的持续时间,而不是这些时间段的累积总和(所以,这是我使用lme4glmer 函数时遇到的主要问题包裹)。

在模型函数中包含参数,例如在Survival包中使用的参数( Surv函数的“tstart”和“tstop” ),对于具有其他背景和不太熟悉R的研究人员来说,简化模型公式将非常有用。

在上面的示例数据上运行模型的代码:

tdpm<-glmer(event ~ treatment + age + gender + (1|id), offset=(log(person.time)), data = df ,verbose = T, family = "poisson")

为了测试我们使用的正确的人时,我们可以手动计算比率,并将其与进一步的比率的指数进行比较;

(sum(df$event[df$treatment==1])/sum(df$person.time[df$treatment==1]))/(sum(df$event[df$treatment==0])/sum(df$person.time[df$treatment==0]))
exp(fixef(tdpm))[2]
于 2021-09-03T16:03:51.433 回答