데이터이야기

DB 노하우, 데이터직무, 다양한 인터뷰를 만나보세요.

[의료1기] 수족구병의 발병 예측 모델과 발생 경보 시스템 구축

데이터 이야기
작성자
dataonair
작성일
2018-01-03 00:00
조회
3329


수족구병의 발병 예측 모델과 발생 경보 시스템 구축

질병도 빅데이터로 예측하고 막는다



해마다 크고 작은 전염병이 우리 생활을 위협하고 있다. 그 중에서 의료 전문가 과정 우수조가 주목한 것은 수족구병으로, 건강보험심 사평가원의 의료 데이터와 기후, 인구 데이터 등을 결합하여 수족구 병의 발병 예측 모델을 개발하였다. 이는 실시간으로 수족구병을 예 측하거나 경고하여 질병의 감염을 조기에 차단하고 예방을 돕는 시 스템이다.



The Challenges

수족구병(手足口病, hand-foot-and-mouth disease)은 입과 손발에 물집이 생기는, 어린이 에게 비교적 흔하게 생기는 급성 바이러스 질환이다. 병의 증세가 워낙 특징적이기 때문에 일반인들도 대부분은 병을 쉽게 파악할 수 있다. 하지만 간혹 손과 발에 생기는 물집의 숫 자가 매우 적거나 물집이 아닌 작고 붉은 일반적인 발진이 생기게 되면 파악이 어려운 경우 도 있다.

이 병은 장바이러스가 몸에 들어와 생긴다. 대개는 증상이 가벼워 열이 없거나 있어도 미열 이다. 입 안의 물집이 터져 궤양이 생기는데, 이렇게 되면 음식을 먹을 때 아프기 때문에 일 시적으로 식사량이 줄었다가 자연히 좋아지는 가벼운 질환이다. 그러나 간간이 전혀 먹지 못하여 탈수가 생기거나, 뇌수막염, 뇌염과 같은 신경계 합병증이 발생해 입원하기도 하며, 극히 일부에서는 생명을 잃는 경우도 생길 수 있기 때문에 주의가 필요한 병이다.

의료 전문가 우수조 구성원들은 대부분 아이들을 키우고 있어 자연스럽게 아이들에 대한 이야기를 나누게 되었다. 그 과정에서 수족구병 때문에 아이들이 유치원이나 어린이집을 못 가거나 다른 아이로부터 전염되어 아이들이 많이 힘들어한다는 점을 공유하게 되었다. 구성원들은 건강보험심사평가원(심평원)의 데이터를 이용하여 수족구병의 발병 예측 모델 을 만들면, 많은 부모와 아이들이 수족구병을 예방하는데 도움이 될 수 있을 것이란 결론에 도달하였다. 이에 다양한 분석기법을 통해 수족구병의 발병 원인을 재검증하고, 발병 예측 모델과 발생 경보 시스템을 만들어 발병 가능성을 사전에 예측하고 대비해 발병률을 낮추 는데 기여하는 것을 목표로 삼았다.



The Approach

1) 데이터 수집과 전처리 과정
구성원들은 프로세스를 기획하고, 데이터 수집부터 착수하였다.

column_img_3226.jpg

2010년부터 2014년까지 5년의 기간을 정하고 심평원과 기상청, 통계청의 자료를 수집하 였다. 먼저 심평원에서는 요양기관과 질병별 처방 및 수가 데이터를 확보하여 그 중 기관, 시·도, 환자의 성별과 나이 등의 데이터를 집계하였다.

또 신문과 학술논문을 통해 수족구병이 기온 및 습도와 관련이 있다는 것을 알고 기상청에 서 날짜와 지역별 온도, 습도, 풍량, 강수량 등의 날씨정보를 수집하여 주간 단위로 평균기 온, 최저·최고기온, 일강수량, 평균풍속, 상대습도를 집계하였다. 동시에 일교차도 관련이 있을 것으로 보고 최고기온에서 최저기온을 뺀 값으로 일교차 자료를 만들었다.

