¿Es el metaanálisis de odds ratios esencialmente inútil?


12

En un artículo reciente, Norton et al. (2018) declara que[1]

No se pueden comparar diferentes razones de probabilidad del mismo estudio cuando los modelos estadísticos que dan como resultado estimaciones de razón de probabilidades tienen diferentes variables explicativas porque cada modelo tiene un factor de escala arbitrario diferente. Tampoco se puede comparar la magnitud de la razón de probabilidades de un estudio con la magnitud de la razón de probabilidades de otro estudio, porque diferentes muestras y diferentes especificaciones del modelo tendrán diferentes factores de escala arbitrarios. Otra implicación es que las magnitudes de las odds ratios de una asociación dada en múltiples estudios no pueden sintetizarse en un metanálisis.

Una pequeña simulación ilustra esto (el código R está al final de la pregunta). Supongamos que el modelo verdadero es: Imagine además que los mismos datos generados por el modelo anterior son analizados por cuatro investigadores diferentes utilizando una regresión logística. El investigador 1 solo incluye como covariable, el investigador 2 incluye tanto como y así sucesivamente. Los estimados simulados promedio de la razón de probabilidades para de los cuatro investigadores fueron:

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

Es evidente que solo los investigadores 3 y 4 obtienen la razón de probabilidades correcta de aproximadamente mientras que los investigadores 1 y 2 no. Esto no sucede en la regresión lineal, que se puede mostrar fácilmente mediante una simulación similar (no se muestra aquí). Debo confesar que este resultado fue bastante sorprendente para mí, aunque este problema parece ser bien conocido . Hernán y col. (2011) llaman a esto una "rareza matemática" en lugar de un sesgo.2[ 2 ] [ 3 ][2][3]

Mis preguntas:

  1. Si las razones de probabilidad son básicamente incomparables entre los estudios y modelos, ¿cómo podemos combinar los resultados de diferentes estudios para resultados binarios?
  2. Lo que se puede decir de los innumerables metaanálisis que tenía combinan los odds ratios de diferentes estudios en los que cada estudio posiblemente ajustada por un conjunto diferente de covariables? ¿Son esencialmente inútiles?

Referencias

[1]: Norton EC, Dowd BE, Maciejewski ML (2018): Odds Ratios - Mejores prácticas y usos actuales. JAMA 320 (1): 84-85.

[2]: Norton EC, Dowd BE (2017): Log Odds and the Interpretation of Logit Models. Health Serv Res. 53 (2): 859-878.

[3]: Hernán MA, Clayton D, Keiding N (2011): la paradoja de Simpson desvelada. Int J Epidemiol 40: 780-785.

Divulgar

La pregunta (incluido el código R) es una versión modificada de una pregunta planteada por el usuario timdisher sobre métodos de datos .

Código 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

¿Por qué dices que esto no sucede con la regresión lineal? ¿Parece que solo estás describiendo el sesgo variable omitido?
usuario2879934

Respuestas:


11

Existen varios efectos alternativos que se pueden derivar del modelo de regresión logística que no sufren este mismo problema. Uno de los más fáciles es el efecto marginal promedio de la variable. Suponga el siguiente modelo de regresión logística:

ln[p1p]=Xβ+γd

donde es una matriz de (casos) por (covariables), son los pesos de regresión para las covariables, es la variable de tratamiento de interés y es su efecto.Xnkβkdγ

La fórmula para el efecto marginal promedio de sería:d

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

Este efecto sería la diferencia de probabilidad promedio en el resultado entre el grupo de tratamiento y control para aquellos que tienen los mismos valores en otros predictores (ver Gelman y Hill, 2007, p. 101).

La sintaxis R correspondiente dado el ejemplo de OP sería:

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))
}

Modifiqué la sintaxis de OP para demostrar que no se ve afectada por las variables que están en el modelo, siempre que la variable predictiva de interés no esté relacionada con otros predictores.

Modifiqué el marco de datos de resultados así:

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)
)

Y dentro de la simulación, guardé la diferencia de probabilidad promedio calculada:

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)

Y los nuevos resultados:

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

El efecto estimado fue consistente independientemente de la especificación del modelo. Y agregar covariables mejoró la eficiencia como con el modelo de regresión lineal:

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

Hay efectos adicionales que OP puede calcular como la razón de probabilidad promedio entre los dos grupos. La diferencia de probabilidad promedio calculada anteriormente está disponible en el paquete de márgenes en R y en el comando de márgenes en Stata. La razón de probabilidad promedio solo está disponible en Stata.

Sobre la otra pregunta sobre confiar en los resultados del metanálisis. Por un lado, la dirección del efecto no debería ser inútil. El problema con las razones de posibilidades no afecta el signo de los coeficientes. Entonces, si una gran parte de los estudios tienen una razón de posibilidades superior a uno, no hay razón para dudar de este efecto debido a este problema en particular.

En cuanto a la estimación exacta, no hay razón para creerlo. Lo bueno es que si los estudios constituyentes son ensayos controlados aleatorios, entonces los odds ratios son estimaciones conservadoras y los resultados reales son aún mayores. Esto se debe a que el efecto que OP demostró reduce las odds ratios hacia uno. Entonces, si la mayoría de los estudios tienen una razón de posibilidades superior a 1 y el metanálisis apunta en esta dirección, entonces el OR real una vez que se ajustan todas las covariables relevantes es aún mayor. Por lo tanto, estos metanálisis no son completamente inútiles.

Pero preferiría utilizar otras estimaciones de efectos en el metanálisis. La diferencia de probabilidad promedio es un enfoque, y hay otros.


Gelman, A. y Hill, J. (2007). Análisis de datos mediante regresión y modelos multinivel / jerárquicos. Prensa de la Universidad de Cambridge.


1
@COOLSerdash Gracias. Hay mucho más por explorar aquí. Se vuelve aún más interesante cuando la razón de probabilidad proviene de una variable continua que fue dicotomizada, especialmente si hubo heterocedasticidad en las relaciones originales. Vea la respuesta de Achim Zeileis a esta pregunta: stats.stackexchange.com/questions/370876/…
Heteroskedastic Jim

Gracias por el enlace. Debo confesar que la derivación del modelo logístico utilizando una variable continua latente subyacente es nueva para mí. Vengo de la bioestadística y las fuentes fundamentales en este campo no parecen mencionar estos problemas (por ejemplo, el libro de Lemeshow & Hosmer "Regresión logística aplicada"). Te otorgaré la recompensa tan pronto como pueda (mañana).
COOLSerdash

Creo que la derivación bajo la variable continua subyacente es extraña si asumes errores logísticos. Si asume errores normales, es más justificable gracias a CLT. Entonces, para la regresión probit utilizada mucho en econometría, es una derivación común. Pero si va a dicotomizar una variable continua, la derivación bajo errores es muy útil. Además, esta derivación permite explorar mejor el modelo en general y descubrir ciertas peculiaridades. Y gracias por la recompensa retrospectiva.
Heteroscedastic Jim
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.