优势比的荟萃分析本质上是没有希望的吗?

机器算法验证 r 物流 荟萃分析 优势比 调整
2022-03-17 08:14:14

在最近的一篇论文中,诺顿等人。(2018)[2]声明

当导致优势比估计的统计模型具有不同的解释变量时,无法比较来自同一研究的不同优势比,因为每个模型具有不同的任意比例因子。也不能将一项研究的优势比的大小与另一项研究的优势比的大小进行比较,因为不同的样本和不同的模型规格将具有不同的任意比例因子。进一步的暗示是,多项研究中给定关联的优势比的大小不能在荟萃分析中综合。

一个小型模拟说明了这一点(R 代码在问题的底部)。假设真实模型是:

logit(yi)=1+log(2)x1i+log(2.5)x2i+log(3)x3i+0x4i
进一步想象,由上述模型生成的相同数据由四位不同的研究人员使用逻辑回归进行分析。研究员 1 只包括x1作为协变量,研究人员 2 包括x1x2等等。优势比的平均模拟估计值x1四名研究人员中的一位是:

res_1    res_2    res_3    res_4 
1.679768 1.776200 2.002157 2.004077

很明显,只有研究人员 3 和 4 的正确优势比约为2而研究人员 1 和 2 则没有。如果省略的变量与其他预测变量不相关,则线性回归中不会发生这种情况。来自逻辑回归的估计值的行为方式不同(Mood 2010[1])。我必须承认,这个结果让我很惊讶,虽然这个问题似乎是众所周知的[3]. 埃尔南等人。(2011)[4]将此称为“数学上的怪异”而不是偏见。

我的问题:

  1. 如果优势比在研究和模型之间基本上无法比较,我们如何将不同研究的结果结合起来以获得二元结果?
  2. 无数荟萃分析确实结合了来自不同研究的优势比,其中每项研究可能针对一组不同的协变量进行调整,可以说什么呢?它们本质上是无用的吗?

参考

[1]:心情,C.(2010 年)。逻辑回归:为什么我们不能做我们认为我们能做的事,以及我们能做些什么。欧洲社会学评论,26(1),67-82。

[2]:诺顿 EC、Dowd BE、Maciejewski ML (2018):优势比 - 当前的最佳实践和使用。JAMA 320(1):84-85。

[3]:诺顿 EC,Dowd BE(2017 年):对数赔率和 Logit 模型的解释。健康服务水库。53(2):859-878。

[4]: Hernán MA, Clayton D, Keiding N (2011):辛普森悖论被揭开。国际流行病学杂志 40:780-785。

披露

该问题(包括 R 代码)是用户timdisherdatamethods上提出的问题的修改版本。

R代码

set.seed(142857)

n_sims <- 1000 # number of simulations

out <- data.frame(
  treat_1 = rep(NA, n_sims)
  , treat_2 = rep(NA, n_sims)
  , treat_3 = rep(NA, n_sims)
  , treat_4 = rep(NA, n_sims)
)

n <- 1000 # number of observations in each simulation

coef_sim <- "x1" # Coefficient of interest

# Coefficients (log-odds)
b0 <- 1
b1 <- log(2)
b2 <- log(2.5)
b3 <- log(3)
b4 <- 0

for(i in 1:n_sims){
  
  x1 <- rbinom(n, 1, 0.5)
  x2 <- rnorm(n)
  x3 <- rnorm(n) 
  x4 <- rnorm(n) 
  
  z <-  b0 + b1*x1 + b2*x2 + b3*x3 + b4*x4
  
  pr <- 1/(1 + exp(-z))  
  
  y <-  rbinom(n, 1, pr)
  
  df <-  data.frame(y = y, x1 = x1, x2 = x2, x3 = x3, x4 = x4)
  model1 <- glm(y ~ x1, data = df, family = "binomial")
  model2 <- glm(y ~ x1 + x2, data = df, family = "binomial")
  model3 <- glm(y ~ x1 + x2 + x3, data = df, family = "binomial")
  model4 <- glm(y ~ x1 + x2 + x3 + x4, data = df, family = "binomial")
  
  
  out$treat_1[i] <- model1$coefficients[coef_sim]
  out$treat_2[i] <- model2$coefficients[coef_sim]
  out$treat_3[i] <- model3$coefficients[coef_sim]
  out$treat_4[i] <- model4$coefficients[coef_sim]
  
}

