尝试更改 R 中线性混合模型的负二项分布时出现错误消息

问题描述 投票:0回答:0

我正在查看治疗之前、期间和之后的计数数据(发生的健康事件)。

我已将该数据转换为基线的增量,以查看健康事件的频率如何降低。我想知道在治疗多少周后这种减少具有统计学意义。

我这里有一个我的数据的例子:

data_fuites <- data.frame(Week = c(rep(0:13, each = 33, times = 14)),
                          
ID_Participante = c("TELE01" , "TELE02" , "TELE04" , "TELE08" , "TELE09" , "TELE11" , "TELE12" , "TELE14" , "TELE16" , "TELE17" , "TELE22" , "TELE24" , "TELE25" , "TELE26" , "TELE27" , "TELE32" , "TELE33" , "TELE35" , "TELE40" , "TELE42" , "TELE46" , "TELE48" , "TELE50" , "TELE51" , "TELE56" , "TELE59" , "TELE60" , "TELE61" , "TELE62" , "TELE63" , "TELE64" , "TELE65" , "TELE68"),
                          
Variable = c(10 , 8 , 15 , 44 , 17 , 13 , 16 , 47 , 20 , 8 , 5 , 21 , 7 , 14 , 9 ,  14 , 9 , 7 , 5 , 25 , 37 , 24 , 29 , 4 , 4 , 24 , 56 , 10 , 5 , 25 , 17 , 13 , 9 ,  9 , 12 , 8 , 39 , 18 , 11 , 14 , 32 , 15 , 3 , NA , 11 , 7 , 5 , 6 , NA , 18 , 2 ,  8 , 21 , 37 , 16 , 28 , 1 , 0 , 20 , 62 , 10 , 4 , 15 , 7 , 6 , 2 , 9 , 12 , 10 , 35 ,  23 , 9 , 7 , 42 , 11 , 2 , 7 , 11 , 6 , NA , 3 , 6 , 18 , 2 , 8 , 30 , 38 , 16 , 25 ,  1 , 0 , 25 , 40 , 12 , 4 , 12 , 7 , 3 , 3 , 7 , 7 , 7 , 33 , 17 , 5 , 5 , 34 , 7 , 2 ,  8 , 7 , 7 , 3 , 3 , 3 , 14 , 2 , 11 , 30 , 35 , 13 , 25 , 1 , 0 , 25 , 40 , 15 , 4 , 20 , 6 , 4 , 2 , 12 , 10 , 6 , 31 , 10 , 4 , NA , 35 , 6 , 2 , 7 , 18 , 5 , 0 , 2 , 3 , 12 , 1 , 10 , 20 , 34 , 13 , 25 , 0 , 0 , 24 , 65 , 12 , 5 , 10 , 11 , 2 , 2 , 6 ,  9 , 1 , 30 , 10 , 11 , 3 , 33 , 7 , 1 , 4 , 14 , 6 , 4 , 1 , 3 , 13 , 0 , 10 , 15 , 35 , 14 , 22 , 0 , 2 , 28 , 62 , 11 , 5 , 7 , 6 , 2 , 2 , 10 , 7 , 5 , 25 , 4 , 5 , 7 , 34 , 7 , 1 , 7 , 7 , 6 , 2 , 1 , 3 , 13 , 1 , 9 , 12 , 31 , 13 , 21 , 0 , 0 , 21 , 33 , 9 , 5 , 9 , 9 , 4 , 5 , 8 , 7 , 2 , 22 , 3 , 4 , NA , 35 , 6 , 2 , 6 , 5 , 4 , 2 , 3 , 6 , 11 , 0 , 9 , 6 , 32 , 14 , 20 , 0 , 1 , 20 , 22 , 12 , 4 , 5 , 4 , NA , 1 , 7 , 6 , 4 , 18 , 3 , 1 , 2 , 25 , 6 , 1 , NA , 1 , 4 , 2 , 0 , 2 , 10 , 1 , NA ,  10 , 31 , 13 , 19 , 0 , 1 , NA , 36 , 9 , NA , 3 , 5 , 1 , 1 , 5 , 6 , 5 , 16 , 0 , 2 , 1 , 30 , 6 , 2 , NA , 0 , 5 , 0 , 0 , 0 , 8 , 0 , 28 , 3 , 28 , 8 , 17 , 0 , 0 , NA , 20 , 6 , 3 , 3 , 5 , 1 , 1 , 6 , 6 , 3 , 13 , 0 , 2 , 0 , 33 , 6 , 1 , 2 , 1 , 3 , 0 , 2 , NA , 6 , 0 , 25 , 4 , 25 , 6 , 15 , 1 , 0 , 28 , 32 , 7 , 3 , 4 , 4 , 1 , 1 , 3 , 4 , 1 , 8 , 0 , 1 , 0 , 33 , 3 , 1 , 8 , 1 , 5 , 1 , 2 , 0 , 4 , 0 , 7 , 0 , 21 , 4 , 18 , 0 , 0 , NA , 24 , 7 , 3 , 4 , 5 , NA , 1 , NA , NA , NA , NA , NA , 1 , 2 , 31 , NA , NA , 5 , 1 , 3 , NA , NA , 1 , 2 , NA , 7 , 1 , 21 , 4 , NA , 0 , 0 , NA , 35 , 4 , 3 , NA , 4 , NA , 1 , 2 , 2 , 1 , 3 , 0 , 4 , 1 , 22 , 4 , 5 , 6 , 6 ,  1 , 2 , 0 , 2 , 4 , 2 , 5 , 5 , 21 , 4 , 10 , 3 , 0 , 18 , 23 , 7 , 5 , 6 , 6 , NA , 4))

