Metaanaliza w R przy użyciu pakietu metafor


10

Jak powinienem złożyć składnię rmafunkcji z pakietu metafor , aby uzyskać wyniki w następującym prawdziwym przykładzie małej metaanalizy? (statystyczny efekt SMD z efektem losowym)

study,      mean1, sd1,    n1,  mean2,  sd2,   n2

Foo2000,    0.78,  0.05,   20,  0.82,   0.07,  25    
Sun2003,    0.74,  0.08,   30,  0.72,   0.05,  19    
Pric2005,   0.75,  0.12,   20,  0.74,   0.09,  29    
Rota2008,   0.62,  0.05,   24,  0.66,   0.03,  24    
Pete2008,   0.68,  0.03,   10,  0.68,   0.02,  10

Odpowiedzi:


10

Utwórz właściwy data.frame:

df <- structure(list(study = structure(c(1L, 5L, 3L, 4L, 2L), .Label = c("Foo2000", 
"Pete2008", "Pric2005", "Rota2008", "Sun2003"), class = "factor"), 
    mean1 = c(0.78, 0.74, 0.75, 0.62, 0.68), sd1 = c(0.05, 0.08, 
    0.12, 0.05, 0.03), n1 = c(20L, 30L, 20L, 24L, 10L), mean2 = c(0.82, 
    0.72, 0.74, 0.66, 0.68), sd2 = c(0.07, 0.05, 0.09, 0.03, 
    0.02), n2 = c(25L, 19L, 29L, 24L, 10L)), .Names = c("study", 
"mean1", "sd1", "n1", "mean2", "sd2", "n2"), class = "data.frame", row.names = c(NA, 
-5L))

Uruchom funkcję rma:

library(metafor)
rma(measure = "SMD", m1i = mean1, m2i = mean2, 
    sd1i = sd1, sd2i = sd2, n1i = n1, n2i = n2, 
    method = "REML", data = df)

Należy pamiętać, że rmazakłada (m1i-m2i). Powoduje to następującą metaanalizę modelu efektów losowych o jednym wariancie:

> rma(measure = "SMD", m1i = mean1, m2i = mean2, 
+     sd1i = sd1, sd2i = sd2, n1i = n1, n2i = n2, 
+     method = "REML", data = df)

Random-Effects Model (k = 5; tau^2 estimator: REML)

tau^2 (estimate of total amount of heterogeneity): 0.1951 (SE = 0.2127)
tau (sqrt of the estimate of total heterogeneity): 0.4416
I^2 (% of total variability due to heterogeneity): 65.61%
H^2 (total variability / within-study variance):   2.91

Test for Heterogeneity: 
Q(df = 4) = 11.8763, p-val = 0.0183

Model Results:

estimate       se     zval     pval    ci.lb    ci.ub          
 -0.2513   0.2456  -1.0233   0.3061  -0.7326   0.2300          

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

Możesz zmienić oszacowanie method, np. method = "DL"(Ale trzymałbym się REML).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.