# Coefficients
colMeans(out)
exp(colMeans(out)) # Odds ratios
```
1个回答

从逻辑回归模型中可以得出许多替代效应,它们不会遇到同样的问题。最简单的方法之一是变量的平均边际效应。假设以下逻辑回归模型:

ln[p1p]=Xβ+γd

在哪里X是一个n(例)由k(协变量)矩阵,β是回归权重k协变量,d是感兴趣的处理变量,并且γ是它的作用。

平均边际效应的公式d将会:

1ni=1n[(1+e(Xβ+γ))1(1+eXβ)1]

对于那些在其他预测变量上具有相同值的人来说,这种影响将是治疗组和对照组之间结果的平均概率差异(见 Gelman & Hill, 2007, p. 101)。

给定 OP 示例的相应 R 语法将是:

dydx_bin <- function(fit, coef) {
  mod.mat <- model.matrix(fit) # Obtain model matrix
  coefs <- coef(fit)
  oth_coefs <- coefs[!(names(coefs) == coef)] # Coefs bar focal predictor
  # Get model matrix excluding focal predictor
  X_nb <- as.matrix(mod.mat[, names(oth_coefs)])
  # Predictions for all data ignoring focal predictor
  Xb_nb <- X_nb %*% oth_coefs
  mean(plogis(Xb_nb + coefs[coef]) - plogis(Xb_nb))
}

我修改了 OP 的语法以证明它不受模型中哪些变量的影响,只要感兴趣的预测变量与其他预测变量无关。

我因此修改了结果数据框:

out <- data.frame(
  treat_1 = rep(NA, n_sims), treat_2 = rep(NA, n_sims),
  treat_3 = rep(NA, n_sims), treat_4 = rep(NA, n_sims),
  treat_11 = rep(NA, n_sims), treat_21 = rep(NA, n_sims),
  treat_31 = rep(NA, n_sims), treat_41 = rep(NA, n_sims)
)

在模拟中,我保存了计算出的平均概率差:

out$treat_11[i] <- dydx_bin(model1, coef_sim)
out$treat_21[i] <- dydx_bin(model2, coef_sim)
out$treat_31[i] <- dydx_bin(model3, coef_sim)
out$treat_41[i] <- dydx_bin(model4, coef_sim)

和新的结果:

colMeans(out)[5:8]
 treat_11  treat_21  treat_31  treat_41 
0.1019574 0.1018248 0.1018544 0.1018642 

无论模型规格如何,估计的效果都是一致的。和线性回归模型一样,添加协变量可以提高效率:

apply(out[, 5:8], 2, sd)
  treat_11   treat_21   treat_31   treat_41 
0.02896480 0.02722519 0.02492078 0.02493236 

OP 可以计算其他影响,例如两组之间的平均概率比。上面计算的平均概率差异可从 R 中的 margins 包和 Stata 中的 margins 命令获得。平均概率比仅在 Stata 中可用。

关于信任荟萃分析结果的另一个问题。一方面,效果的方向不应该是无用的。优势比的问题不会影响系数的符号。因此,如果大量研究的优势比高于 1,则没有理由因为这个特殊问题而怀疑这种效果。

至于确切的估计,没有理由相信。好消息是,如果成分研究是随机对照试验,那么优势比是保守估计,实际结果更大。这是因为 OP 所展示的效果将优势比缩小到 1。因此,如果大部分研究的优势比都高于 1,并且荟萃分析指向这个方向,那么调整所有相关协变量后的实际 OR 会更大。所以这些荟萃分析并非完全没用。

但我宁愿在荟萃分析中使用其他效果估计。平均概率差是一种方法,还有其他方法。


Gelman, A. 和 Hill, J. (2007)。使用回归和多级/分层模型进行数据分析。剑桥大学出版社。