What is the metafor package in R?

Meta-Análisis en R: Desbloquea el Poder de tus Datos

14/04/2015

Valoración: 4.87 (3081 votos)

En la vasta y creciente marea de información científica, el meta-análisis emerge como un faro, consolidando hallazgos de múltiples estudios para ofrecer una visión más robusta y generalizable. Es una herramienta indispensable en campos como la medicina, la psicología y las ciencias sociales, permitiendo a los investigadores sintetizar evidencia, identificar patrones y cuantificar efectos con una precisión que los estudios individuales a menudo no pueden alcanzar. Dentro de este panorama, R, el entorno de programación y software libre para el análisis estadístico, se ha consolidado como la plataforma por excelencia para llevar a cabo meta-análisis complejos y sofisticados, gracias a su flexibilidad, su rica colección de paquetes especializados y su vibrante comunidad de usuarios. Este artículo te guiará a través de las capacidades de R para el meta-análisis, desde la configuración inicial hasta técnicas avanzadas para evaluar y ajustar la heterogeneidad y los sesgos, proporcionándote las claves para dominar esta poderosa metodología.

Can you use R for meta-analysis?
Methods R package meta is used to conduct standard meta-analysis. Sensitivity analyses for missing binary outcome data and potential selection bias are conducted with R package metasens. All essential R commands are provided and clearly described to conduct and report analyses.
Índice de Contenido

¿Por qué R para el Meta-Análisis?

La elección de R para el meta-análisis no es casualidad; responde a una serie de ventajas inigualables que lo posicionan como la herramienta preferida por los expertos. R ofrece una flexibilidad sin precedentes, permitiendo a los usuarios adaptar los análisis a sus necesidades específicas, implementar nuevas metodologías tan pronto como se desarrollan y automatizar procesos complejos. Su naturaleza de código abierto significa que es accesible para todos, sin costos de licencia, y cuenta con una comunidad global activa que contribuye constantemente con nuevos paquetes y mejoras. Para el meta-análisis, destacan tres paquetes fundamentales que cubren una amplia gama de funcionalidades: meta, metasens y metafor.

  • El paquete meta es un caballo de batalla para los meta-análisis estándar, proporcionando funciones intuitivas para la combinación de resultados, la evaluación de la heterogeneidad y la creación de gráficos esenciales como los forest plots.
  • metasens, por su parte, se especializa en el análisis de sensibilidad, particularmente útil para explorar el impacto de los datos faltantes y los sesgos en los resultados del meta-análisis.
  • Finalmente, metafor es un paquete integral y extremadamente potente, capaz de manejar modelos meta-analíticos complejos, incluyendo meta-regresión, modelos multinivel y meta-análisis de red, lo que lo convierte en una opción robusta para investigaciones avanzadas.

Primeros Pasos: Configuración y Preparación de Datos en R

Antes de sumergirnos en los análisis, es crucial preparar nuestro entorno de trabajo en R. El primer paso es instalar los paquetes necesarios. Para meta y metasens, el comando es sencillo:

install.packages(c("meta", "metasens"))

Una vez instalados, debemos cargarlos en nuestra sesión actual de R para poder utilizarlos. Esto se hace con la función library():

library(meta) library(metasens)

Una característica útil del paquete meta es la función settings.meta(), que permite definir configuraciones predeterminadas para nuestra sesión, como el número de dígitos significativos para los resultados, lo que asegura una presentación consistente de nuestros análisis:

settings.meta(digits = 2)

La preparación de los datos es otro pilar fundamental. Los datos para un meta-análisis suelen provenir de múltiples estudios, cada uno con sus propias características y resultados. Un ejemplo clásico es el análisis de ensayos clínicos sobre la efectividad de un tratamiento. Para ilustrar, consideremos un conjunto de datos hipotético sobre la efectividad del haloperidol en el tratamiento de la esquizofrenia, donde se registran variables como el número de respondedores y no respondedores en los brazos de tratamiento y placebo, así como los abandonos. Estos datos se pueden importar fácilmente a R, por ejemplo, desde un archivo CSV o de texto:

joy = read.csv("Joy2006.txt")

Una vez importados, es vital explorar la estructura de los datos para asegurar su correcta interpretación y manejo. Comandos como simplemente escribir el nombre del objeto (joy), View(joy) para una vista de hoja de cálculo, o str(joy) para un resumen estructural, son esenciales para este proceso. Además, es una buena práctica añadir al conjunto de datos cualquier variable adicional que se utilizará en los análisis, como variables de subgrupos. Por ejemplo, si quisiéramos analizar por separado estudios con y sin datos faltantes, podríamos añadir una nueva columna:

