优势比的荟萃分析是否基本没有希望?


12

在最近的一篇论文中,诺顿等人。(2018)指出[1]

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

一个小的模拟说明了这一点(R代码在问题的底部)。假设真实模型为: 进一步想象一下,由四个不同的研究人员使用逻辑回归分析了上述模型生成的相同数据。研究人员1仅包含作为协变量,研究人员2同时包含和,依此类推。四位研究人员的优势比的平均模拟估计值为:

logit(yi)=1+log(2)x1i+log(2.5)x2i+log(3)x3i+0x4i
x1x1x2x1

res_1    res_2    res_3    res_4 
1.679768 1.776200 2.002157 2.004077

显然,只有研究人员3和4获得了大约的正确比值比,而研究人员1和2没有。这在线性回归中不会发生,可以通过类似的模拟轻松显示(此处未显示)。我必须承认,尽管这个问题似乎是众所周知的,但这个结果对我来说却是令人惊讶的。Hernán等(2011)将此称为“数学上的奇异性”,而不是偏见。2[2][3]

我的问题:

  1. 如果各研究和模型之间的优势比基本上不可比,那么我们如何结合不同研究的结果以得出二元结果呢?
  2. 有什么可以对无数的元分析的结果可以说从不同的研究结合起来,优势比,每个研究可能调整不同协变量集?他们本质上是无用的吗?

参考文献

[1]:Norton EC,Dowd BE,Maciejewski ML(2018年):赔率-当前最佳实践和使用。JAMA 320(1):84-85。

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

[3]:HernánMA,Clayton D,Keiding N(2011):揭开了辛普森悖论的面纱。Int J Epidemiol 40:780-785。

揭露

问题(包括R代码)是用户timdisher数据方法上提出的问题的修改版本。

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

为什么说线性回归不会发生这种情况。似乎您只是在描述省略的变量偏差?
user2879934

Answers:


11

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

ln[p1p]=Xβ+γd

其中是(案例)乘以(协变量)矩阵,是协变量的回归权重,是关注的治疗变量,是其作用。Xnkβkdγ

的平均边际效应的公式为:d

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

对于其他预测变量具有相同值的患者,此效果将是治疗组与对照组之间结局的平均概率差异(请参见Gelman&Hill,2007,第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,并且荟萃分析正朝着这个方向发展,那么在对所有相关协变量进行调整后,实际OR会更大。因此,这些荟萃分析并非完全没有用。

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


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


1
@COOLSerdash谢谢。这里还有更多值得探索的地方。当比值比来自被二分法的连续变量时,它会变得更加有趣,特别是如果原始关系中存在异方差时。见阿希姆Zeileis这个问题的答案- stats.stackexchange.com/questions/370876/...
异方差吉姆·

感谢您的链接。我必须承认,使用潜在的潜在连续变量推导逻辑模型对我来说是新的。我来自生物统计学,该领域的开创性文献似乎没有提到这些问题(例如,Lomeshow&Hosmer的书“ Applied logistic return”)。我将尽快(明天)授予您赏金。
COOLSerdash '18 -10-17

我认为如果假设逻辑错误,则在基础连续变量下的派生比较奇怪。如果您假设正常错误,那么使用CLT更为合理。因此对于概率回归在计量经济学中使用很多,这是一个常见的推导。但是,如果您将一个连续变量二等分,那么在误差下求导将非常有帮助。而且,这种推导使人们能够更好地总体上探索模型并发现某些怪癖。并感谢您的回顾性赏金。
异方体吉姆(Jim)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.