Rでメタアナリシス

MikuHatsune2012-10-31

メタアナリシスの講義を受けたのでrmetaを使ってメタアナリシスがどんなんかをひたすらプロットしていく。
 

install.packages("rmeta")
library(rmeta)
data(catheter)

このデータは銀加工かなんかをされたカテーテルの細菌感染具合を調べたものらしい。
加工カテーテルと標準カテーテルを比較して、コロニー形成と、血流内まで細菌が到達してしまったものを検討したいらしい。
Name: 論文の著者
n.trt: 加工カテーテルの数
n.ctrl: 標準カテーテルの数
col.trt: 加工カテーテルのうち、細菌コロニーができてしまった数
col.ctrl: 標準カテーテルのうち、細菌コロニーができてしまった数
inf.trt: 加工カテーテルのうち、血液感染してしまった数。
inf.ctrl: 標準カテーテルのうち、血液感染してしまった数。

catheter
         Name n.trt n.ctrl col.trt col.ctrl inf.trt inf.ctrl
1      Ciresi   124    127      15       21      13       14
2      George    44     35      10       25       1        3
3      Hannan    68     60      22       22       5        7
4       Heard   151    157      60       82       5        6
5  vanHeerden    28     26       4       10      NA       NA
6        Maki   208    195      28       47       2        9
7     Bach(a)    14     12       0        4      NA       NA
8      Ramsay   199    189      45       63       1        4
9      Appavu    12      7       1        1      NA       NA
10   Trazzera   123     99      16       24       4        5
11    Collins    98    139       2       25       1        4
12    Bach(b)   116    117       2       16       0        3
13 Tennenberg   137    145       8       32       5        9
14  Pemberton    32     40      NA       NA       2        3
15     Logghe   338    342      NA       NA      17       15
a <- meta.MH(n.trt, n.ctrl, col.trt, col.ctrl, data=catheter, names=Name, subset=c(13,6,5,3,7,12,4,11,1,8,10,2))
b <- meta.DSL(n.trt, n.ctrl, col.trt, col.ctrl, data=catheter, names=Name,subset=c(13,6,5,3,7,12,4,11,1,8,10,2))
par(mfrow=c(1, 2))
plot(a, main="meta.MH")
plot(b, main="meta.DSL")


 

data(cochrane)
steroid <- meta.MH(n.trt, n.ctrl, ev.trt, ev.ctrl, names=name, data=cochrane)
plot(steroid, col=meta.colors("RoyalBlue"))

このデータは未熟児出産時のステロイド投与が、新生児死亡低下に効果があるかを調べたものらしい。
name: Identifier for the study
ev.trt: Number of deaths in the treated group
n.trt: Number in the treated group
ev.ctrl: Number of deaths in the control group
n.ctrl: Number in the control group

cochrane
          name ev.trt n.trt ev.ctrl n.ctrl
1     Auckland     36   532      60    538
2        Block      1    69       5     61
3        Doran      4    81      11     63
4        Gamsu     14   131      20    137
5     Morrison      3    67       7     59
6 Papageorgiou      1    71       7     75
7      Tauesch      8    56      10     71
data(cochrane)
steroid<-cummeta(n.trt,n.ctrl,ev.trt,ev.ctrl,names=name,data=cochrane,statistic="RR",method="meta.MH")
plot(steroid)
summary(steroid)


 

data(catheter)
b <- meta.DSL(n.trt, n.ctrl, col.trt, col.ctrl, data=catheter, names=Name, subset=c(13,6,5,3,12,4,11,1,8,10,2))
d <- cummeta.summaries(b$logs, b$selogs, names=b$names, method="random", logscale=TRUE)
plot(d,summary.conf=TRUE)
summary(d)


 