한편 수족구병은 전염성이 강하여 인구밀도와도 관련이 있을 것으로 보고, 통계청에서 서울과 5개 광역시(부산, 인천, 대구, 광주, 대전)의 0세에서 19세까지의 인구수 데이터 (296,105명)를 모아 0~3세(영아), 4~6세(유아), 7~9세(초등학교 저학년), 10세 이상(초등 학교 고학년)으로 그룹화하였다. 그리고 남녀, 연령, 월별 단위의 통계를 시각화하였다 column_img_3227.jpg

기초 통계 정보를 분석한 결과 만 3세 이하 영아에서 발병률이 78%로 가장 많았고, 대부분 개인의원에서 진료를 받고 끝나는 경우가 91%로 나왔다. 위중한 병은 아니나 발병 시 급속 도로 번지는 병임을 알 수 있었다.

2) 탐색적 자료분석(EDA)
전처리과정을 거친 데이터는 탐색적 자료분석(EDA)을 통해 인사이트를 도출하고, 모델 생 성에 사용한 데이터가 정의되었다. 먼저 6개 도시의 남녀 인구마다 계절, 월, 연령별 빈도수 추이를 시각화하였다. 이후 계산식을 활용해 도시별 발병률을 산출하였다. 이는 발병률의 최대치를 100(%)으로 하고, 전체 해당 연령대별 인구수 대비 10%의 데이터로 분석한 것을 나타낸다.

도시별 발병률(%)=발병건수÷나이별 인구수×100×10

그 결과 서울이 동일 인구수 대비 발병률이 0.04%로 가장 낮고, 인천 0.07%, 부산 0.08%였 으며 광주와 대전이 각각 약 0.1%로 발병률이 가장 높았다. 서울이 인구밀도가 압도적으로 높지만, 발병률은 낮았다.

한편 전체 인구수(인구밀집) 대비 월별·도시별 발병률을 보면 광주>대전>부산>서울>인천 순으로 발병률이 높은 것으로 집계되었다. 월별로는 주로 5월에서 8월 사이의 여름철에 발 병률이 높았다. 또 연령대별 발병률은 0~3세에서 가장 많이 발생하고, 4~6세, 7~9세, 10 세 이상으로 연령이 높아질수록 발병률이 감소하는 것으로 나타났다. 다만 남녀의 차이는 없었다.

기후변화(평균기온, 평균습도, 주단위 기온 차) 및 주간 단위 발병률 간의 상관관계를 분석 한 결과 평균기온과 발병률 간의 상관관계가 다른 기후변수에 비해 높게 나왔다. 그러나 그 수치는 0.31로, 보통 0.5 이상일 때 상관관계가 높다고 보는 것에 비해서는 의미 있는 수치 라고 보긴 어렵다. 다만 발병률과 온도가 같이 증가하는 4~7월의 부분만 따로 잘라 분석하 면 기온과의 상관관계가 높게 나온다.

column_img_3231.jpg

또한 도시별, 주간별 발병률과 온도를 다음과 같이 비교해보면, 발병건수는 서울이 높다. 또 부산이 다른 도시보다 선행해서 올라간다. 한편 발병률이 급격히 증가하는 구간의 기온은 10~23도 사이였다. 평균온도가 23도 이상으로 증가하는데 발병건수가 줄어드는 점으로 볼 때 기온이 올라간다고 무조건 발병률이 증가하는 게 아니라 특정 구간에서만 기온이 의 미가 있음을 알 수 있다. 대신 5월부터 8월 사이에서 전 주에 얼마나 발병했는지가 다음 주 에 영향을 줄 것으로 본다. 이는 수족구병이 전염성이 높고, 집단생활을 통해 전염되기 때 문이다. 따라서 예측에는 과거 발병주기가 중요하다고 본다

column_img_3232.jpg

