생존분석이란? 

잘 정의된 시점으로부터 event가 일어나기까지 걸린 시간을 분석하고 예측하는 분석이다. 

event는 주로 사망, 질병악화, 기계고장 등이 있다. 따라서, 시간과 수치값을 예측하는 것이기 때문에 회귀모델로 적용되나, 일반적인 통계 모형에 적용할 수 없는 생존분석만의 특징이 있다. 

 

- 생존 분석으로 연구 집단의 특이변화를 직관적으로 확인 가능하다. 

 

Censoring

  • Right censoring: 연구 종료 전 사망 혹은 연구 종료 후 생존
  • Left censoring: 연구 시작 전 질환을 이미 보유 혹은 측정한 생존 시간보다 실제 생존 시간이 더 긴 경우

생존분석 방법 1) Kaplan-Meier 추정방법

사건에 따른 사건 발생률을 계산하는 생존분석 방법이다. 

아래 그림은 survival plot으로 시간에 따른 생존율을 파악할 수 있고 

두 그룹간의 유의미한 차이를 보기위해 Log-Rank test혹은 willcoxon test를 수행한다.  

생존분석의 특징

1) 레이블은 최소 2개를 갖는다. 

=> 사건 발생까지의 시간과 사건 발생여부 

예시) 신장이식 환자에 대한 생존분석을 한다고 가정하고, 환자 10명이 있다. 10명 모두 수술받은 날짜를 알아내는 것(시작점)이 가능하지만, 계속 지켜보는 것은 불가능하다. 그렇지만 그들의 생존시간과 사망정보를 기록해야한다.

하지만, event발생 전에 종료된 데이터들을 censored data라고 부른다. 하지만 끝까지 관찰된 샘플은 uncensored data라고 부른다. 

대표적인 모델로 Cox-proportional hazard model이 있다. (아래 관련 링크 첨부)

https://chealin93.tistory.com/search/survival

모델을 평가하는 방법

생존 시간의 예측 정확도를 알고싶을때는, MSE를 사용하고 사망여부를 고려한 생존시간 예측정확도를 알고 싶다면 C-index를 사용한다.  

 


C-index란? 

 

1) 샘플들의 생존 시간을 오름차순으로 나열하고, 사건이 관찰된 각 샘플들보다 오래 생존한 샘플들의 개수를 모두 더한 총합

2) 샘플들을 예측된 생존시간의 오름차순으로 나열하고, 사건이 관찰된 각 샘플들보다 오래 생존할 것으로 올바르게 예측된 샘플들의 개수를 모두 더한 총합

1과 2의 비율로 나타난다. 

 

 

c-index는 0.0~1.0 사이의 값을 갖는다. 1.0에 가까울수록 정확히 예측한다고 해석하고, 0.5에 가까울수록 무작위로 예측한다고 평가한다. 해석이 AUROC(Area Under Receiver Operating Characteristic curve)와 비슷하여, c-index를 AUROC의 회귀분석용으로 확장한 것이라는 이야기도 있다.

의학연구에서 전향적으로 환자수를 모으지 않고 후향적으로 코호트를 모으는 경우, 

실험군과 대조군의 n수가 맞지 않는 경우가 발생할 수 있습니다. 

 

예를 들어, 극단적으로 대조군의 n수가 실험군보다 30배 많다고 가정한다면, 대조군에서 실험군 수만큼 random sampling해서 군을 형성하는게 옳은 방법일까요? 

 

이럴때, 두 군간의 변수들간의 차이를 좁히고 n수를 맞추기 위해 사용하는 propensity score matching을 소개하려고 합니다. 

 

성별, 연령, 동반질환 유무 등등 1:1 혹은 최대 1:5까지 PSM을 수행한 뒤 univariate cox PH regression (보정변수 없이 분석하는 => 이미 PSM으로 주요 변수 이외에 나머지 변수들의 특성을 맞추어 놓았기 때문에 univariate을 사용합니다.) 으로 분석해주는 방법을 시도하려고 합니다. 

 

실험군이 1일때, 비교군을 1~5배수까지 놓고 cox PH regression의 결과의 robustness를 확인하여야합니다. 일종에 sensitivity analysis라고 말할 수 있습니다. 

 

일반적으로는 1:5 이상이 넘어가면 그 효과가 커짐이 반대로 줄어든다고 합니다. 

 

참고할만한 좋은 블로그가 있어서 소개합니다.

m.blog.naver.com/paperfactor_ceo/222098513280

 

[R 통계분석] 6. PS matching(Propensity Score matching; 성향 점수 매칭)

0. Propensity Score Mathcing 1. 두 그룹의 특성 비교하기 2. PS matching 3. Matched set으로 두 ...

blog.naver.com

 

'통계분석 > 의학통계' 카테고리의 다른 글

생존분석 - harrell's C-index  (0) 2022.10.24
Cox proportional hazard regression HRplot해석  (0) 2020.10.21
Cox proportional hazard model  (0) 2020.09.09

오늘은 HRplot을 해석하는 방법에 대해 알아보려고 한다.

 

우선 R에서 HRplot을 그리는 방법은 매우 간단하다.

HRplot(cox_fit)

cox_regression을 수행한 cox_fit모델을 HRplot함수에 넣어주면 HRplot을 그려준다.

 

예를 들면 이런 식으로!

 

이제 여기서 해석을 해보고자한다. 

 

Hazard Ratio의 의미는, 대조군의 위험률대비 실험군의 위험률이다. 

예를 들면, HR이 1.3인 경우 '대조군의 위험률이 실험군의 위험률보다 1.3배 크다.'의 의미를 가진다.

 

HR은 세가지로 분류할 수 있는데

1보다 크거나, 1이거나, 1보다 작은것이다.

 

1보다 큰 경우: 실험군의 위험도는 증가한다.

