Restricted Cubic Spline curve
odds ratio 나 hazard ratio 를 3차 곡선으로 표현할 수 있는 방법입니다.
spline regression 등에 대한 설명은 그냥 넘어가겠습니다.
* 추가로 로지스틱 회귀분석에 대하여 궁금하시다면, https://bpapa.tistory.com/29 이 포스팅을 참고하여주세요.
DATA 는 MASS 패키지에 포함되어있는 Pima.te 데이터셋을 사용하겠습니다.
BMI 에 따른 당뇨의 Odds ratio (OR) 를 구하여 plot 으로 나타나겠습니다.
오늘 최종적으로 그릴 plot 은 아래와 같습니다.
bmi 30 을 기준 (reference) 로 하여, BMI 의 변화에 따른 OR 의 변화를 보여주는 것입니다.
위의 최종 그래프를 그리전에...
우선은 아래의 그래프부터 그릴 수 있어야겠죠?
위 그래프와의 차이는 reference value 의 설정 유무입니다.
그럼 시작해볼까요!
우선은 rms package 를 불러주셔야합니다.
바로 위의 그래프를 그리기 위한 코드는 다음과 같습니다.
data(Pima.te)
library(rms)
d<-datadist(Pima.te)
options(datadist="d")
sl <- lrm(type~rcs(bmi,4), data=Pima.te)
ggplot(Predict(sl, bmi, ref.zero = F, fun=exp))+
ggtitle("odds ratio plot")+
ylab(" OR for bmi")+
theme_bw()
이 기본 그래프에서 위의 최종 그래프처럼 reference value 를 지정하기 위해서는
다음 코드의 6번째 줄에 있는 코드(d/limits/bmi[2] <- 30, LaTex 옵션때문에 $ 표시를 / 로 대체하였습니다)를 추가하면 됩니다.
data(Pima.te)
library(rms)
d<-datadist(Pima.te)
options(datadist="d")
d$limits$bmi[2] <- 30
sl <- lrm(type~rcs(bmi,4), data=Pima.te)
ggplot(Predict(sl, bmi, ref.zero = T, fun=exp))+
ggtitle("Relative odds plot")+
ylab(" OR for bmi=x : bmi=30")+
theme_bw()
즉, 이 코드를 입력하시면, 제일 처음의 reference value 가 설정된 figure 가 그려지게 됩니다.
Restricted cubic spline curve 라고 하여 뭔가 복잡할 거라 생각하셨겠지만, 엄청 간단하죠?^^
도움이 되셨다면, '공감' 버튼 부탁드립니다^^