DOI QR코드

DOI QR Code

Big Data-based Medical Clinical Results Analysis

빅데이터 기반 의료 임상 결과 분석

  • 황승연 (한국산업기술대학교 컴퓨터공학과) ;
  • 박지훈 (한국산업기술대학교 컴퓨터공학과) ;
  • 윤하영 (한국산업기술대학교 컴퓨터공학과) ;
  • 곽광진 (한국산업기술대학교 스마트팩토리융합학과) ;
  • 박정민 (한국산업기술대학교 컴퓨터공학과) ;
  • 김정준 (한국산업기술대학교 컴퓨터공학과)
  • Received : 2018.09.05
  • Accepted : 2019.02.08
  • Published : 2019.02.28

Abstract

Recently, it has become possible to collect, store, process, and analyze data generated in various fields by the development of the technology related to the big data. These big data technologies are used for clinical results analysis and the optimization of clinical trial design will reduce the costs associated with health care. Therefore, in this paper, we are going to analyze clinical results and present guidelines that can reduce the period and cost of clinical trials. First, we use Sqoop to collect clinical results data from relational databases and store in HDFS, and use Hive, a processing tool based on Hadoop, to process data. Finally we use R, a big data analysis tool that is widely used in various fields such as public sector or business, to analyze associations.

최근 빅데이터 관련 기술들이 발전함에 따라 다양한 분야에서 생성되는 데이터들을 수집하여 저장하고 처리 및 분석할 수 있게 되었다. 이러한 빅데이터 기술들을 임상 결과 분석에 활용하고, 임상시험 설계 최적화를 통해 보건의료분야에 투입되는 막대한 비용을 절감할 수 있을 것으로 전망된다. 따라서 본 논문에서는 임상 결과를 분석하여 임상시험 기간과 비용 등을 줄일 수 있는 가이드 정보를 제시하고자 한다. 먼저 Sqoop을 사용하여 임상 결과 데이터가 저장된 관계형 데이터 베이스로부터 HDFS에 수집하여 저장하고, 하둡을 기반으로 동작하는 처리 도구인 Hive를 이용하여 데이터를 처리한다. 공공분야, 기업 등 각 분야에서 많이 활용되고 있는 빅데이터 분석 도구인 R을 이용하여 연관성 분석을 한다.

Keywords

Ⅰ. 서론

최근 디지털 세상이 열리면서 빅데이터 관련 기술들이 발전함에 따라 다양한 분야에서 생성되는 데이터들을 수집하여 저장하고 처리 및 분석할 수 있게 되었다. 헬스케어 분야에도 데이터가 폭발적으로 증가하고 있다[1]. 이와 같은 헬스케어 빅데이터를 잘 활용하면 보건의료분야에 투여되는 막대한 비용을 절감할 수 있을 것으로 전망된다[2]. 헬스케어 분야에서 빅데이터와 머신러닝의 활용은 이제 선택이 아닌 필수로 자리 잡고 있다. 미국, 영국, EU에서는 이미 이점을 간과하지 않고 집중투자를 하고 있으며 GE, IBM, Apple, Intel 등의 글로벌 IT 기업들도 앞을 다투어 이 분야에 대한 연구개발 및 실무적용에 열을 올리고 있다[3]. 대국민의 의료복지 수준을 획기적으로 개선하고 문화 컨텐츠 한류에서 시작한 브랜드 코리아를 의료 분야로 확장하기 위해서라도 헬스케어 빅데이터와 머신러닝에 많은 관심과 연구 및 투자가 이루어져야 한다. 따라서, 본 논문에서는 임상 결과를 분석하고, 임상 시험 기간과 비용 등을 줄일 수 있는 빅데이터 기반 분석 시스템을 개발한다.

본 논문의 구성은 다음과 같다. 2장에서는 본 연구에서 사용되는 기술들에 대하여 설명한다. 3장에서는 빅데이터 기반 임상 결과 분석 시스템의 설계와 구현에 대하여 설명한다. 4장에서는 본 논문의 내용을 정리하며, 기대 효과에 대하여 설명하고 마친다.

Ⅱ. 관련 기술

1. 빅데이터

