La méta-analyse des rapports de cotes est-elle essentiellement sans espoir?

12

Dans un article récent, Norton et al. (2018) déclare que[1]

Différents rapports de cotes de la même étude ne peuvent pas être comparés lorsque les modèles statistiques qui aboutissent à des estimations de rapports de cotes ont des variables explicatives différentes parce que chaque modèle a un facteur d'échelle arbitraire différent. L’ampleur du rapport de cotes d’une étude ne peut pas non plus être comparée à l’ampleur du rapport de cotes d’une autre étude, car différents échantillons et différentes spécifications de modèle auront des facteurs d’échelle arbitraires différents. Une autre implication est que les amplitudes des rapports de cotes d'une association donnée dans plusieurs études ne peuvent pas être synthétisées dans une méta-analyse.

Une petite simulation illustre cela (le code R est au bas de la question). Supposons que le vrai modèle soit: Imaginez en outre que les mêmes données générées par le modèle ci-dessus sont analysées par quatre chercheurs différents à l'aide d'une régression logistique. Le chercheur 1 inclut uniquement comme covariable, le chercheur 2 comprend à la fois et et ainsi de suite. Les estimations simulées moyennes du rapport de cotes pour des quatre chercheurs étaient les suivantes:

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

Il est évident que seuls les chercheurs 3 et 4 obtiennent le rapport de cotes correct d'environ contrairement aux chercheurs 1 et 2. Cela ne se produit pas dans la régression linéaire, ce qui peut être facilement montré par une simulation similaire (non représentée ici). Je dois avouer que ce résultat m'a beaucoup surpris, même si ce problème semble bien connu . Hernán et al. (2011) appellent cela une "bizarrerie mathématique" au lieu d'un biais.2[ 2 ] [ 3 ][2][3]

Mes questions:

  1. Si les rapports de cotes sont fondamentalement incomparables entre les études et les modèles, comment pouvons-nous combiner les résultats de différentes études pour les résultats binaires?
  2. Que peut - on dire sur les innombrables méta-analyses qui ne combinent les odds ratios de différentes études où éventuellement chaque étude ajustée pour un ensemble différent de covariables? Sont-ils essentiellement inutiles?

Les références

[1]: Norton EC, Dowd BE, Maciejewski ML (2018): Odds Ratios - Current Best Practice and Use. 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): Le paradoxe des Simpson s'est effondré. Int J Epidemiol 40: 780-785.

Divulgation

La question (y compris le code R) est une version modifiée d'une question posée par l'utilisateur timdisher sur les méthodes de données .

Code 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
COOLSerdash
la source
Pourquoi dites-vous que cela ne se produit pas avec une régression linéaire. Il semble que vous décriviez simplement un biais de variable omis?
user2879934

Réponses:

11

Il existe un certain nombre d'effets alternatifs que l'on peut dériver du modèle de régression logistique qui ne souffrent pas de ce même problème. L'un des plus faciles est l'effet marginal moyen de la variable. Supposons le modèle de régression logistique suivant:

ln[p1p]=Xβ+γd

Xnkβkdγ

d

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

Cet effet serait la différence de probabilité moyenne dans le résultat entre le groupe de traitement et le groupe témoin pour ceux qui ont les mêmes valeurs sur d'autres prédicteurs (voir Gelman et Hill, 2007, p. 101).

La syntaxe R correspondante donnée dans l'exemple de OP serait:

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

J'ai modifié la syntaxe de OP pour démontrer qu'elle n'est pas affectée par les variables présentes dans le modèle, tant que la variable prédictive d'intérêt n'est pas liée à d'autres prédicteurs.

J'ai modifié ainsi le bloc de données des résultats:

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

Et dans la simulation, j'ai enregistré la différence de probabilité moyenne calculée:

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)

Et les nouveaux résultats:

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

L'effet estimé était cohérent quelle que soit la spécification du modèle. Et l'ajout de covariables a amélioré l'efficacité comme avec le modèle de régression linéaire:

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

Il y a des effets supplémentaires que OP peut calculer comme le rapport de probabilité moyen entre les deux groupes. La différence de probabilité moyenne calculée ci-dessus est disponible à partir du package de marges dans R et de la commande de marges dans Stata. Le rapport de probabilité moyen n'est disponible que dans Stata.

Sur l'autre question concernant la confiance accordée aux résultats de la méta-analyse. D'une part, la direction de l'effet ne doit pas être inutile. Le problème des rapports de cotes n'affecte pas le signe des coefficients. Donc, si un grand nombre d'études ont un rapport de cotes supérieur à un, il n'y a aucune raison de douter de cet effet en raison de ce problème particulier.

Quant à l'estimation exacte, il n'y a aucune raison de la croire. La bonne chose est que si les études constituantes sont des essais contrôlés randomisés, les rapports de cotes sont des estimations prudentes et les résultats réels sont encore plus importants. En effet, l'effet démontré par OP réduit les rapports de cotes vers un. Donc, si la majorité des études ont un rapport de cotes supérieur à 1 et que la méta-analyse pointe dans cette direction, alors le OR réel une fois que toutes les covariables pertinentes sont ajustées est encore plus grand. Ces méta-analyses ne sont donc pas entièrement inutiles.

Mais je préfère que d'autres estimations d'effet soient utilisées dans la méta-analyse. La différence de probabilité moyenne est une approche, et il y en a d'autres.


Gelman, A. et Hill, J. (2007). Analyse des données à l'aide de modèles de régression et multiniveaux / hiérarchiques. La presse de l'Universite de Cambridge.

Heteroskedastic Jim
la source
1
@COOLSerdash Merci. Il y a tellement plus à explorer ici. Cela devient encore plus intéressant lorsque le rapport de cotes provient d'une variable continue qui a été dichotomisée, surtout s'il y avait une hétéroscédasticité dans les relations d'origine. Voir la réponse d'Achim Zeileis à cette question - stats.stackexchange.com/questions/370876/…
Heteroskedastic Jim
Merci pour le lien. Je dois avouer que la dérivation du modèle logistique à l'aide d'une variable continue latente sous-jacente est nouvelle pour moi. Je viens de la biostatistique et les sources séminales dans ce domaine ne semblent pas mentionner ces problèmes (par exemple le livre de Lemeshow & Hosmer "Régression logistique appliquée"). Je vous remettrai la prime dès que possible (demain).
COOLSerdash
Je pense que la dérivation sous une variable continue sous-jacente est étrange si vous supposez des erreurs logistiques. Si vous supposez des erreurs normales, c'est plus justifiable grâce à CLT. Donc, pour la régression probit utilisée beaucoup en économétrie, c'est une dérivation courante. Mais si vous allez dichotomiser une variable continue, la dérivation sous erreurs est très utile. De plus, cette dérivation permet de mieux explorer le modèle en général et de découvrir certaines bizarreries. Et merci pour la prime rétrospective.
Heteroskedastic Jim