joy$miss = ifelse((joy$drop.h + joy$drop.p) == 0, c("Sin datos faltantes"), c("Con datos faltantes"))

Este paso asegura que todas las variables estén disponibles y correctamente formateadas antes de proceder con el análisis principal.

Realizando Meta-Análisis de Efectos Fijos y Aleatorios

El corazón de cualquier meta-análisis reside en la combinación cuantitativa de los resultados de los estudios individuales. En R, el paquete meta ofrece funciones específicas para distintos tipos de resultados. Para resultados binarios, como la mejora clínica (sí/no), la función metabin() es la herramienta adecuada. Esta función requiere el número de eventos y el total de participantes en cada grupo (experimental y control), y por defecto, utiliza el riesgo relativo (RR) como medida de efecto.

m.publ = metabin(resp.h, resp.h + fail.h, resp.p, resp.p + fail.p, data = joy, studlab = paste0(author, " (", year, ")"), method.tau = "PM")

Este comando no solo realiza el análisis, sino que también crea un objeto m.publ que contiene todos los resultados y metadatos del meta-análisis. Por defecto, metabin calcula tanto el modelo de efectos fijos como el de efectos aleatorios. La elección entre un modelo de efectos fijos y un modelo de efectos aleatorios es una decisión fundamental en meta-análisis.

CaracterísticaModelo de Efectos FijosModelo de Efectos Aleatorios
Supuesto ClaveTodos los estudios estiman el mismo "efecto verdadero" único.Los "efectos verdaderos" varían entre estudios, extrayéndose de una distribución.
Fuente de VariabilidadSolo error de muestreo dentro de los estudios.Error de muestreo y heterogeneidad entre estudios (varianza de Tau²).
Estimación del EfectoPondera estudios inversamente a su varianza.Pondera estudios inversamente a su varianza más la varianza entre estudios.
GeneralizabilidadMenor, solo a estudios idénticos.Mayor, a una población más amplia de estudios.

La opción method.tau = "PM" especifica el método de Paule y Mandel para estimar la varianza entre estudios (Tau²), un método recomendado para resultados binarios. Para visualizar los resultados de manera clara y concisa, el forest plot es la representación gráfica estándar. Se genera con la función forest(), permitiendo personalizar el orden de los estudios, añadir intervalos de predicción y etiquetas descriptivas:

forest(m.publ, sortvar = year, prediction = TRUE, label.left = "Favorece placebo", label.right = "Favorece haloperidol")

Este gráfico es fundamental para una interpretación visual rápida de los efectos individuales y el efecto combinado.

What is the R2 in meta-regression?
The R2 signifies the amount of heterogeneity in your meta-analysis that can be explained by your moderator variable. If the value recorded is zero, then this implies that the moderator variable has no role in the observed heterogeneity and is likely a non-significant predictor of the outcome concerned.

Evaluación del Impacto de Datos Faltantes

Los datos faltantes son un desafío común en la investigación y pueden introducir sesgos significativos en los meta-análisis. Es crucial evaluar su impacto y, si es posible, ajustarlo. Una primera aproximación es realizar un análisis de subgrupos, separando los estudios con y sin datos faltantes. Esto se logra fácilmente actualizando el objeto del meta-análisis con la función update():

m.publ.sub = update(m.publ, byvar = miss, print.byvar = FALSE)

Para abordar de manera más directa el problema de los datos faltantes, el paquete metasens ofrece la función metamiss(), que implementa diversas estrategias de imputación. Estas estrategias varían en sus supuestos sobre la naturaleza de los datos faltantes, desde escenarios de "peor caso" a "mejor caso", hasta imputaciones basadas en proporciones observadas o en odds ratios de missingness informativos (IMORs). Es vital elegir el método de imputación que mejor se alinee con el conocimiento sustantivo del dominio y los supuestos de los datos.

