들어가며

이전 글에서 예방과 예측 중심으로 재편되는 의료산업에서 보건의료 빅데이터, 그 중에서도 의료명세서의 가치와 역할을 언급하였다. 그리고 건강보험심사평가원의 의료명세서(청구명세서)가 시간의 흐름에 따라 환자별 의료비용의 변화를 보여줄 수 있다는 점에 주목하였다.

이러한 배경에서, 우리는 의료명세서에서 시간 정보를 추출하여 유사한 패턴의 환자들 시계열 군집화를 적용하였다. 이 작업은 특정 질병의 의료비용 추산를 위한 탐색적 연구로서 의의가 있고, 시퀸스 분석을 적용한 의료행위 탐색으로 내용이 이어질 예정이다.

데이터셋

분석 대상은 연도별 담낭암 환자군, 즉 한국표준질병 사인분류에 따라 C23(담낭의 악성 신생물)으로 진단 받은 환자의 의료명세서이다. 의료명세서에 포함된 치료와 의료비용, 의료기관을 방문한 시점 등을 추출하여 환자별 시계열 데이터로 변환하였다. 참고로 연도별로 분리된 데이터셋을 이용하였고, 괄호는 환자데이터셋 변수설명이다.

  • 데이터: 입원환자 데이터셋(HIRA-NIS)
  • 기간: 2009년~2015년
  • 의료명세서 수 : 평균 약 7623건
  • 환자 수: 평균 약 1198명
  • 주요 변수: 주상병(sick_cd), 의료행위(div_cd), 의약품(gnl_nm_cd), 치료재료(div_cd), 수술여부(sopr_yn)
  • 시간 변수: 요양개시일자(recu_fr_dd), 요양종료일자(recu_to_dd)
  • 시계열 단위: 월(12개월)/주(52주)

시계열 데이터셋

시계열 군집화

우리는 더 유사한 패턴을 보이는 환자 그룹을 파악하기 위하여 군집화를 적용하였는데, 다음 요소를 고려하여 계층적 군집화(Hierarchical Clustering)를 평가하였다.

  • 속도 : 만약 실시간으로 시계열 데이터를 분류하고자 한다면, 알고리즘의 실행 속도가 중요하다. 계산 속도를 높이기 위하여 데이터의 차원을 축소하는 것도 한가지 방법이다. 우리는 실시간 분류를 하지 않았기 때문에 속도를 염두에 두지 않았다.

  • 도메인 지식: 도메인 전문가가 수동으로 시계열을 분류한다면, 많은 암묵적 지식과 직관을 사용할 것이다. 전문가에게 보이는 시계열 데이터의 특징을 잡아내기 위해서는 데이터에 대한 충분한 이해를 도와주는 탐색적 데이터 분석(EDA)이 필요하다. 우리는 여러가지 변수를 탐색한 결과, 수술 여부가 가장 영향력 있는 시점 정보라는 것을 발견하였다.

  • 군집화: 실제 시계열 데이터는 제각기 모양이 다 다르기 때문에, 비교 방법에 따라서 그 결과가 유사하게도, 동떨어지게도 나온다. 우리는 이점을 고려하여 군집화 방법을 선택하였다.

시계열 데이터 탐색

앞서 언급했듯이 수술 여부는 환자별 시계열 데이터에서 큰 영향력을 가지는 시점 정보이다. 2015년 담낭암 환자군의 평균 의료비용을 수가, 의약품(급여), 치료재료로 나누어 살펴보았다. 아래 왼쪽의 그래프는 각 환자가 병원에 방문한 날짜를 그대로 표현한 것이다. 오른쪽 그래프는 각 환자가 수술한 시점을 기준으로 정렬한 것으로, 1은 수술한 월, 2는 수술한지 1개월차, 3은 수술한지 2개월차를 의미한다. 오른쪽 그래프에 나타나듯이 정렬 전과 비교하였을 때 뚜렷한 패턴을 인지할 수 있다.

cost_per_category cost_per_category_adjusted

계층적 군집화(Hierarchical Clustering)

우리는 수술 시점으로 정렬한 시계열 데이터를 표준화하여 계층적 군집화 모델로 학습시켰다. 아래 그림은 계통도로 군집을 그린 것인데, x 축 하나하나가 환자이고 y축이 환자간의 유사성 거리이다. 비슷한 특성을 보이는 환자군일수록 계통도의 하단에서 군집을 이루고, 그 반대일 수록 계통도의 상단에서 분기한다.

계통도

군집화 결과

2009년 담낭암 환자군을 사례로 분석한 결과, 전체적으로 수술 시점의 총 의료비용이 가장 크게 나타났다. 계층적 군집화 기법을 적용한 결과 총 6개의 세부 그룹으로 나누어졌다. 몇몇 그룹은 환자수가 너무 적어 그룹간 비교가 어려웠지만, b와 y 그룹은 평균 의료비용, 평균 수술횟수, 평균 요양일수에서 큰 차이를 보였다.

그룹 성별 평균 나이 평균 의료비용 평균 수술횟수 평균 요양일수 환자수
b 64.3 18,857,630 2.21 198 24
66.6 18,703,580 1.93 199 27
c 66.0 17,242,190 0.00 333 2
g 61.0 14,672,950 2.00 122 1
75.0 16,850,350 2.50 111 2
m 51.0 11,530,280 3.00 95 1
58.5 14,329,650 2.00 292 1
r 69.5 10,021,900 1.00 46 2
y 57.0 2,000,752 0.30 23 689
58.1 1,894,280 0.28 23 958

나가며

본 글에서는 의료 명세서의 시계열 정보를 추출하여 군집화하는 내용을 다루었다. 시계열 전처리와 거리 계산 방법을 다양하게 조합하며 반복적으로 군집 결과를 확인하였다. 각 군집마다 의료이용 흐름에 어떤 차이가 있는지, 유의미한 차이인지 다음 포스팅에서 다루겠다.