빅데이터란 기존 데이터베이스가 다루는 정형 데이터 뿐만 아니라 xml, html 문서와 같은 반정형 데이터와 음성, 이미지 동영상과 같은 멀티미디어 데이터인 비정형 데이터를 관리하고, 이러한 데이터로부터 가치를 창출하고 결과를 분석하는 기술을 의미한다. 빅데이터의 특징으로는 데이터의 양(Volume), 데이터의 종류(Variety), 데이터의 속도(Velocity)를 갖는다[4].

2. 하둡(Hadoop)

대용량 데이터를 분산 처리하고 저장할 수 있는 자바 기반의 오픈소스 프레임워크이다. 하둡은 분산 파일 시스템인 HDFS(Hadoop Distributed File System)에 대용량 파일들을 특정 크기의 블록들로 나누어 저장하며, 데이터 블록들을 여러 노드에 중복하여 분산 저장함으로써 데이터 안정성을 얻을 수 있다[5]. HDFS 클러스터는 하나의 네임노드와 여러 대의 데이터 노드로 구성된다. 네임 노드는 파일의 메타데이터를 관리하며, 사용자는 이 메타데이터를 통해 원본 파일에 접근할 수 있고, 데이터 노드는 여러 개로 나누어진 데이터 블록들에 대한 메타데이터를 관리하며, 사용자의 요청에 따라 데이터 블록을 네임노드에게 전송한다.

3. 스쿱(SQOOP)

SQOOP은 SQL-to-Hadoop의 약자로, Apache Hadoop과 구조화된 관계형 데이터베이스 간에 데이터를 효율적으로 주고받기 위해 만들어진 명령 줄 인터페이스 (Command-Line Interface) 애플리케이션이다. RDBMS에서 데이터를 수집하여 HDFS로 저장하는 것을 Import라고 하며, HDFS에서 데이터를 수집하여 RDBMS로 저장하는 것을 Export라고 한다 [6]. Import 할 때, Map-Only Job으로 데이터를 Hadoop Cluster로 전송한다. Reduce 과정이 없는 이유는 SQOOP의 목적은 데이터의 가공이 아닌, 대량의 데이터 전송이기 때문이다. Export 할 때도 마찬가지로 Map-Only Job으로 데이터를 관계형 데이터베이스로 전송한다.

4. 하이브(Hive)

하이브는 Hadoop 기반으로 동작하는 데이터 웨어하우스 시스템이다. Hadoop에 저장된 데이터를 SQL과 유사한 HiveQL를 사용하여 처리할 수 있는 기능을 제공하기 때문에, JAVA를 활용한 Map/Reduce 개발자가 아닌 RDBMS에 익숙한 개발자에게 편리한 인터페이스를 제공하여 쉽게 구현할 수 있다[7].

5. R 기반 연관성 분석

R 기반 연관성 분석은 R 프로그램을 이용하여 데이터 간의 연관성 및 상관관계를 표현하는 규칙을 찾는 것이 다. 대표적인 알고리즘은 Apriori Algorithm이 있으며, 연관성 분석의 지표에는 지지도(Support), 신뢰도(Confidence), 향상도(Lift)가 있다 [8,9] . 지지도는 사건 A와 B가 동시에 발생할 확률을 나타내고, 구하는 방법은 수식(1)과 같다.

\(for the rule a \rightarrow b, \operatorname{support}(a)=p(a) \)       수식(1)

신뢰도는 사건 A가 발생하였을 때, 사건 B가 발생할 확률을 의미하며, 구하는 방법은 수식(2)과 같다.

\(\text { confidence }(a \rightarrow b)=\frac{p(a, b)}{p(a)}\)       수식(2)

향상도는 사건 A와 B가 동시에 발생할 확률과 사건 A의 발생 여부와 상관없이 사건 B가 발생할 확률의 비를 의미하며, 구하는 방법은 수식(3)과 같다.

\(\operatorname{lift}(a \rightarrow b)=\frac{p(a, b)}{p(a) \cdot p(b)}\)       수식(3)

Ⅲ. 설계 및 구현

빅데이터 기반 임상 결과 분석 시스템은 그림 1과 같이 빅데이터 수집 프로세스, 빅데이터 병렬 처리 프로세스, 분석 및 시각화 프로세스 4가지로 구성하였다.