翻译成:

data_deltafuites <- data.frame(Week = c(rep(1:13, each = 33, times = 14)),
                          
ID_Participante = c("TELE01" , "TELE02" , "TELE04" , "TELE08" , "TELE09" , "TELE11" , "TELE12" , "TELE14" , "TELE16" , "TELE17" , "TELE22" , "TELE24" , "TELE25" , "TELE26" , "TELE27" , "TELE32" , "TELE33" , "TELE35" , "TELE40" , "TELE42" , "TELE46" , "TELE48" , "TELE50" , "TELE51" , "TELE56" , "TELE59" , "TELE60" , "TELE61" , "TELE62" , "TELE63" , "TELE64" , "TELE65" , "TELE68"),
                          
Variable = c(-1 , 4 , -7 , -5 , 1 , -2 , -2 , -15 , -5 , -5 , NA , -10 , 0 , -9 , -3 , NA , 9 , -5 , 3 , -4 , 0 , -8 , -1 , -3 , -4 , -4 , 6 , 0 , -1 , -10 , -10 , -7 , -7 , -1 , 4 , -5 , -9 , 6 , -4 , -9 , -5 , -9 , -6 , 2 , -10 , -1 , NA , -6 , -8 , 9 , -5 , 3 , 5 , 1 , -8 , -4 , -3 , -4 , 1 , -16 , 2 , -1 , -13 , -10 , -10 , -6 , -3 , -1 , -8 , -11 , 0 , -8 , -11 , -13 , -13 , -6 , 3 , -14 , 0 , -11 , -6 , -11 , 5 , -5 , 6 , 5 , -2 , -11 , -4 , -3 , -4 , 1 , -16 , 5 , -1 , -5 , -11 , -9 , -7 , 2 , 2 , -9 , -13 , -7 , -9 , NA , -12 , -14 , -6 , 2 , -3 , -2 , -14 , -7 , -11 , 3 , -6 , 5 , -5 , -3 , -11 , -4 , -4 , -4 , 0 , 9 , 2 , 0 , -15 , -6 , -11 , -7 , -4 , 1 , -14 , -14 , -7 , -2 , -13 , -14 , -13 , -7 , -1 , -7 , -1 , -10 , -8 , -11 , 4 , -7 , 5 , -10 , -2 , -10 , -7 , -4 , -2 , 4 , 6 , 1 , 0 , -18 , -11 , -11 , -7 , 0 , -1 , -10 , -19 , -13 , -8 , -9 , -13 , -13 , -7 , 2 , -14 , -1 , -12 , -8 , -11 , 4 , -6 , 4 , -13 , -6 , -11 , -8 , -4 , -4 , -3 , -23 , -1 , 0 , -16 , -8 , -9 , -4 , -2 , -1 , -13 , -22 , -14 , -9 , NA , -12 , -14 , -6 , 1 , -16 , -3 , -12 , -6 , -8 , 2 , -7 , 4 , -19 , -5 , -10 , -9 , -4 , -3 , -4 , -34 , 2 , -1 , -20 , -13 , NA , -8 , -3 , -2 , -11 , -26 , -14 , -12 , -14 , -22 , -14 , -7 , NA , -20 , -3 , -12 , -9 , -12 , 1 , -6 , NA , -15 , -6 , -11 , -10 , -4 , -3 , NA , -20 , -1 , NA , -22 , -12 , -12 , -8 , -5 , -2 , -10 , -28 , -17 , -11 , -15 , -17 , -14 , -6 , NA , -21 , -2 , -14 , -9 , -14 , -1 , -7 , 23 , -22 , -9 , -16 , -12 , -4 , -4 , NA , -36 , -4 , -2 , -22 , -12 , -12 , -8 , -4 , -2 , -12 , -31 , -17 , -11 , -16 , -14 , -14 , -7 , -3 , -20 , -4 , -14 , -7 , NA , -3 , -7 , 20 , -21 , -12 , -18 , -14 , -3 , -4 , 4 , -24 , -3 , -2 , -21 , -13 , -12 , -8 , -7 , -4 , -14 , -36 , -17 , -12 , -16 , -14 , -17 , -7 , 3 , -20 , -2 , -13 , -7 , -14 , -5 , -7 , 2 , -25 , -16 , -20 , -11 , -4 , -4 , NA , -32 , -3 , -2 , -21 , -12 , NA , -8 , NA , NA , NA , NA , NA , -12 , -14 , -16 , NA , NA , 0 , -20 , -4 , NA , NA , -13 , -7 , NA , 2 , -24 , -16 , -20 , NA , -4 , -4 , NA , -21 , -6 , -2 , NA , -13 , NA , -8 , -8 , -6 , -14 , -41 , -17 , -9 , -15 , -25 , -16 , -3 , 1 , -15 , -6 , -12 , -9 , -12 , -5 , -5 , 0 , -20 , -16 , -20 , -19 , -1 , -4 , -6 , -33 , -3 , 0 , -19 , -11 , NA , -5))