1보다 작은 경우: 실험군의 위험도는 감소한다.

1인 경우: 실험군과 대조군의 위험률은 같다.

 

이제 간단히 HR을 알아보았으니,

HRplot을 보고 의미를 해석해보자. 

 

1. 상관관계

 

그래프에 보면, 파란색 봉과  빨강색 봉이 있다. 

이는 양의상관관계와 음의 상관관계를 의미한다.

물론 각 변수 위에 적힌 숫자는 HR을 의미하는 것으로

앞서 1보다 크면 위험도가 증가한다는 것이라는 것을 알 수 있을때,

파란색의 것들은 모두 HR 1보다 큰 값을 가진다. 

고로 우리는 파란색이 양의 상관관계를 갖는다는 것을 유추할 수 있다. 

(실제로도 그렇다)

 

2. 봉의 길이

 

봉의 길이는 95%의 신뢰구간을 의미한다.

따라서 봉의 길이가 너무 긴것보다 짧은것이 더욱 신뢰도가 높고,

봉이 중앙에 점선에 걸쳐있다면, 

HR값이 1이될수도 있는 확률을 지닌것이기 때문에

그 변수는 통계적으로 의미가 없다고 본다.

우리는 보통 의학통계에서 95%의 신뢰구간을 사용한다.

 

더보기

신뢰구간이란? 

점추정(표본집단의 통계량으로 모집단을 추정하는 방법)을 할때, 모집단의 통계량을 신뢰하기가 어려운데 이때, 모집단의 통계량이 존재할 구간을 확률로 나타낸것이 구간추정이며, 구간추정의 방법중 가장 흔히 쓰이는 것이 신뢰구간이다. 

신뢰구간은 90, 95, 99%등으로 다양하게 사용된다.

 

Cox proportional hazard regression은 여러 변인들에 의해 생준율의 영향을 설명할 수 있고 여러 변수를 추가하여 설명할 수 있는 모형이다. 여러 Survival 분석 중 하나의 비모수적 방법이다. 주로 의학에서 자주 사용되고 임상실험에 대한 분석을 할 때 믿음직스럽게 사용된다. 생존분석은 사건이 발생까지의 시간과 사건의수로 사건발생률을 계산한다.

 

Hazard function

일단, Hazard function(위험함수)에 대해서 짚고 넘어간다.

hazard는 위험률을 말하는데 어느 시점에 대상이 탈락가능성이 높은지 평가하는 비율이다.

위 함수에서 확률부분은 t시점까지 살아남은 대상이 다음 델타t시간안에 죽을 조건부확률이다. 이를 

델타t로 나누면 단위시간당 죽을 확률이된다. 이에 극한개념을 대입하면, 특정 t에서 

순간 위험률함수를 나타낼 수 있다. 이것이 hazard function, h(t)이다.

 

생존함수는 대상이 얼마나 오래 살아있는가를 나타내는 반면,

위험률함수는 특정 시점에 죽을 가능성을 나타낸다.

 

따라서, 어떤 event가 발생할 위험률 함수로 쓰이며, 생존분석에서 통계모형을 나타내는 다양한 용도로 쓰인다. 

 

그것들 중 Cox PH model에 대해서 알아본다.

 

Cox PH model

 

 

 



여기서 각 변수앞에 붙은 계수들은 당연히 변수와 관계가 있다. 

이때 위험률 비를 구하면, 두군에 대해서 각각 위험률 함수를구하고 이를 나누면 hazard ratio라고 한다.

 

Hazard ratio

예를들어 담배가 X변수이고 암이 event라고 했을 때, 

담배를 피지 않는 집단 X =0 과 담배를 피는 집단 X=1 의 hazard ratio를 각각 구해 둘을 나눈 비를 

hazard ratio라고 한다.

예를 들어 이 값이 2.8이라고 하면,

직관적인 해석으로는 '담배를 피는 사람은 피지 않는 사람에 비해 2.8배 위험성이 높다는 것'이다. 

각각 X1에 의한 hazard function은 아래와 같고

이로부터 hazard ratio를 구하면 다음과 같이 된다.

이때, h0(t)는 나누면서 사라지기 때문에 베타를 해석하는데 아무런 영향을 주지 않는다.

또한 시간은 h0(t)에만 영향을 미치기 때문에, 시간이 흘러도 hazard ratio는 변하지 않는다.

시간에 따라 hazard function의 값이바뀔 수는 있어도 비율은 달라지지 않는다. 

이런 가정을 만족시키는 데이터에 대해서 이 모형을 사용할 수 있다. 

 

Adjusted Survival Curves 

우리는 이와같은 학습을 통해 유저의 생존곡선을 그리려고 한다. 

여러 변수들의 특성을 적용하여 모형으로 쉽게 나타낼 수 있다.

 

 

 

참고문헌: 

https://boxnwhis.kr/2015/04/24/drawing_survival_curves_with_predictors.html

 

설명 변수를 이용하여 유저 생존 곡선 그리기

설명 변수를 이용하여 유저 생존 곡선을 그립니다. Cox PH model을 활용합니다.

boxnwhis.kr

생존분석에 대해 정리가 잘 된 페이지를 소개한다.

https://statkclee.github.io/ml/ml-pm-survival.html

 

xwMOOC 기계학습

 

statkclee.github.io

http://statkclee.github.io/parallel-r/

 

Software Carpentry: R 병렬 프로그래밍

“AI is a superpower!!!”, 인공지능을 체득하면 슈퍼파워를 손에 쥘 것이다. Andrew Ng 금수저, 은수저 슈퍼파워를 받은 사람과 기계학습을 통달한 흑수저들간의 무한경쟁이 드뎌 시작되었다. 물론, 금

statkclee.github.io

 

+ Recent posts