OTNBBE_2019_v19n1_187_f0001.png 이미지

그림 1. 빅데이터 기반 임상 결과 분석 시스템 개념도

Fig. 1. Big Data Based Clinical Results Analysis System Conceptual Diagram

빅데이터 수집 프로세스는 관계형 데이터베이스인 MySQL에 저장된 의료기관 데이터를 SQOOP 도구를 이용하여 HDFS에 전송한다.

빅데이터 저장 프로세스는 수집 프로세스로부터 전송되는 데이터를 HDFS에 데이터의 포맷을 변경하여 저장한다.

빅데이터 병렬 처리 프로세스는 HDFS에 저장된 데이터를 HIVE를 이용하여 데이터의 불필요한 부분을 정제하고, 분석 및 시각화 프로세스에서 사용하는 파일 형식으로 변환하여 저장한다.

빅데이터 분석 및 시각화 프로세스는 처리가 완료된 데이터를 R 프로그래밍을 이용하여 연관성 분석을 수행하고, 분석이 완료된 결과물을 시각화한다.

본 논문에서는 임상 결과 데이터를 이용하여 검사와 관련 질병 간에 연관성을 분석하여 임상시험 기간과 비용 등을 줄일 수 있는 가이드 정보를 제시하기 위한 시스템을 개발하고자 한다.

데이터 수집 프로세스는 빅데이터 수집 솔루션 중 Sqoop을 사용하여 구현하였다. 그림 2는 RDBMS에 저장된 임상 결과 데이터이며, 이 데이터를 그림 3의 명령어를 통해 HDFS로 수집하여 저장한다. 데이터는 환자에 대한 정보와 환자의 질병에 대한 검사항목과 관련 질환 그리고 검사 결과로 구성되어 있다.

OTNBBE_2019_v19n1_187_f0002.png 이미지

그림 2. RDBMS에 저장된 임상 결과 데이터

Fig. 2. Clinical results data stored in RDBMS

OTNBBE_2019_v19n1_187_f0003.png 이미지

그림 3. Sqoop을 통해 데이터를 수집하기 위한 Import 명령어

Fig. 3. Import command to collect data through Sqoop

그림 3은 Sqoop을 사용하여 RDBMS에 저장된 임상 결과 데이터를 수집하여 HDFS에 저장하기 위한 import 명령어이다. --connect 옵션을 사용하여 HDFS와 데이터를 교환하는 데이터베이스 이름과 사용하는 connector를 명시한다. RDBMS와 HDFS 간에 데이터를 교환하기 위해서 jdbc connector를 사용한다. --table 옵션에 데이터가 저장된 테이블을 명시하고, --username과 --password 옵션을 사용하여 데이터베이스에 접근하는데 필요한 계정의 ID와 암호를 입력한다. --target-dir 옵션은 수집한 데이터가 저장될 HDFS의 경로를 나타낸다.

데이터 저장 프로세스는 수집된 데이터를 Hadoop 클러스터의 4개 노드에 분산 저장한다. 그림 4는 수집된 데이터가 그림 3의 --target-dir 옵션에 입력한 HDFS의 경로에 분산 저장되어 존재하는 것을 나타낸다. 이 데이터를 처리 프로세스에서 이용하기 위해 그림 5의 명령어를 수행하여 CSV 형식으로 변환하고, 다시 HDFS에 저장한다.

OTNBBE_2019_v19n1_187_f0004.png 이미지

그림 4. HDFS에 수집되어 저장된 임상 결과 데이터

Fig. 4. Clinical results data collected and stored in HDFS

OTNBBE_2019_v19n1_187_f0005.png 이미지

그림 5. HDFS에 저장된 데이터를 로컬에 저장하는 명령어

Fig. 5. Commands for storing data stored in HDFS on Local

데이터 처리 프로세스는 수집되어 분산 저장된 데이터 중에서, 분석에 필요한 데이터만 추출하기 위해 빅데이터 처리 솔루션 중 Hive를 사용하여 구현하였다. 그림 5는 HDFS에 저장된 데이터를 Hive 테이블에 삽입하기 위한 명령어를 나타낸다.

