Kicarussays

(R) 메타분석 Forest Plot 실습 (metafor 패키지 코드 실습) 본문

Statistics (R)

(R) 메타분석 Forest Plot 실습 (metafor 패키지 코드 실습)

Kicarus 2022. 3. 8. 14:00

metafor 패키지를 활용하여 Forest Plot을 그려봅시다.

 

Forest Plot은 여러 독립적인 연구들의 결과와, 그 연구들을 종합한 전체 결과를 그래프로 표현한 것입니다. 메타분석 결과를 요약하여 보여주는 데에 많이 활용됩니다.

 

R로 메타분석을 수행하는 포스팅은 여기서 확인하실 수 있습니다.

 

참고자료: https://wviechtb.github.io/metafor/reference/forest.default.html

 

Forest Plots (Default Method) — forest.default

Function to create forest plots for a given set of data.

wviechtb.github.io

 

 


 

 

데이터를 불러오고 메타분석을 수행해봅시다.

library(metafor)
dat <- dat.bcg
dat <- escalc(measure="OR", ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat,
              slab=paste(author, year, sep=", "))
res <- rma(yi, vi, data=dat)

 

res에 메타분석 결과가 잘 들어온 것을 확인할 수 있습니다.

metafor 패키지에서 forest plot을 그리는 함수는 "forest" 입니다.

 

 

단순히 forest 함수를 실행해보겠습니다.

forest(res)

벌써 그럴듯한 그림이 나왔습니다.

그런데 글자 크기도 조절하고 싶고, 밑에 스케일도 조정하고 싶고, 기준선 위치도 바꾸고 싶고, 제목도 추가하고 싶고 등등 커스텀할 부분들이 많을 테니, 하나씩 살펴봅시다.

 

1. 좌측 독립 연구 제목 추가

forest(res, header="Author")

header 변수에 할당한 문자열(위의 예시에서는 Author)이 좌측 상단에 나오고, 우측 상단에는 Log[OR] [95% CI] 라는 항목명이 붙습니다.

 

2. 글자 크기 조정

forest(res, header="Author", cex=1.2, cex.axis=1.2, cex.lab=1)

cex는 전체 글자 크기를, cex.axis는 중앙 하단의 scale의 숫자 크기를, cex.lab은 중앙 하단의 텍스트(Log Odds Ratio) 부분의 글자 크기를 조정합니다.

훨씬 보기 좋은 모양이 됐습니다!

 

3. 스케일 부분 조정

forest(res, header="Author", cex=1.2, cex.axis=1.2, cex.lab=1, 
       alim=c(-5, 5), xlim=c(-10, 10), steps=11, xlab='(Log) OR')

alim은 중앙 하단 스케일의 범위를, xlim은 전체 Forest Plot의 가로 범위를, step은 중앙 하단 scale의 눈금 개수를, xlab은 중앙 하단 scale 부분의 문구를 결정합니다.

 

4. 기준선 변경

forest(res, header="Author", cex=1.2, cex.axis=1.2, cex.lab=1, 
       alim=c(-5, 5), xlim=c(-10, 10), steps=11, xlab='(Log) OR',
       refline=1)

refline은 기준선의 위치를 결정합니다.

 

5. 좌측 Study 이름 변경

forest(res, header="Author", cex=1.2, cex.axis=1.2, cex.lab=1, 
       alim=c(-5, 5), xlim=c(-10, 10), steps=11, xlab='(Log) OR',
       refline=1, slab=as.character(seq(13)))

res 변수를 통해 왼쪽에 이미 정해져 있는 텍스트를 변경할 수 있습니다.

본 예시에서는 seq함수를 활용하여 1부터 13까지 순서대로 숫자를 할당했습니다. 

 

6. Log scale에서 기본 scale로 변경

forest(res, header="Author", cex=1.2, cex.axis=1.2, cex.lab=1, 
       alim=c(-5, 5), xlim=c(-10, 10), steps=11, xlab='(Log) OR',
       refline=1, slab=as.character(seq(13)), transf=exp)

metafor는 기본적으로 log scale의 결과를 산출합니다. transf 변수에 exp를 할당하여 기본 scale 결과를 보일 수 있습니다. 여기서 header 부분에서 우측 상단에 쓰여져 있단 Log[OR] 대신 Odds Ratio로 문구가 자동으로 변경된 것을 확인할 수 있습니다. xlab, alim, xlim 등의 변수들은 적절히 바꿔주어야겠지요.

 


 

여기까지 metafor 패키지에서 forest plot 그리는 방법을 살펴보았습니다.

이정도 다루게 되면 논문에 바로 올릴 수 있는 수준의 Figure를 만들 수 있을 것 같습니다.

 

감사합니다!

 

Comments