3) 모델링과 분석결과 검증
ARIMA(Auto-regressive Integrated Moving Average) 모형이란 시계열 분석 기법의 한 종 류로, 과거의 관측값과 오차를 사용해서 현재의 시계열값을 설명하는 ARMA 모델을 일반화 하였다. ARMA 모델이 안정적 시계열(Stationary Series)에만 적용 가능한 것에 비해, 분석대 상이 약간은 비안정적 시계열(Non Stationary Series)의 특징을 보여도 적용이 가능하다. R 에서 ARIMA 분석은 다음과 같은 순서로 이뤄진다

column_img_3229.jpg

2010년부터 2013년까지 4년치 데이터로 트레이닝 세트를 만들고, 2014년 데이터로 테스 트 세트를 만들었다. 시작점을 고정하고 예컨대 이번 주가 2014년 2주차면 2주차까지 데 이터를예측값을 DB에 저장했다. 6개 도시 별로 각각 모델을 생성하고, 2010년 1주부터 매주마다 ARIMA모델을 생성하고 향후 4주간 을 예측했다. 4년치 중 최대값, 평균값, 그리고 최대값과 평균값의 합을 2로 나눈 중앙값을 계산해 빨강(최대값), 노랑(중앙값), 파랑(평균값) 순의 경고 단계를 만들었다. 실제 향후 4주 간의 발병건수를 예측하도록 구성하였다.

위와 같이 데이터 수집과 분석, 모델링을 거쳐 DB에 저장한 데이터를 BI대시보드에서 보여 주도록 하였다

분석 결과 나온 예측값과 실제값을 검증하기 위해 MAPE(오차백분율 절대값의 평균)를 이 용하였다. 이는 정확도를 오차의 백분율로 표시한 것이다. 도시별 예측 정확도를 검증해본 결과, 2014년 전체 기간의 6개 도시별 평균 정확도는 64%로 높지 않은 것으로 나온다. 그 러나 실제 수족구병이 많이 번지는 기간만 잘라놓고 검증해보면 85.6%의 정확도를 보인다.



column_img_3230.jpg

The Outcome

이번 프로젝트를 수행하면서 도출해낸 빅데이터 분석 결과는 다음과 같은 성과를 얻었다. 첫째, 수족구병의 시계열 예측모델을 개발하고 모델의 발병 예측 정확성을 검증하였다. 실 제 수족구병이 주로 발생하는 시기는 4월 중순에서 8월 말 사이이다. 이 기간 동안의 사전 경보 시스템을 통한 주요 발병 예측률은 평균 85.6%를 보였다. 둘째, 전 주차의 발병 건수 를 기반으로 다음 주에 발병률이 얼마나 증가할지 가능성을 예측하여 사전 경고하는 시스 템을 구축하였다. 셋째, 발병의 사전 예측과 위험도 경고를 통해 수족구병을 미리 대비하고 감염 예방활동을 벌이는 데 도움이 되도록 하였다.

이번 프로젝트를 진행하면서 기간이 짧아 미처 수행하지 못한 주제들도 생겼다. 첫째는 부 산과 대구의 발병이 다른 도시보다 선행되는 경향이 있는데, 이 두 곳의 발병률이 인천, 서 울, 대전, 광주에 끼친 영향을 더 분석하는 것이다. 둘째로 초기(4~5월) 발병률이 이후 전 체 기간(6~8월) 발병률에 미치는 영향을 분석할 수 있을 것이다. 셋째, SNS 및 검색사이트 에 올라오는 수족구의 검색빈도수 및 글의 양과 실제 발병률의 상관관계를 분석할 수 있을 것이다. 가령 프로젝트 수행 중에 “어느 어린이집이 어디로 체험학습을 다녀오고 나서 수족 구병에 걸린 것 같다.”는 글이 SNS에 올라오는 경우가 많았다. 이런 글들이 많이 올라오는 것과 실제 발병률과는 어떤 관련이 있을까

앞으로 위와 같이 좀 더 의미 있는 분석이 더해져서 이번에 개발한 시스템이 국민건강에 도 움을 주는 방향으로 더욱 향상되길 기대한다.



출처 : 한국데이터진흥원

제공 : 데이터 전문가 지식포털 DBguide.net