그림 6의 Step 1은 데이터를 처리하기 위해 Hive에서 result 테이블을 생성하는 명령어이다. HDFS에 저장된 CSV 형식의 파일을 result 테이블에 삽입하기 위해 데이터 필드의 구분을 콤마로 지정한다. 그림 6의 Step 2는 생성한 result 테이블에 데이터를 입력하는 명령어이다.

OTNBBE_2019_v19n1_187_f0006.png 이미지

그림 6. Hive 테이블에 데이터를 삽입하기 위한 명령어

Fig. 6. Commands for inserting data into the Hive table

그림 7의 Step 1은 정제한 데이터를 저장하기 위한 result2 테이블을 생성하는 명령어이다. 정제한 데이터는 검사 코드와 관련 질환 컬럼만 추출할 것이므로 테이블 생성 시, 두 개의 컬럼만 생성한다. 그림 7의 Step 2는 result 테이블에 저장된 데이터로부터 분석에 필요한 검사코드와 관련 질환 컬럼만을 추출하고, 관련 질환 컬럼에서 세미콜론으로 구분된 데이터를 새로운 행으로 추가하여 result2 테이블에 저장하는 명령어이다. split 함수를 사용하여 세미콜론으로 구분된 데이터를 분할하고, NULL 값이 존재하는 필드는 분석에 불필요하므로 is not null 명령어를 사용하여 제거한다.

OTNBBE_2019_v19n1_187_f0007.png 이미지

그림 7. Hive를 이용한 데이터 필터링 및 데이터 마이닝

Fig. 7. Commands for filtering and data-mining with Hive

그림 8의 Step 1은 처리한 데이터를 HDFS의 medical_output 디렉터리에 저장하는 명령어이다. 그림 8의 Step 2의 명령어를 수행하면 저장된 파일을 확인할 수 있다. 그림 8의 Step 3은 HDFS에 저장된 파일을 분석에 사용하기 위해 로컬에 CSV 형식의 파일로 저장하는 명령어이다.

OTNBBE_2019_v19n1_187_f0008.png 이미지

그림 8. Hive를 이용한 분석 파일 변환

Fig. 8. Conversion of analysis files using Hive

데이터 분석 프로세스는 그림 8의 Step 3에서 정제를 완료한 데이터를 바탕으로, 데이터 간의 규칙을 발견하기 위해 R 프로그래밍을 사용하여 연관성 분석을 수행하였다.

그림 9의 Step 1은 연관성 분석을 위한 패키지 설치와 정제한 데이터를 불러오기 위한 소스코드이다. 그림 9의 Step 2는 연관성 분석에 필요한 apriori 함수를 적용한 소스코드이다. Apriori Model을 사용하여 데이터를 지지도가 0.01 이상이고 신뢰도가 0.3 이상인 데이터로 분류한다. 지지도와 신뢰도의 값은 Apriori Model 사용 시 데이 터에 가장 적절한 값을 적용하였다.

OTNBBE_2019_v19n1_187_f0009.png 이미지

그림 9. Apriori 함수를 이용한 연관성 분석

Fig. 9. Associations Analysis using Apriori function

그림 10은 그림 9의 Step 2에서 Apriori Model을 데이터에 적용 시 출력되는 결과이다. 그림 10을 통해 데이터에서 114개의 규칙이 발견된 것을 확인할 수 있다.

OTNBBE_2019_v19n1_187_f0010.png 이미지

그림 10. Apriori Model 적용 결과

Fig. 10. Application Results of the Apriori Model

그림 11의 Step 1은 연관성 분석이 적용된 데이터를 향상도 기준으로 정렬한 후 inspect 함수를 사용하여 데이터 간의 연관성을 확인하는 소스코드이다. 향상도 = 1 인 경우 A와 B는 연관성이 없는 독립적인 관계임을 나타낸다. 향상도 > 1인 경우는 A와 B는 연관성이 있고, 우연히 일어나지 않은 것을 의미하며 양의 관계를 나타낸다. 향상도 < 1인 경우는 A와 B는 연관성이 있고, 우연히 일어나지 않은 것을 의미하며 음의 관계를 나타낸다.

