Survival Manual for Statistical Analysis
(통계분석 생존지침서)


by Byung Gil Choi, MD, PhD.
R Recursive partitioning procedure (tree classification algorithm, regression trees model)
[R]+package
SPSS를 이용하는 통계방법이 아니므로 프로그램 [R]과 해당 package가 설치되어 있어야 한다.             Link [R 소개] 참조
개념
하나의 군을 2개 이상으로 분류(classification)할 수 있는 cutting point 선정
예제
VEGF(Vascular endothelial growth factor) 값과 Lung ca.의 survival status를 알고 있다. 이때 VEGF의 값을 어떤 cutting point에서 나누어 여러개의 군으로 만드는 것이 가장 효율적인가를 알아보고자 한다.

* [Maximal chi-square method] 유사한 개념이나, 생존기간을 모르는 경우라도 이용이 가능하며, 보다 세부적인 군 분류가 가능하다.
그러므로 [Maximal chi-square method]와 함께 사용할 경우 통계적으로 보다 효율적인 군 분류가 가능하다.

DownLoad recursive_partitioning_procedure.xls         DownLoad rpart.csv
방법
1. Data 입력

[MS-Excel]에 다음과 같이 data를 정리한다.

VEGF (cutting point를 구하고자 하는 변수)

status (Survival Status, Event = 0, Censored = 1)

VEGF의 값에 따라 군을 분류하고자 하는데, 과연 어떤 값을 기준으로 cutting point를 잡는지 알아보고자 하는 경우.
즉, ?? ~ ?? 까지는 살고, ??~?? 사이는 죽는지, 어떤 값을 취할 것인지 알고자 한다.

* Missing data가 있으면 안됨.
* 변수의 이름에는 띄어쓰기, 기호 등이 포함되어서는 안됨.

2. Data 전환

[다른 이름으로 저장]

파일 형식]에서 [CSV (쉼표로 분리) (*.csv)] 선택

[파일 이름]에 원하는 파일 이름을 입력하고 [저장]-[확인]-[예]

저장된 파일(rpart.csv)을 원하는 폴더에 저장한다.

가능하면 폴더의 경로가 짧은 것을 이용하는 것이 다음 과정을 시행하는데 용이하다.

여기서는 C 드라이브 data 폴더에 넣었다.
3. Script 작성

아래의 항목에 data관련 자료를 입력 후, [-Make Script-]를 누르면, 새로운 창이 나타남.

* 데이터 작성시 이용한 변수 이름을 그대로 사용하여야 하며 대소문자, 오타에 각별히 유의할 것

설명 입력 유의사항
csv 파일이 있는 경로 c:/data C 드라이브의 data라는 폴더에 있는 경우를 의미함.
드라이브명 뒤에 back-slash(\)가 아니고, slash(/)임에 유의할 것
csv 파일명 .csv rpart 저장한 파일명, 확장자 csv는 입력하지 않는다.
Event가 있는 변수명 status Event, Censored data가 있는 변수명
Event를 나타내는 값 0 Event=0, Censored=1 로 입력한 경우 0
반대로 입력하였다면 1
Event를 나타내는 라벨 Event 0=Event 이므로
Censored를 나타내는 값 1 Event=0, Censored=1 로 입력한 경우 0
반대로 입력하였다면 0
Censored를 나타내는 라벨 Censored 1=Censored 이므로
Cutting point를 결정하고자 하는 변수명 VEGF cutting point를 만들고자 하는 변수명
새로운 창에서

Script 부분을 선택하고 마우스

오른쪽 버튼을 눌러

[복사]를 선택한다.

4. 패키지 불러오기

바탕화면에 있는 [R]을 실행

[MENU]-[패키지]-[패키지 불러오기]-[rpart]-[OK]

* 프로그램 (R)을 닫지 않고 다른 data를 이용하는 경우 [패키지 불러오기]를 중복하여 실행할 필요는 없다.


5. 통계 실행

[MENU]-[파일]-[새로운 스크립트]

[제목없음 -R 편집기]창에 복사한 내용 [붙여넣기]

[MENU]-[편집]-[전부 실행]
결과해석
[R Console]에 결과치가 텍스트 형태로 나타남

[R Graphics] 창에 cutting point를 이용한 분류 tree가 나타난다.

마우스 오른쪽 버튼을 click하고, [bitmap으로 복사]를 선택하면, power point 에 그래프 [붙이기]가 가능하다.

1차적으로 VEGF의 값은 260에서 2개의 군으로 나눌 수 있다.
2차 분류 = 41.5
3차 분류 = 66.5
4차 분류 = 84.5

각각의 cutting point를 기준으로 군을 나누는 것이 합리적이라는 의미이다.

이렇게 제시한 cutting point로 군을 나눌 경우 통계적으로 가능하면 유의한 쪽으로 분류를 한 것이나, 통계적으로 반드시 유의하지는 않을 수 있다.

통계의 유의성을 보고자 하는 경우 이런 분류체계로 다시 통계를 실행하여야 한다.

예를 들면 260을 기준으로 2개의 군으로 나누었다면 2군간의 비교 통계를 실행하면 된다.
유의사항
Missing data가 있는 경우 오류가 남.
변수의 이름에는 띄어쓰기, 기호 등이 포함되어서는 안됨.
변수의 이름을 입력하여 Script를 만드는 과정에서 오타가 있는 경우 오류가 발생함.
고급사용자
통계에 사용되는 프로그램 소스는 상단의 [-Make Script-]에 의해 자동으로 생성되도록 하였다.

그 소스 코드를 살펴보면 다음과 같다.

cbg_data=read.csv('c:/data/rpart.csv')
progstat <- factor(cbg_data$status, levels=0:1,labels=c('Event','Censored'))
cfit <- rpart(progstat ~VEGF,data=cbg_data, method='class')
print(cfit)
plot(cfit)
text(cfit)


** 만일 여러 가지의 factor를 가진 경우, 즉 VEGF 이외에 다른 factor가 있고, 이를 합쳐서 함께 분석을 원한다면 소스 코드를 수정하여야 한다.

즉, 소스 코드 3번째줄에 분석을 원하는 factor를 삽입하면 된다.

cfit <- rpart(progstat ~VEGF+factor1+factor2,data=cbg_data, method='class')

물론 데이터 입력 당시부터 원하는 factor를 추가하여야 함은 당연할 것이다.
참고자료
논문인용방법:
RPART, a recursive partitioning procedure or tree classification algorithm in R 2.2.1 (R Development Core Team, Vienna, Austria, http://www.R-project.org) was used to identify optimal cutting points for each marker.
통계 방법이 인용된 논문:
Faderl S, Do KA, Johnson MM, Keating M, O'brien S, Jilani I, Ferrajoli A, Ravandi-Kashani F, Aguilar C, Dey A, Thomas DA, Giles FJ, Kantarjian HM, Albitar M. Angiogenic factors may have a different prognostic role in adult acute lymphoblastic leukemia. Blood. 2005 Dec 15;106(13):4303-7. DownLoad 원문보기
사용자 설명서:
An Introduction to Recursive Partitioning Using the RPART Routines DownLoad 원문보기
The rpart Package DownLoad 원문보기
by Byung Gil Choi, MD, PhD.   cbg@catholic.ac.kr  Department of Radiology, College of Medicine, The Catholic University of Korea.