論文のコーディング
library(metafor)
library(MAc)
## Study Coding
# Ne = sample size for treated Nc = sample size for untreated
Study Variable1 Variable2 Ne Nc g
01 XXX YYY 12 12 1.02
02 XXX YYY 15 18 0.98
03 XXX YYY 32 29 0.66
## Pre-Post DesignでMeta Analysis (Cohen, 1988)
# 効果量gはpooled standard deviation (SD ^ 2 = [SD1 + SD2] / 2) で計算
# sample sizeで調整する方法もある
# Morris, S. B., & DeShon, R. P. (2002). Combining effect size estimates in meta-analysis with repeated measures and independent group designs. <em>Psychological Methods</em>, <em>7</em>, 105-125.)
メタ分析の実行
## Effect SizeのSampling Variances (SV) を計算
df <- (dat$Ne + dat$Nc) - 2
j <- 1 - (3 / (4 * df - 1))
g <- j * dat$g
ES <- g
SV <- (((dat$Ne + dat$Nc) / (dat$Ne * dat$Nc)) + ((dat$ES * dat$ES) / (2 * (dat$Ne + dat$Nc))))
## Random-Effect Model
RE.res <- rma(ES, SV, method = "REML", data = dat, slab = paste(dat$Study))
## Mixed-Effect Model
# modsは調整変数
ME.res <- rma.mv(ES, SV, method = "REML", data = dat, mods =~ dat$Variable1 + dat$Variable2, slab = paste(dat$Study))
フォレストマップによる結果の可視化
## Forestmapによるプロット
forest(
RE.res,
slab = paste(dat$Study),
xlim = c(-10, 7),
ylim = c(-1, 25),
xlab = "全体効果量 (Hedges g)",
mlab = "",
ilab = cbind(dat$Ne, dat$Nc), ilab.xpos = c(-5, -2), ilab.pos = 2,
pch = 18,
cex = 0.9,
order = order(dat$認知機能),
row = c(2 : 4, 9 : 12, 17 : 21)
)
text(-10, 24, "多読による語彙学習", pos = 4)
text(c(-5.7, -2.7), 24, c("実験群", "統制群"))
text(-4.3, 25, "テスト結果")
text(7, 24, "各研究の効果量 [95%信頼区間]", pos = 2)
text(-10, -1, pos = 4, cex = 0.75,
bquote(paste("ランダム効果モデル (Q = ",
.(formatC(RE.res$QE, digits = 2, format = "f")), ", df = ", .(RE.res$k - RE.res$p),
", p = ", .(formatC(RE.res$QEp, digits = 2, format = "f")), "; ", I^2, " = ",
.(formatC(RE.res$I2, digits = 1, format = "f")), "%)")))
text(-10, c(22, 13, 5), pos = 4,
c("認知機能(英文読解力)が低い場合", "認知機能(英文読解力)が中程度の場合", "認知機能(英文読解力)が高い場合"), font = 4)

調整変数分析
# Moderator Analysis with Random-Effect Model
Var1 <- macat(dat$g, SV, mod = dat$Variable1, data = dat, method = "random")
Var2 <- macat(dat$g, SV, mod = dat$Variable2, data = dat, method = "random")
print(Var1)
print(Var2)
出版バイアス分析とファンネルプロット
# Publication Bias Analysis with Funnel Plot
funnel(RE.res, digits = 2, addtau2 = F, type = "rstandard") # バイアスがある場合はTrim-Fillの結果を図示
regtest(RE.res, model = "lm") # 分布の対称性の検定
trimfill(RE.res, side = "right", estimator = "R0") # Trim-Fill MethodによるMissing Studyの推定
trimfill(RE.res, side = "left", estimator = "R0")
trimfill(RE.res, side = NULL, estimator = "L0", maxiter = 1000)
trimfill(RE.res, side = NULL, estimator = "R0", maxiter = 1000)
fsn(y = RE.res$yi, v = RE.res$vi) # Fail-Safe N