data(cochrane)
steroid <- meta.MH(n.trt, n.ctrl, ev.trt, ev.ctrl,
names=name, data=cochrane)
tabletext<-cbind(c("","Study",steroid$names,NA,"Summary"),
c("Deaths","(steroid)",cochrane$ev.trt,NA,NA),
c("Deaths","(placebo)", cochrane$ev.ctrl, NA,NA),
c("","OR",format(exp(steroid$logOR),digits=2),NA,format(exp(steroid$logMH),digits=2))
)
m<- c(NA,NA,steroid$logOR,NA,steroid$logMH)
l<- m-c(NA,NA,steroid$selogOR,NA,steroid$selogMH)*2
u<- m+c(NA,NA,steroid$selogOR,NA,steroid$selogMH)*2
forestplot(tabletext,m,l,u,zero=0,is.summary=c(TRUE,TRUE,rep(FALSE,8),TRUE), clip=c(log(0.1),log(2.5)), xlog=TRUE, col=meta.colors(box="royalblue",line="darkblue", summary="royalblue"))
forestplot(tabletext,m,l,u,zero=0,is.summary=c(TRUE,TRUE,rep(FALSE,8),TRUE), clip=c(log(0.1),log(2.5)), xlog=TRUE, boxsize=0.75, col=meta.colors(box="royalblue",line="darkblue", summary="royalblue"))


 

data(catheter)
a <- meta.MH(n.trt, n.ctrl, col.trt, col.ctrl, data=catheter, names=Name, subset=c(13,6,5,3,7,12,4,11,1,8,10,2))
par(mfrow=c(1, 3))
funnelplot(a$logOR, a$selogOR)
funnelplot(a$logOR, a$selogOR, plot.conf=TRUE, summ=a$logMH, mirror=TRUE)
funnelplot(a, plot.conf=TRUE)


 

data(cochrane)
steroid <- meta.MH(n.trt, n.ctrl, ev.trt, ev.ctrl, names=name, data=cochrane)
par(mfrow=c(2, 2))
## All black, for better photocopying
plot(steroid, col=meta.colors("black"))
## distinguish the summary
plot(steroid,colors=meta.colors(summary="forestgreen"))
data(catheter)
e <- meta.DSL(n.trt, n.ctrl, inf.trt, inf.ctrl, data=catheter, names=Name, subset=c(13,6,3,12,4,11,1,14,8,10,2))
## Truly awful colour scheme to illustrate flexibility
plot(e, colors=meta.colors(summary="green",lines=c("purple","skyblue"), box="red",zero="yellow",text=palette(),background="tomato", axes="lightgreen"))
## Dark blue background popular for presentations.
plot(e, colors=meta.colors(summary="white",lines="#FFFFF0", box="#FFFF50",zero="grey90",text="white",background="darkblue", axes="grey90"))


 

data(catheter)
b <- meta.DSL(n.trt, n.ctrl, col.trt, col.ctrl, data=catheter, names=Name, subset=c(13,6,5,3,7,12,4,11,1,8,10,2))
b
summary(b)


 

data(catheter)
a <- meta.MH(n.trt, n.ctrl, col.trt, col.ctrl, data=catheter, names=Name, subset=c(13,6,5,3,7,12,4,11,1,8,10,2))
a
summary(a)
par(mfrow=c(1, 2))
plot(a)
d <- meta.MH(n.trt, n.ctrl, inf.trt, inf.ctrl, data=catheter, names=Name, subset=c(13,6,3,12,4,11,1,14,8,10,2))
d
summary(d)
## plot with par("fg")
plot(d, colors=meta.colors(NULL))


data(catheter)
a <- meta.MH(n.trt, n.ctrl, col.trt, col.ctrl, data=catheter, names=Name, subset=c(13,6,5,3,7,12,4,11,1,8,10,2))
par(mfrow=c(1, 2))
metaplot(a$logOR, a$selogOR, nn=a$selogOR^-2, a$names, summn=a$logMH, sumse=a$selogMH, sumnn=a$selogMH^-2, logeffect=TRUE)
metaplot(a$logOR, a$selogOR, nn=a$selogOR^-2, a$names, summn=a$logMH, sumse=a$selogMH, sumnn=a$selogMH^-2, logeffect=TRUE,logticks=FALSE)