Método (method.miss)Descripción
"GH"Método de Gamble y Hollis, basado en intervalos de incertidumbre para estudios individuales asumiendo escenarios de mejor y peor caso.
"IMOR"Basado en Odds Ratios de Missingness Informativos (IMORs) específicos del grupo. Requiere especificar IMOR.e e IMOR.c.
"0" (ICA-0)Imputa los datos faltantes como "no eventos" (0). Escenario de peor caso para el grupo experimental si el resultado es beneficioso.
"1" (ICA-1)Imputa los datos faltantes como "eventos" (1). Escenario de mejor caso para el grupo experimental si el resultado es beneficioso.
"pc" (ICA-pc)Basado en el riesgo observado en el grupo control.
"pe" (ICA-pe)Basado en el riesgo observado en el grupo experimental.
"p" (ICA-p)Basado en riesgos específicos del grupo.
"b" (ICA-b)Escenario de "mejor caso" para el grupo experimental. Requiere especificar si el resultado es beneficioso (small.values="good") o dañino (small.values="bad").
"w" (ICA-w)Escenario de "peor caso" para el grupo experimental. Requiere especificar si el resultado es beneficioso (small.values="good") o dañino (small.values="bad").

Por ejemplo, para imputar los datos faltantes como eventos (es decir, el escenario más favorable):

mmiss.1 = metamiss(m.publ, drop.h, drop.p, method.miss = "1")

Este enfoque permite a los investigadores evaluar la sensibilidad de sus conclusiones ante diferentes supuestos sobre los datos perdidos, fortaleciendo la validez de los resultados del meta-análisis.

Detección y Ajuste de Efectos de Estudios Pequeños (Small-Study Effects)

Los "efectos de estudios pequeños" (small-study effects) se refieren a la tendencia observada en algunos meta-análisis donde los estudios más pequeños reportan efectos de tratamiento más grandes o más variables que los estudios grandes. Una de las causas más conocidas es el sesgo de publicación, donde los estudios con resultados significativos o favorables son más propensos a ser publicados. La primera herramienta visual para detectar estos efectos es el funnel plot (gráfico de embudo), que grafica el tamaño del efecto contra una medida de precisión (típicamente el error estándar). Una asimetría en este gráfico sugiere la presencia de efectos de estudios pequeños:

funnel(m.publ)

Para refinar la interpretación, se puede generar un funnel plot con contornos que indican regiones de significancia estadística, lo que ayuda a distinguir si la asimetría se debe a un sesgo de publicación o a otras razones:

funnel(m.publ, contour.levels = c(0.9, 0.95, 0.99), col.contour = c("darkgray", "gray", "lightgray"))

Además de la inspección visual, existen pruebas estadísticas para la asimetría del funnel plot, como la prueba de Harbord, que se aplica con la función metabias():

metabias(m.publ, method.bias = "score")

Es importante recordar que estas pruebas tienen baja potencia, especialmente con un número reducido de estudios, por lo que su ausencia de significancia no descarta completamente la presencia de sesgo.

Una vez detectada la asimetría, se pueden emplear métodos para ajustar la estimación del efecto combinado por este sesgo. Dos métodos populares son:

  1. Trim-and-Fill: Este método "recorta" los estudios del funnel plot hasta que se vuelve simétrico, luego "rellena" el gráfico con imágenes especulares de los estudios eliminados (representando estudios no publicados) y recalcula el efecto combinado. En R, se implementa con trimfill():
  2. tf.publ = trimfill(m.publ) funnel(tf.publ)
  3. Ajuste por Regresión (Limit Meta-Analysis): Basado en el test de Egger, este método extiende el modelo de efectos aleatorios para incluir un parámetro que representa los efectos de estudios pequeños, proporcionando una estimación del efecto ajustado que se interpreta como el efecto límite para un estudio con precisión infinita. Se utiliza la función limitmeta():
  4. l1.publ = limitmeta(m.publ) funnel(l1.publ)

Estos métodos de ajuste son cruciales para obtener estimaciones de efecto más precisas y menos sesgadas.

El Poder del Paquete metafor

Aunque los paquetes meta y metasens son excelentes para meta-análisis estándar y análisis de sensibilidad, el paquete metafor eleva las capacidades de R a un nivel superior, ofreciendo una colección exhaustiva de funciones para análisis meta-analíticos avanzados. Es la elección predilecta para investigadores que buscan explorar la heterogeneidad en profundidad y modelar relaciones complejas dentro de sus datos.

