본문 바로가기
반치용/문제해결(trouble shooting)

[R] R을 이용한 상대위험도 구하기 (relative risk,risk ratio) with epitab in r

by  반  2020. 1. 6.

아마 이 글을 찾아 오신 분들은 epitab에서 나오는 결과가 이상하거나, 어색해서일 가능성이 높을 것이다.

상대 위험도에 대한 상세한 설명은 pass 하겠다.

  disease 1 disease 2
Case A B
Control C D

contingency table의 형태가 위와 같고,

Relative risk 의 정의가 

A/(A+B)
---------
C/(C+D)

일 때, epitab 패키지를 이용해 relative risk(risk ratio)를 구하는 입력 방법은 다음과 같다.

library(epitab)

# A, B, C, D 값 구하는 부분은 원하시는대로...

# contingency table 입력, epitab이 원하는 형태로..
# 위의 contingency table 기준임
tab<- matrix(c(D,B,C,A),nrow=2,ncol=2)

# rr 연산
result_epitools<- epitab(tab,method="riskratio", pvalue = ("chi2"))

# 통계값 확인
result_epitools

# 추출 편의를 위한 dataframe화
result_rr_df<- as.data.frame(result_epitools)

# 통계값 추출 예시
lower <- result_rr_df$tab.lower[2]
upper <- result_rr_df$tab.upper[2]
rr <- result_rr_df$tab.riskratio[2]
pval <- result_rr_df$tab.p.value[2]

이유를 확인하려면, epitab의 package 문서에서 epitab 함수의 x값이 어떤 형태로 입력되어야 하는지를 확인하고, (epitab 함수 결과를 기준으로 좌 상단에 reference/reference 즉, D이 들어가야 한다)

댓글