# load data from google spreadsheet
library(RCurl)
library(bitops)
library(metafor)
library(Formula)
my_data <- read.csv("~/Desktop/Dropbox/DrSc UABC/Colaborations/Juan Quispe/Basilar Artery/basilarArteryDataCollector/R_meta_analysis_example_data - Sheet1.csv", dec=",")
my_data
my_data <- escalc(n1i = n_controls, n2i = n_patients, m1i = mean_controls, m2i = mean_patients,
sd1i = sd_controls, sd2i = sd_patients, data = my_data, measure = "SMD",
append = TRUE)
ma_model_1 <- rma(yi, vi, data = my_data)
summary(ma_model_1)
Random-Effects Model (k = 12; tau^2 estimator: REML)
logLik deviance AIC BIC AICc
-24.4650 48.9300 52.9300 53.7258 54.4300
tau^2 (estimated amount of total heterogeneity): 4.8657 (SE = 2.1341)
tau (square root of estimated tau^2 value): 2.2058
I^2 (total heterogeneity / total variability): 98.76%
H^2 (total variability / sampling variability): 80.64
Test for Heterogeneity:
Q(df = 11) = 604.6327, p-val < .0001
Model Results:
estimate se zval pval ci.lb ci.ub
1.4446 0.6459 2.2366 0.0253 0.1787 2.7105 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
A summary effect size of **1.4446 represents de differences between patients and controls. With it being statistically significant with p = 0.0253.
forest(ma_model_1, slab = paste(my_data$study, as.character(my_data$year), sep = ", "))
Using databases available in the R package ‘metaviz’.
metaviz::mozart
Variation I
library(metaviz)
viz_forest(x = mozart[1:10, c("d", "se")], study_labels = mozart[1:10, c("study_name")],
summary_label = "Summary effect", xlab = "Cohen d")
Variation II
viz_forest(x = mozart[1:10, c("d", "se")], study_labels = mozart[1:10, c("study_name")],
summary_label = "Summary effect", xlab = "Cohen d", variant = "thick", method = "FE")
Subgroup Analysis
viz_forest(x = mozart[1:10, c("d", "se")],
group = mozart[1:10, "rr_lab"],
study_labels = mozart[1:10, "study_name"],
summary_label = c("Summary (rr_lab = no)", "Summary (rr_lab = yes)"),
xlab = "Cohen d",
col = "Darkblue")
#variant = "thick")
Tables and Subgroups in one Visualization
study_table <- data.frame(
name = exrehab[, "study_name"],
eventsT = paste(exrehab$ai, "/", exrehab$ai + exrehab$bi, sep = ""),
eventsC = paste(exrehab$ci, "/", exrehab$ci + exrehab$di, sep = ""))
summary_table <- data.frame(
name = "Summary",
eventsT = paste(sum(exrehab$ai), "/", sum(exrehab$ai + exrehab$bi), sep = ""),
eventsC = paste(sum(exrehab$ci), "/", sum(exrehab$ci + exrehab$di), sep = ""))
viz_forest(x = exrehab[, c("logrr", "logrr_se")], variant = "classic",
col = "Greys", xlab = "logRR", annotate_CI = T,
study_table = study_table,
summary_table = summary_table,
table_headers = c("ID", "Events (T)", "Events (C)"))