metafor permite calcular una amplia variedad de tamaños del efecto, ajustar modelos de efectos fijos, aleatorios y mixtos, y realizar análisis de moderadores y meta-regresión. Además, ofrece una impresionante gama de gráficos meta-analíticos, incluyendo forest plots, funnel plots, radial plots, L'Abbe plots, Baujat plots, bubble plots y GOSH plots. Para datos binarios y de tiempo-persona, metafor implementa métodos especializados como Mantel-Haenszel y Peto. Una de sus características más destacadas es la capacidad de ajustar modelos multivariados/multinivel que explican errores de muestreo no independientes o efectos verdaderos (por ejemplo, debido a múltiples tratamientos, múltiples puntos finales o otras formas de agrupación). Esto lo hace indispensable para manejar estructuras de datos complejas que son comunes en la investigación contemporánea. Incluso, permite realizar meta-análisis de red y meta-análisis que consideran estructuras de correlación conocidas, ampliando significativamente el alcance de los posibles análisis.

What is a three level random effects meta-analysis?
A (random-effects model) three-level meta-analysis is a statistical technique that allows us to include all the available data, accounting for dependencies between the observed effect sizes (e.g., taking into consideration that each study or sample contributes more than one effect size).

Modelos de Meta-Análisis de Efectos Aleatorios de Tres Niveles

Tradicionalmente, un meta-análisis opera con dos niveles de datos: los participantes dentro de un estudio (Nivel 1) y los estudios individuales (Nivel 2), combinando sus tamaños de efecto para obtener una estadística resumida. Sin embargo, en la práctica, los datos de meta-análisis a menudo presentan estructuras de dependencia más complejas. Por ejemplo, un mismo estudio puede contribuir con múltiples tamaños de efecto (ej. múltiples resultados, diferentes momentos de medición), o varias publicaciones pueden compartir la misma muestra de participantes. Ignorar estas dependencias puede llevar a estimaciones de varianza sesgadas y conclusiones erróneas.

Los modelos de meta-análisis de efectos aleatorios de tres niveles son una solución elegante para abordar estas dependencias. Estos modelos añaden un tercer nivel de anidamiento, lo que permite modelar la variabilidad dentro de los clusters de efectos (Nivel 2) y entre los clusters (Nivel 3), además de la variabilidad del muestreo (Nivel 1). La lógica detrás de un modelo de tres niveles es la siguiente:

  • Nivel 1: El efecto observado de un participante se desvía del efecto verdadero del estudio debido al error de muestreo.
  • Nivel 2: Los efectos verdaderos de los estudios se agrupan dentro de un "cluster" (por ejemplo, una misma publicación que reporta varios efectos, o varias publicaciones que usan la misma muestra). Los efectos dentro de este cluster pueden desviarse del efecto promedio del cluster debido a la heterogeneidad dentro del cluster.
  • Nivel 3: Los efectos promedio de estos clusters se desvían del efecto promedio general de la población debido a la heterogeneidad entre clusters.

Matemáticamente, el modelo de efectos aleatorios de tres niveles se expresa como:

θ̂ᵢⱼ = μ + ζ⁽²⁾ᵢⱼ + ζ⁽³⁾ⱼ + ϵᵢⱼ

Donde:

  • θ̂ᵢⱼ es la estimación del tamaño del efecto observado para el efecto i anidado en el cluster j.
  • μ es el efecto promedio general de la población.
  • ζ⁽²⁾ᵢⱼ representa la variabilidad del efecto verdadero i dentro del cluster j (heterogeneidad intracluster).
  • ζ⁽³⁾ⱼ representa la variabilidad del efecto promedio del cluster j alrededor del efecto general μ (heterogeneidad intercluster).
  • ϵᵢⱼ es el error de muestreo asociado con la estimación θ̂ᵢⱼ.

Una ventaja clave de los modelos de tres niveles es que permiten descomponer la variabilidad total observada en sus fuentes, proporcionando estimaciones de para cada nivel. Esto ayuda a los investigadores a comprender dónde se concentra la mayor parte de la heterogeneidad: ¿dentro de los estudios, dentro de los clusters de estudios, o entre los clusters? El paquete metafor es ideal para ajustar estos modelos complejos utilizando procedimientos de máxima verosimilitud restringida (REML), lo que lo convierte en una herramienta indispensable para meta-análisis con estructuras de datos anidadas o dependientes.

¿Qué es R² en Meta-Regresión?

