メタアナリシスのフォレストプロットの書き方の解説
R の metafor パッケージを使う方法
統合値の計算
metaforパッケージを使う。
最初一回だけインストールする。
install.packages("metafor")
使用するデータは以下の通り。
a <- c(3,7,5,102,28,4,98,60,25,138,64,45,9,57,25,65,17)
n1 <- c(38,114,69,1533,355,59,945,632,278,1916,873,263,291,858,154,1195,298)
c <- c(3,14,11,127,27,6,152,48,37,188,52,47,16,45,31,62,34)
n0 <- c(39,116,93,1520,365,52,939,471,282,1921,583,266,293,883,147,1200,309)
dat <- data.frame(a,n1,c,n0)
metaforパッケージを呼び出す。
escalc() で個々の研究の推定値 estimate; yi と分散 variance; vi を計算する。
measure=で指標を指定。
今回のデータはオッズ比。
rma.uni() で統合オッズ比を計算する。
統合する方法は制限付き最尤推定量(REML)。
REML については、以下を参照。
R のスクリプトは以下の通り。
library(metafor)
dat.escalc <- escalc(measure="OR", ai=a, n1i=n1, ci=c, n2i=n0, data=dat)
res.reml <- rma.uni(yi, vi, method="REML", data=dat.escalc)
フォレストプロットの書き方
R スクリプトは以下のようにとても単純だ。
forest(res.reml)
デフォルトはこうなる。
真数の表示で対数目盛りにする方法
X軸(横軸)の値を対数から真数に変更するには atransf=exp と指定する。
atransf=expは、数値は真数だが、目盛りは対数とする指定。
at=でX軸の目盛りのラベルを規定する。
0.05, 0.25, 1, 4, 20の5つの値を表示するように指示している。
0.05, 0.25, 1, 4, 20の対数の位置に、0.05, 0.25, 1, 4, 20を表示するという指示だ。
forest(res.reml, atransf=exp, at=log(c(.05,.25,1,4,20)))
グラフを見てみると、数値は真数のオッズ比0.05, 0.25, 1, 4, 20だが、間隔は対数になっている。
0.05と20、0.25と4がそれぞれ1から同じ距離だ。
目盛り(距離)は対数で、目盛りに書いてある数値は真数ということだ。
推定値の順番に並べ替える方法
点推定値の順番に並べるには、order=”obs” の指定を追加する。
obsはobserved effect size(観察された効果の大きさ)の略語。
forest(res.reml, atransf=exp, at=log(c(.05,.25,1,4,20)), order="obs")
そうすると、点推定値が小さい(左)研究から大きい(右)研究の順に並び変わった。
分散が小さい順に並べる方法
分散が小さい研究から大きい研究の順番に並びかける 指定はorder=”prec”。
precはprecision(精度)の略と思われる。
forest(res.reml, atransf=exp, at=log(c(.05,.25,1,4,20)), order="prec")
すると、このように描画される。
まとめ
R の metafor パッケージ中の関数 forest() を使って、メタアナリシスのフォレストプロットを書く方法を解説した。
参考になれば。
コメント