OTNBBE_2019_v19n1_187_f0011.png 이미지

그림 11. R을 이용한 연관성 확인

Fig. 11. Check associations using R

그림 12는 inspect 함수를 사용하여 Apriori Model을 적용한 데이터의 연관규칙을 확인한 결과이다. 그림 12를 보면, 데이터에서 총 114개의 연관규칙이 발견되었음을 확인할 수 있고, 오른쪽의 향상도를 기준으로 내림차순 정렬된 것을 볼 수 있다. 예시로, 첫 번째 데이터를 보면 검사 코드(code)의 값이 40024라는 좌변과 알러지 질환이라는 우변의 향상도가 97인 것을 통해 좌변과 우변의 연관성이 높고, 우연히 일어난 것이 아님을 나타내며 양의 관계라는 것을 알 수 있다.

OTNBBE_2019_v19n1_187_f0012.png 이미지

그림 12. 데이터 연관성 확인

Fig. 12. Check data associations

그림 13의 Step 1은 연관성 분석 결과 시각화를 위해 arulesViz 패키지를 설치 및 적용하기 위한 소스코드이 다. 그림 13의 Step 2는 연관성 규칙 시각화의 표본이 되는 연관규칙 그래프로, 그림 14처럼 Apriori Model을 적용한 데이터들의 연관 규칙 관계를 원과 화살표로 표현한 것이다. 그림 14에서 원의 크기는 지지도에 비례해서 커지고, 원의 색은 향상도에 비례해서 진해지며, 화살표는 A -> B의 관계 방향을 나타낸다.

OTNBBE_2019_v19n1_187_f0013.png 이미지

그림 13. R을 이용한 연관성 규칙 시각화 1

Fig. 13. Visualizing Association Rules Using R 1

그림 14의 1번 규칙에서 검사 코드의 값이 31020인 경우 화살표 방향이 관련 질환(disease)의 값인 고지혈증, 신부전, 간 경변으로 향한 것을 볼 수 있다. 이것은 검사 코드가 31020인 경우 언급한 세 가지 질환의 여부를 확인할 수 있다는 것을 의미한다. 또한, 각 관련 질환을 나타내는 세 개의 원의 크기가 큰 것을 보면 검사 코드 31020 과 세 가지의 관련 질환 값 간의 규칙이 발생할 확률이 높다는 것을 알 수 있고, 원의 색상이 진한 것을 보면 검사 코드와 관련 질환 간에 연관성이 높다는 것을 알 수 있다. 그림 14에서 좋은 연관규칙을 보이는 1번 규칙의 관계를 자세히 살펴보기 위해 해당 검사 코드를 지정하여 다시 시각화할 수 있다.

OTNBBE_2019_v19n1_187_f0014.png 이미지

그림 14. 연관성 규칙 시각화 결과 1

Fig. 14. Association Rule Visualization Results 1

그림 15의 Step 1은 그림 9의 Step 2와 같이 Apriori Model을 적용하는데, 좌변(lhs)의 데이터에는 지정한 검사 코드만을 표시하는 데이터로 구조를 재설정한다. 그림 15의 Step 2는 그림 13의 Step 2와 같이 연관성 규칙 시각화의 표본이 되는 연관규칙 그래프이다. 그림 16은 재설정한 데이터 구조로 다시 시각화한 결과이다.

OTNBBE_2019_v19n1_187_f0015.png 이미지

그림 15. R을 이용한 연관성 규칙 시각화 2

Fig. 15. Visualizing Association Rules Using R 2

그림 16의 검사 코드들을 살펴보면 (1)번 검사를 통해 순환기질환, 비만, 고지혈증과 같은 질환의 여부를 확인할 수 있다. 마찬가지로 (2)번 검사를 통해 지질대사, 고지혈증의 여부를, (3)번 검사를 통해 고지혈증, 간 경변, 신부전의 여부를, (4)번 검사를 통해 신부전, 요로폐쇄, 만성통풍의 여부를 확인할 수 있다. 그림 16을 통해 알수 있는 것은 연관성 분석 이전의 경우에 고지혈증과 신부전 검사를 받고 싶은 사람은 결과를 알기 위해 (1)번, (2)번, (4)번 검사를 모두 받아야 했을 것이다. 하지만 분석 후에는 (3)번 검사만을 통해서 고지혈증과 신부전의 여부를 확인할 수 있다. 따라서 임상 결과 연관성 분석을 통해 임상시험 기간과 비용을 줄이기 위한 가이드 정보를 제시할 수 있다.

