6 votos

* MAd GUI User friendly graphical user interface package to conduct meta-analysis in R (Free).

Me gustaría llevar a cabo un multivariante meta-análisis (de la red o meta-análisis) para investigar el efecto de dos factores (a, B, 1 y 2). Para cada combinación de los dos factores tengo una serie de estudios que los resultados del informe que describa la diferencia en el tamaño del efecto, así como la varianza de los mismos (A1 vs B1, A1 vs B2, A2 vs B1, A2 vs B2). Cada tamaño del efecto proviene de un estudio separado. Me gustaría investigar los efectos principales, así como la interacción de dos factores. Aquí me ofrecen un ejemplo ficticio de los datos en R que he creado inicialmente para probar el gemtc paquete:

set.seed(100)
treat1 <- c(rep("A1", 10),rep("A1", 8),rep("A2", 15),rep("A2", 5))
treat2 <- c(rep("B1", 10),rep("B2", 8),rep("B1", 15),rep("B2", 5))
TE <- c(rnorm(10,5,1),rnorm(8,2,1),rnorm(15,3,1),rnorm(5,1,1))
seTE <- c(rnorm(10,1,1),rnorm(8,2,1),rnorm(15,0.5,1),rnorm(5,0.2,1))
studlab <- paste(rep("study_", 38), as.character(c(1:38)), sep="")
my_data <- data.frame(treat1, treat2, TE, seTE, studlab)
my_data

Yo estaría agradecido por un puntero a un adecuado paquete de R (gemtc, netmeta, mvmeta ?) que podría manejar esa información y cómo el modelo que no sólo los efectos principales, pero también de las interacciones de mi factores. Algunos consejos sobre cómo empezar sería fantástico...

8voto

Derek Swingley Puntos 3851

Dado que no hay una sola estimación del tamaño del efecto de cada estudio (ver comentarios anteriores), el análisis puede llevarse a cabo con regularidad meta-métodos de regresión. Usted puede llevar a cabo un análisis con el metafor paquete. El "truco" es el código de las variables que indican lo que los tratamientos han sido comparados dentro de un estudio en particular:

library(metafor)

my_data$A1 <- ifelse(treat1 == "A1", 1, 0)
my_data$A2 <- ifelse(treat1 == "A2", 1, 0)
my_data$B1 <- ifelse(treat2 == "B1", -1, 0)
my_data$B2 <- ifelse(treat2 == "B2", -1, 0)

res <- rma(TE, sei=seTE, mods = ~ A1 + A2 + B1 - 1, data=my_data)
res

rendimientos:

Mixed-Effects Model (k = 38; tau^2 estimator: REML)

tau^2 (estimated amount of residual heterogeneity):     0.2898 (SE = 0.1578)
tau (square root of estimated tau^2 value):             0.5384
I^2 (residual heterogeneity / unaccounted variability): 59.02%
H^2 (unaccounted variability / sampling variability):   2.44

Test for Residual Heterogeneity: 
QE(df = 35) = 93.5215, p-val < .0001

Test of Moderators (coefficient(s) 1,2,3): 
QM(df = 3) = 435.5223, p-val < .0001

Model Results:

     estimate      se     zval    pval    ci.lb    ci.ub     
A1    2.2446  0.2837   7.9123  <.0001   1.6886   2.8006  ***
A2    0.9060  0.3387   2.6751  0.0075   0.2422   1.5699   **
B1   -2.2983  0.3467  -6.6294  <.0001  -2.9778  -1.6188  ***

---
Signif. codes:  0 ‘***' 0.001 ‘**' 0.01 ‘*' 0.05 ‘.' 0.1 ‘ ' 1 

Dado que la variable B2 ha sido dejado de lado, esto se convierte en la "referencia" de tratamiento. Así, el coeficiente de A1 es el promedio estimado de efecto al comparar el tratamiento A1 contra B2. El coeficiente de A2 es el promedio estimado de efecto al comparar el tratamiento A2 contra B2. Y el coeficiente de B1 es el promedio estimado de efecto al comparar el tratamiento B1 contra B2.

La red que se analiza aquí se parece a esto:

    A1   A2
    |\   /|
    | \ / |
    |  X  |
    | / \ |
    |/   \|
    B1   B2

Así, la comparación entre B1 y B2 se basa puramente en la evidencia indirecta.

Hay 3 más comparaciones que se pueden obtener aquí, además de los de arriba (es decir, A1 vs A2, A1 vs B1y A2 vs B1). Usted puede obtener mediante el cambio de la "referencia" de tratamiento.

La suposición aquí es que la cantidad de la heterogeneidad es la misma independientemente de la comparación. Esto puede o no puede ser cierto.

Un artículo que describe este tipo de análisis es:

Salanti et al. (2008). Evaluación de las redes de ensayos aleatorios. Métodos estadísticos en la Investigación Médica, 17, 279-301.

Edit: Para probar si el efecto del primer factor (A & B) depende del segundo factor (1 & 2), es decir, si (A1 vs B1) = (A2 vs B2) o no, en primer lugar observamos que:

(A1-B2) - (A2-B2) - (B1-B2) = (A1-A2) - (B1-B2) 
                            = (A1-B1) - (A2-B2).

Por lo tanto, sólo tiene que probar si b1 - b2 - b3 = 0. Usted puede hacer esto con:

predict(res, newmods=c(1,-1,-1))

o instalación/carga de la multcomp paquete y el uso de:

summary(glht(res1, linfct=rbind(c(1,-1,-1))), test=adjusted("none"))

que los rendimientos:

         Simultaneous Tests for General Linear Hypotheses

Linear Hypotheses:
       Estimate Std. Error z value Pr(>|z|)    
1 == 0   3.6369     0.5779   6.293 3.12e-10 ***
---
Signif. codes:  0 ‘***' 0.001 ‘**' 0.01 ‘*' 0.05 ‘.' 0.1 ‘ ' 1
(Adjusted p values reported -- none method)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X