Sesgo de publicación en ciencias médicas Borja Santos Zorrozúa 1,2,3, Eduardo González Fraile 4,, Javier Ballesteros Rodríguez 2,4 1 Universidad del País Vasco (UPV/EHU), 2 Cibersam (G16), 3 Programa PREDOC Gobierno Vasco, 4 Instituto de Investigaciones Psiquiátricas
1. Introducción SESGO DE PUBLICACIÓN
Causas e implicaciones Principales causas: -Intereses del investigador o organismo que promueve el estudio -Desestimación de la relevancia de resultados - Medios editoriales Implicaciones: - cuantificación irreal del verdadero efecto de un tratamiento.
Agomelatina
2. Objetivos Comparación de resultados aportados por las distintas librerías Publicados + No publicados Publicados SelectMeta Copas Samurai Trim & Fill LiteraturaLiteratura + RRealidad Fail safe N
> 3.Material y métodos > Material # Ensayos clínicos aleatorizados que estudian la # efectividad de la agomelatina como tratamiento # contra la depresión. # i) 6 ensayos publicados # ii) 6 ensayos no publicados > Métodos # Metaanálisis con los estudios publicados y no # publicados. # i) Metaanálisis con los estudios publicados # ii)Metaanálisis con las librerías que tienen en # cuenta el sesgo de publicación # iii) Estudio del sesgo de los estimadores del # efecto en comparación con el obtenido en el # primer punto
> # Metaanálisis publicados > library(metafor) > forest(meta_pub, pooled.totals=TRUE, + smlab="Hedges' g", col.i="blue", + col.square="blue", col.diamond="red") > funnel(meta_general)
> # Metaanálisis publicados y # no publicados > library(metafor) > forest(meta_general, pooled.totals=TRUE, > smlab="Hedges' g", col.i="blue", > col.square="blue", col.diamond="red") > funnel(meta_general)
# Fail safe N > library(metafor) > # Numero necesario de estudios según Rosenthal > fsn_ros <- fsn(datos_pub$g, datos_pub$SEg) > print(fsn_ros) Fail-safe N Calculation Using the Rosenthal Approach Observed Significance Level: Target Significance Level: 0.05 Fail-safe N: 1 > # Numero necesario de estudios según Orwin > fsn_or <- fsn(datos_pub$g, datos_pub$SEg,type="Orwin") > print(fsn_or) Fail-safe N Calculation Using the Orwin Approach Average Effect Size: Target Effect Size: Fail-safe N: 5 > # Numero necesario de estudios según Rosenberg > fsn_rosen <- fsn(datos_pub$g, datos_pub$SEg,type="Rosenberg") > print(fsn_rosen) Fail-safe N Calculation Using the Rosenberg Approach Average Effect Size: Observed Significance Level: Target Significance Level: 0.05 Fail-safe N: 0
# Trim & Fill > library(metafor) > forest(meta_trim, pooled.totals=TRUE, + smlab="Hedges’g", col.i="blue", + col.square="blue", col.diamond="red") > funnel(meta_general)
# Modelo de selección > library(selecMeta) > select1 <- DearBegg(datos_pub$g,datos_pub$SEg) > attributes(select1) $names [1] "w" "theta" "sigma" "p" "y" "u" "loglik“ > select1$theta [1] > DearBeggMonotoneCItheta(select1) [1] "Now computing confidence interval. May take a moment (up to a few minutes)." $ci.theta [1] > select2 <- DearBeggMonotone(datos_pub$g,datos_pub$SEg) > attributes(select2) $names [1] "w" "theta" "sigma" "p" "y" [6] "u" "loglik" "DEoptim.res“ > select2$theta [1] > DearBeggMonotoneCItheta(select2) [1] "Now computing confidence interval. May take a moment (up to a few minutes)." $ci.theta [1]
# Modelo de Copas > library(copas) > meta_copas <- copas(meta_pub) > meta_copas > plot(meta_copas) Summary of Copas selection model analysis: publprob SMD 95%-CI pval.treat pval.rsb N.unpubl [ ; ] < [ ; ] [ ; ] [ ; ] [ ; ] [ ; ] [ ; ] [ ; ] [ ; ] [ ; ] [ ; ] [ ; ] Copas model (adj) [ ; ] < Random effects model [ ; ] < Significance level for test of residual selection bias: 0.1
# Método SAMURAI > funnelplot(table = datos_samurai, + binary = FALSE, higher.is.better = FALSE, + mean.sd = TRUE, outlook = "no effect", + title = "Funnel plot") > library(SAMURAI) > metaanalisis_samurai <- forestsens(table = datos_samurai, + binary = FALSE, mean.sd = TRUE, outlook = "no effect", + plot.title = "Metaanálisis del efecto de agomelatina")
> 4.Resultados > meta_total <- c(round(meta_general$TE.random,2),round(meta_general$seTE.random,2),"-") > meta_psiquiatra <- c(round(meta_pub$TE.random,2),round(meta_pub$seTE.random,2), + round((( )/-0.24)*100,2)) > fsn_Rosenthal <- c("-","-","-",fsn_ros$fsnum) > fsn_Orwin <- c("-","-","-",fsn_or$fsnum) > fsn_Rosenberg <- c("-","-","-",fsn_rosen$fsnum) > meta_trimFill <- c(round(meta_trim$TE.random,2),round(meta_trim$seTE.random,2), + round((( )/-0.24)*100,2)) > meta_Copas <- c(-0.19,"-",round((( )/-0.24)*100,2)) > meta_DearBegg1 <- c(round(DearBegg1$theta,2),"-",round((( )/-0.24)*100,2),"-") > meta_DearBegg2 <- c(round(DearBegg2$theta,2),"-",round((( )/-0.24)*100,2),"-") > meta_Samurai <- c(-0.12,"-",round((( )/-0.24)*100,2)) > resultados <- rbind(meta_total,meta_psiquiatra,meta_trimFill,meta_Copas,meta_Samurai) > colnames(resultados) <- c("Estimador efecto","Error estandar","Sesgo estimador (%)") > resultados <- as.data.frame(resultados) > resultados Estimador efecto Error estandar Sesgo estimador (%) Estudios no publicados meta_total meta_psiquiatra fsn_Rosenthal fsn_Orwin fsn_Rosenberg meta_trimFill meta_DearBegg meta_DearBegg meta_Copas meta_Samurai Tamaño del efecto real (en general desconocido) Sobreestimación del efecto debido al sesgo de publicación Estimaciones (mejores o perores) del tamaño del efecto asumiendo sesgo de publicación
> 5.Conclusiones > i [1] "El sesgo de publicación interfiere en la estimación del tamaño del efecto." > ii [1] "Debido a que los estudios no significativos no sean publicados, el estimador está en realidad sobrestimando la eficacia." > iii [1] "La existencia de paquetes que nos permitan corregir el estimador del efecto son necesarias. De este modo podremos estimar de una manera más realista la verdadera eficacia del tratamiento." > iv [1] "En el caso en el que el número de estudios sea limitado, hay que tener cautela puesto que como la mayoría de métodos estadísticos, el funcionamiento es mayor cuando mayor sea la información disponible."
> 6.Bibliografía > citation() R Core Team (2013). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. URL > citation("meta") Guido Schwarzer (2013). meta: Meta-Analysis with R. R package version > citation("metafor") Wolfgang Viechtbauer (2010). Conducting meta-analyses in R with the metafor package. Journal of Statistical Software, 36(3), URL > citation("copas") James Carpenter and Guido Schwarzer (2013). copas: Statistical methods to model and adjust for bias in meta-analysis. R package version > citation("SAMURAI") Noory Y. Kim. Advisors: Shrikant I. Bangdiwala and Gerald Gartlehner. (2013). SAMURAI: Sensitivity Analysis of a Meta-analysis with Unpublished but Registered Analytical Investigations. R package version > citation("selectMeta") Kaspar Rufibach (2013). selectMeta: Estimation of weight functions in meta analysis. R package version