OTNBBE_2019_v19n1_187_f0016.png 이미지

그림 16. 연관성 규칙 시각화 결과 2

Fig. 16. Association Rule Visualization Results 2

Ⅳ. 결론

본 논문에서는 의료 임상 결과 데이터의 검사 코드와 관련 질병 간에 연관성을 분석하여 임상시험 기간과 비용 등을 줄일 수 있는 가이드 정보를 제시하기 위한 시스템을 구현하였다. 빅데이터 기반의 임상 결과 분석을 통해 임상 시험 설계를 최적화하여 국민 의료 비용을 감소시킬 수 있고, 이와 같은 헬스케어 빅데이터를 잘 활용하면 보건의료분야에 투여되는 막대한 비용을 절감할 수 있을 것으로 전망된다. 또한, 환자 개인별로 특화된 질병 진단 및 치료 서비스뿐만 아니라, 만성질환 관리 서비스 및 질병 예방 서비스 등으로 의료서비스의 혁신을 이룰수 있을 것으로 기대된다.

References

  1. Gil-Ha Park, "A Trends of Big Data Processing for Digital Healthcare," Journal of Korea Creative Content Association, Vol. 15, No. 1, pp. 35-37, 2017.3.
  2. Myung-Jin Jung, Min-Hwa Lee, "Medical Big Data Activation Policy for Health Care Industry Development," Journal of the Korea Institute of Management, pp. 1658-1677, 2017.8.
  3. Soo-Yong Shin, "Current trends and issues in healthcare big data," Journal of Information Processing Association, Vol. 22, No. 4, pp. 22-27, 2015.
  4. Uh-Soo Kyun, Sung-Hoon Cho, Jeong-Joon Kim, Young-Gon Kim, "A Study on Perception for Public Safety of Seoul Citizens using Multiple Regression Analysis," Journal of The Institute of Internet, Broadcasting and Communication, Vol. 18, No. 1, pp. 195-201, 2018.2. DOI: https://doi.org/10.7236/JIIBC.2018.18.1.195
  5. Seong-Eun Yang, Chang-Yeol Choi, Hwang-Kyu Choi, "Design and Implementation of Vehicle Route Tracking System using Hadoop-Based Bigdata Image Processing," Journal of Digital Contents Society, Vol. 14, No. 4, pp. 447-454, 2013.12. DOI: http://dx.doi.org/10.9728/dcs.2013.14.4.447
  6. Liu Chen, Jung-Hyun Ko, Jeong-Mo Yeo, "Analysis of the Influence Factors of Data Loading Performance Using Apache Sqoop," Journal of Koreanstudies Information Service System, Vol. 4, No. 2, pp. 77-82, 2015.2. DOI: http://dx.doi.org/10.3745/KTSDE.2015.4.2.77
  7. Dong-Jin Shin, Ho-Geun Lee, Jong-Min Eun, Jeong-Joon Kim, Jeong-Min Park, "Bigdata-based Anomaly Detection Technology in Web Services Environment," Journal of Asia-pacific Multimedia Services Convergent with Art, Humanities, and Sociology, Vol. 8, No. 4, pp. 231-250, 2018.4. DOI: http://dx.doi.org/10.21742/AJMAHS.2018.04.01
  8. Han-Joon Kim, Jae-Young Chang, "Discovering News Keyword Associations Using Association Rule Mining," Journal of The Institute of Internet, Broadcasting and Communication, Vol. 11, No. 6, pp. 63-71, 2011.6. https://doi.org/10.7236/JIWIT.2011.11.6.063
  9. Philippe Lee, Young-Mi Park, Yang-Ryul Choi, "The Implementation of Association Rule to analyze of Manufacturing Execution System in shipyard," Journal of Society for Computing Design and Engineering, pp. 117-122, 2013.8.