我的数据看起来像下面的模拟。在数据中,有3个不同的组(g1,g2和g3),根据疾病的严重程度不同,分别需要进行1、2或3个程序(p1,p2,p3)。因此,组g1只有p1; p1,p2为组g2;组g3的p1,p2,p3。每次测量均在每次操作时进行。我想做的是运行混合模型logistic回归拟合(很抱歉,如果使用的术语不正确:很高兴得知错误),以寻找p1患病率的患者比例差异特定治疗(y1
二分变量),并通过将其设置为随机变量来控制患者的病历。
使用此模拟数据,
的输出 mod_glmer = glmer(y1 ~ procedure + (1|id), data = data_g2, family = binomial)
给我以下错误:
Error in length(value <- as.numeric(value)) == 1L : Downdated VtV is not positive definite
我的猜测是,与以下事实有关:运行以下命令时,在p1
处只有1
:
table(data_g2$y1[data_g2$procedure == "p1"])
运行以下命令时,0
处同时有1
和p2
处:
table(data_g2$y1[data_g2$procedure == "p2"])
但是我也运行了类似的“标准”逻辑回归,但没有收到错误消息:
mod_glm = glm(y1 ~ procedure, data = data_g2, family = binomial)
我该怎么做才能证明y1
中p1
的比例与使用p2
的{{1}}有所不同?
PS:如果您模拟数据,则运行几次,因为这涉及到随机数的生成(如果随机运行,则每2次运行就会收到一次消息,每次使用glmer
都会给我一个错误。如果没有收到错误消息,请在set.seed(1)
中再输入一个数字n
数据模拟
set.seed(n)