为了查看事件减少在哪个治疗周开始显着,我最初尝试使用线性混合模型。

as.factor(data_deltafuites$Week)
fit1=lmerTest::lmer(Variable~as.factor(Week)+(1|ID_Participante),data=data_deltafuites,verbose=FALSE)
tab_model(fit1)

这给了我这个: enter image description here

所以从第 5 周左右开始的效果在临床上是有意义的。

但是后来,我被告知这是计数数据,它需要服从泊松分布或负二项分布。 我试过泊松,有:

as.factor(data_deltafuites$Week)
fit2=glmer(Variable~as.factor(Week)+(1|ID_Participante),family=poisson(link = "log"),data=data_deltafuites,verbose=FALSE)
tab_model(fit2)

这给了我这个错误信息: eval(family$initialize, rho) 错误: “泊松”系列不允许使用负值

当我在事件上尝试泊松而不是三角洲时,我得到了这个: enter image description here

第 1 周以来的影响?这是没有意义的。但是:由于我的方差大于均值,如果我理解正确的话,它应该是负二项式而不是泊松。这可能就是为什么我得到的数字显示出一些令人难以置信的东西。

所以我尝试使用负二项式,其中:

as.factor(data_deltafuites$Week)
fit2=glmer.nb(Variable ~ as.factor(Week)+(1|ID_Participante), data=data_deltafuites,verbose=FALSE)
tab_model(fit2)

但是,我又收到了同样的错误信息:enter image description here

当我尝试参加这些活动时,我再次获得了一些令人难以置信的数字,效果从第 1 周开始。 enter image description here

我错过了什么吗?您是否会找到一种方法来理解我的数据,即使用具有负二项分布的线性混合模型来减少事件数量?我对线性混合模型比较陌生,所以非常感谢您的投入!

谢谢!

linear-regression mixed-models
© www.soinside.com 2019 - 2024. All rights reserved.