En el contexto de la meta-regresión, la métrica es un indicador crucial que cuantifica la proporción de la heterogeneidad total (la variabilidad entre los tamaños del efecto de los estudios) que puede ser explicada por las variables moderadoras incluidas en el modelo. Si recordamos que la heterogeneidad es la varianza de los "efectos verdaderos" entre estudios (Tau²), entonces R² nos dice qué porcentaje de esa varianza es atribuible a las características de los estudios que hemos incluido como moderadores.

  • Un valor de R² cercano a 1 (o 100%) indica que las variables moderadoras explican casi toda la heterogeneidad observada. Esto sugiere que las diferencias en los tamaños del efecto entre los estudios se deben principalmente a las características que hemos modelado (ej. tipo de intervención, población, diseño del estudio).
  • Por el contrario, un valor de R² de 0 (o 0%) implica que las variables moderadoras no tienen ningún papel en la heterogeneidad observada y, por lo tanto, no son predictoras significativas del tamaño del efecto. En este caso, la heterogeneidad restante se considera residual o inexplicable por los moderadores incluidos.

El R² en meta-regresión es una herramienta poderosa para comprender las fuentes de variabilidad en un meta-análisis. Permite a los investigadores ir más allá de una simple estimación del efecto promedio y comenzar a explorar por qué algunos estudios muestran efectos más grandes o más pequeños que otros, lo que lleva a conocimientos más profundos sobre el fenómeno en cuestión.

Preguntas Frecuentes (FAQ)

¿Necesito ser un experto en programación para usar R en meta-análisis?
No, no es necesario ser un experto. R tiene una curva de aprendizaje, pero los paquetes como meta y metafor están diseñados para ser relativamente intuitivos. Existen numerosos tutoriales, documentación detallada y una comunidad de usuarios muy activa que pueden ayudarte. Con práctica, te familiarizarás rápidamente con los comandos esenciales.
¿Qué hago si mi funnel plot es asimétrico?
Una asimetría en el funnel plot sugiere la presencia de "efectos de estudios pequeños" o sesgo de publicación. Primero, investiga posibles razones, como sesgo de publicación, diferencias en la calidad metodológica de los estudios pequeños, o heterogeneidad real. Luego, considera aplicar métodos de ajuste como Trim-and-Fill o Limit Meta-Analysis, disponibles en los paquetes metasens y metafor, para obtener un efecto combinado ajustado.
¿Cuándo debo usar un modelo de meta-análisis de tres niveles?
Debes considerar un modelo de tres niveles cuando tus datos de meta-análisis exhiben dependencias anidadas. Esto ocurre, por ejemplo, cuando un mismo estudio contribuye con múltiples tamaños de efecto, o cuando varias publicaciones comparten datos de la misma muestra. Ignorar estas dependencias puede llevar a errores en tus inferencias estadísticas.
¿Es el R² en meta-regresión comparable al R² en regresión lineal simple?
Conceptualmente, sí, ambos miden la proporción de varianza explicada. Sin embargo, en meta-regresión, el R² se refiere específicamente a la proporción de la *heterogeneidad* (varianza entre estudios, Tau²) explicada por los moderadores, no a la varianza total de los tamaños del efecto. Es una medida de cuánto las variables moderadoras reducen la variabilidad no explicada entre los estudios.
¿Qué pasa si mis datos no son binarios, sino continuos o de tiempo al evento?
Los paquetes meta y metafor son versátiles y manejan diversos tipos de datos. Para datos continuos, funciones como metacont() en meta o rma() en metafor son apropiadas, permitiendo el uso de diferencias de medias, diferencias de medias estandarizadas, etc. Para datos de tiempo al evento, meta tiene metagen() o metafor puede modelar directamente los log-hazard ratios. La documentación de cada paquete es la mejor fuente para detalles específicos.

En resumen, R es una plataforma indispensable para el meta-análisis, ofreciendo un ecosistema de paquetes que cubren desde los análisis más básicos hasta los modelos más complejos y sofisticados. La capacidad de R para manejar diversos tipos de datos, evaluar la heterogeneidad, detectar sesgos y realizar análisis de sensibilidad, lo convierte en una herramienta potente para cualquier investigador que busque sintetizar evidencia de manera rigurosa y transparente. Dominar R para el meta-análisis no solo te permitirá llevar a cabo investigaciones de alta calidad, sino que también te abrirá las puertas a una comunidad vibrante y a las metodologías más avanzadas en el campo de la síntesis de evidencia.

Si quieres conocer otros artículos parecidos a Meta-Análisis en R: Desbloquea el Poder de tus Datos puedes visitar la categoría Metáforas.

Subir