在最近的一篇论文中,诺顿等人。(2018)指出
当导致赔率估算的统计模型具有不同的解释变量时,无法比较来自同一研究的不同赔率,因为每个模型具有不同的任意比例因子。也不能将一项研究的优势比的幅度与另一项研究的优势比的幅度进行比较,因为不同的样本和不同的模型规格将具有不同的任意缩放因子。进一步的暗示是,在多项研究中,给定关联的比值比的大小无法在荟萃分析中进行综合。
一个小的模拟说明了这一点(R代码在问题的底部)。假设真实模型为:
进一步想象一下,由四个不同的研究人员使用逻辑回归分析了上述模型生成的相同数据。研究人员1仅包含作为协变量,研究人员2同时包含和,依此类推。四位研究人员的优势比的平均模拟估计值为:
res_1 res_2 res_3 res_4
1.679768 1.776200 2.002157 2.004077
显然,只有研究人员3和4获得了大约的正确比值比,而研究人员1和2没有。这在线性回归中不会发生,可以通过类似的模拟轻松显示(此处未显示)。我必须承认,尽管这个问题似乎是众所周知的,但这个结果对我来说却是令人惊讶的。Hernán等。(2011)将此称为“数学上的奇异性”,而不是偏见。
我的问题:
- 如果各研究和模型之间的优势比基本上不可比,那么我们如何结合不同研究的结果以得出二元结果呢?
- 有什么可以对无数的元分析的结果可以说并从不同的研究结合起来,优势比,每个研究可能调整不同协变量集?他们本质上是无用的吗?
参考文献
[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