R 在混合效应logistic回归中估计风险比而不是优势比`

R 在混合效应logistic回归中估计风险比而不是优势比`,r,lme4,R,Lme4,glmer用于估计数据聚集时对y的logit量表的影响。在以下模型中 fit1 = glmer(y ~ treat + x + ( 1 | cluster), family = binomial(link = "logit")) treat系数的exp是一个二元0-1治疗变量的优势比,x是一个协变量,cluster是一个聚类指标,我们通过它模拟随机效应(截距)。在glm中,估计风险比率的标准方法是使用log链接,即系列=二项式(link=“log”)。然而,在glmer中

glmer
用于估计数据聚集时对
y
的logit量表的影响。在以下模型中

fit1 = glmer(y ~ treat + x + ( 1 | cluster), family = binomial(link = "logit")) 
treat
系数的
exp
是一个二元
0-1
治疗变量的优势比,
x
是一个协变量,
cluster
是一个聚类指标,我们通过它模拟随机效应(截距)。在
glm
中,估计风险比率的标准方法是使用
log
链接,即
系列=二项式(link=“log”)
。然而,在
glmer
中使用此选项时,会出现错误

Error in (function (fr, X, reTrms, family, nAGQ = 1L, verbose = 0L, maxit = 100L,  : 
  (maxstephalfit) PIRLS step-halvings failed to reduce deviance in pwrssUpdate
打完电话

fit1 = glmer(y ~ treat + x + ( 1 | cluster), family = binomial(link = "log")) 
一项网络搜索显示,其他人与
Gamma
家族有类似的问题

这似乎是一个普遍的问题,如下例所示。因此,我的问题是:如何使用像
glmer
这样的混合效应模型来估计风险比率

可复制示例 下面的代码模拟复制问题的数据

n = 1000                            # sample size
m = 50                              # number of clusters
J = sample(1:m, n, replace = T)     # simulate cluster membership
x = rnorm(n)                        # simulate covariate
treat = rbinom(n, 1, 0.5)           # simulate random treatment
u  = rnorm(m)                       # simulate random intercepts
lt = x + treat + u[J]               # compute linear term of logistic mixed effect model
p  = 1/(1+exp(-lt))                 # use logit link to transform to probabilities
y  = rbinom(n,1,p)                  # draw binomial outcomes
d  = data.frame(y, x, treat)

# First fit logistic model with glmer
fit1  = glmer( y ~ treat + x + (1 | as.factor(J)), 
               family = binomial(link = "logit"), data  = d) 
summary(fit1)

# Now try to log link    
fit2  = glmer( y ~ treat + x + (1 | as.factor(J)), 
               family = binomial(link = "log"), data  = d) 
由于您的模型生成值>1而返回:

  • PIRLS步骤减半未能减少pwrssUpdate中的偏差
    ...
    • 当使用
      lme4
      拟合GLMMs时,链接函数不会自动将响应限制在分布族的允许范围内(例如,具有对数链接的二项式模型,其中估计概率可以大于1,或反向伽马模型,其中估计平均值可以为负),出现这种错误并不罕见。发生这种情况的原因是
      lme4
      不做任何约束预测值的操作,因此会弹出
      NaN
      值,这些值不会被优雅地处理。如果可能,将链接功能切换到限制响应的链接功能(例如,二项式的logit链接或Gamma的log链接)
不幸的是,建议的解决方法是使用不同的链接函数

以下文件调查了计算[调整后]相对风险的许多备选模型选择:


我认为您将在交叉验证方面获得更多帮助,因为这是一个比编码问题更具统计性的问题。请注意,如果你能举出一个可复制的例子来帮助人们确定错误的原因。@emilliman5是的,我怀疑自己哪里是更好的出口。。。一个可复制的例子需要一段时间才能产生。回答/评论告诉我这在
glmer
中是不可能的,这也会有帮助。一个可复制的例子会很好。一般问题(仍然没有解决)是(我认为)与在这里详细记录的一样:。如果使用的链接函数不将预测限制在分布的可行空间内(例如,log link allows probabilities>1),则glmer是脆弱的。您可以尝试的事情:(1)glmmTMB可能会起作用?(2) 调整起始值?(3) 跳过nAGQ0初始步骤(请参阅链接)?@BenBolker谢谢!我会想办法的。你认为带对数链接的二项式族通常是解决这个估计问题的方法吗?这当然是一种合理的方法。假设您也可以通过使用基于拟合的logit模型的适当预测进行计算来生成事后风险比率(我相信这是可能的,但需要一些时间来确定如何进行)