【问题标题】:Estimating risk ratio instead of odds ratio in mixed effect logistic regression in `R`在“R”中的混合效应逻辑回归中估计风险比而不是优势比
【发布时间】:2021-03-20 18:02:54
【问题描述】:

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

fit1 = glmer(y ~ treat + x + ( 1 | cluster), family = binomial(link = "logit")) 

treat 的系数的exp 是二元0-1 处理变量的优势比,x 是协变量,cluster 是一个聚类指标,我们通过它模拟随机效应(截距)。 glm 中估计风险比率的标准方法是使用 log 链接,即 family=binomial(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) 

【问题讨论】:

  • 我认为您会在 CrossValidated 上获得更多帮助,因为这是一个比编码问题更具统计性的问题。附言如果您可以制作一个可重现的示例来帮助人们确定错误的原因。
  • @emilliman5 是的,我怀疑自己在哪里有更好的出路……一个可复制的例子需要一点时间才能产生。告诉我这在glmer 中通常是不可能的答案/评论也会有所帮助。
  • 一个可重现的例子会很棒。一般问题(仍然未解决)(我认为)与此处详细记录的问题相同:github.com/lme4/lme4/issues/573。当您使用不将预测限制在分布的可行空间内的链接函数时(例如,log-link 允许概率 > 1),glmer 是脆弱的。您可以尝试的事情:(1) 也许 glmmTMB 会起作用吗? (2)调整起始值? (3) 跳过 nAGQ0 初始化步骤(见链接)?
  • @BenBolker 谢谢!我会尝试想出一些东西。您认为带有对数链接的二项式家庭通常是解决这个估计问题的方法吗?
  • 这当然是一种合理的方式。据推测,您还可以通过使用基于拟合 logit 模型的适当预测进行计算来生成风险比事后(我相信这是可能的,但需要一些时间来弄清楚如何做到这一点@ 987654322@bmcmedresmethodol.biomedcentral.com/articles/10.1186/…

标签: r lme4


【解决方案1】:

This error 被返回是因为你的模型产生的值 > 1:

  • PIRLS step-halvings failed to reduce deviance in pwrssUpdate ...
    • 当使用lme4 拟合具有链接函数的 GLMM 时,该链接函数不会自动将响应限制在分布族的允许范围内(例如,具有对数链接的二项式模型,其中估计概率可以 >1 或反Gamma 模型,其中估计的平均值可能为负),得到这个错误并不罕见。发生这种情况是因为lme4 没有做任何事情来约束预测值,所以弹出了NaN 值,这些值没有得到很好的处理。如果可能,将链接函数切换到限制响应的函数(例如,二项式的 logit 链接或 Gamma 的 log 链接)。

很遗憾,建议的解决方法是使用不同的链接函数。

以下论文调查了一些用于计算 [调整后] 相对风险的替代模型选择:

【讨论】:

    猜你喜欢
    • 2017-05-14
    • 1970-01-01
    • 2016-10-05
    • 2021-11-03
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多