Ⅰ. 서 론
최근 고령화 시대의 진입으로 만성질환인 골다공증의 환 자 수는 꾸준히 증가추세이다. 건강보험심사평가원 보건의 료 빅데이터 개방시스템에 따르면 골다공증 연도별 환자 수 추이는 2015년 821,754명에서 2019년 1,079,548명으로 연 평균 7.06% 증가하였으며, 연도별 요양급여비용 총액 추이 는 2015년 92,892,132천 원에서 2019년 165,662,889천 원 으로 연평균 15.56% 증가하였다. 골다공증은 폐경 여성에 서 흔히 발생하는 질환으로 골 양의 감소 및 미세구조 변화 로 인하여 골의 강도가 감소되어 골절이 일어날 가능성이 높은 상태를 의미한다[1]. 골다공증은 골절이 일어나기 전까 지 무증상인 경우가 많으며 골다공증 환자의 경우 작은 손 상에도 골절이 발생할 가능성이 높기 때문에 증상이 없더라 도 조기 진단 및 치료를 수행해야 병변으로 인한 사회적, 경 제적 부담을 줄일 수 있다[2]. 따라서 골다공증 예측 및 예 방을 위한 연구는 꾸준히 진행되어왔다[3,4].
최근 인공지능 기술은 당뇨병 예측, 피부 유형 판단 등 의료분야에서 다양하게 적용되고 있다[5,6]. 인공지능 기 술의 한 분야인 머신러닝(Machine learning)은 데이터를 기반으로 패턴을 학습하고 결과를 예측하는 기법을 통칭 하며, 일반적으로 지도학습(Supervised learning), 비지도 학습(Un-supervised learning), 강화학습(Reinforcement learning)으로 나눌 수 있다[7]. 이 중 지도학습은 훈련 데 이터에 정답을 포함 시켜 학습시키는 방법으로 분류와 회귀 에 사용된다. 트리기반 모델은 다양한 지도학습에 사용되고 있으며, 대표적인 트리기반 알고리즘은 결정 트리(Decision tree), 랜덤 포레스트(Random forest) 등이 있고 최근 높은 정확도로 인하여 각광받고 있는 XGBoost(Extra gradient boost) 알고리즘도 트리기반 모델이다[8,9].
본 연구에서는 폐경여성에서 트리기반 머신러닝 모델로 부터 골다공증 예측에 대해 알아보고자 하였다.
Ⅱ. 대상 및 방법
1. 데이터 수집
국민건강영양조사(The Korea national health and nutrition examination survey, KNHANES)는 국민건강증진법 제16 조에 근거하여 국민의 건강 및 영양상태를 파악하기 위해 실시되고 있으며, 1998년 제1기를 시작으로 2018년 제7기 원시자료까지 공개되어 있다. 본 연구에서는 골다공증 검사 가 실시된 제5기(2010∼2011) 원시자료를 사용하였으며 골 다공증검사를 진행한 폐경 여성 2,135명의 데이터를 수집하 였으며, 이중 결측치를 제외한 1,995명을 연구대상으로 선 정하였다.
2. 데이터 선정 및 연구대상
본 연구는 트리기반 머신러닝 모델을 이용하여 생활습관 및 현재 신체 지표를 이용하여 골다공증 유병여부 유무를 예측하였다. 따라서 선행연구 및 도메인 지식을 이용하여 골다공증과 연관성이 높은 변수를 파악하였다[10-14]. Table 1과 같이 간단히 파악할 수 있는 나이, 류마티스성 관 절염 유병여부, 성인 여성 고위험 음주빈도, 하루 평균 수면 시간, 현재 흡연 여부, 1주일간 근력운동 일수, 신장, 체중, 허리둘레, 부모 중 골다공증진단 / 허리 휨 / 경미한 외상 골절 경험여부(가족력 등) 등 10개의 독립변수를 선정하였 고 T-score 기준으로 산출된 골다공증 유병여부를 종속변 수로 선정하였으며 골다공증 유병여부에 따라 비골다공증 군(Non-osoteoporosis group)과 골다공증군(Osoteoporosis group)으로 분류하였다.
3. 데이터 전처리 및 통계적 분석
수집된 데이터는 머신러닝 모델에 적용하기 위해 분석에 적합한 형태로 변형해야 한다. 이를 데이터 전처리라 하며 모델의 성능을 높이기 위하여 초기 데이터는 가공하는 과정 을 거쳐야 한다[15]. 수집된 데이터에서 결측치가 속한 행 및 각 변수 내용에서 모름으로 응답한 것과 수면시간에서 0, 1, 20시간 등 비정상적이라 생각되는 행은 삭제하였다. 나 이, 신장, 체중 등 연속형 변수는 StandardScaler를 사용하 여 데이터를 처리하였다. 데이터의 유의성 검정을 위하여 통계적 분석을 실시하였다. 연속형 변수는 독립표본 t검정 을 이용하여 평균과 표준편차를 구하였고, 범주형 변수는 카이제곱검정을 이용하여 빈도(%)를 구하였다. p-value는 0.05 미만인 경우에 통계적으로 유의하다고 판단하였다. 통 계 분석은 SPSS 23.0 software (SPSS Inc., Chicago, IL, USA)를 이용하였다. 데이터 분류는 데이터를 훈련데이터와 테스트데이터로 랜덤하게 분리하여 교차 검증을 실시하는 홀드아웃(Hold-out method) 방법을 사용하였다.
4. 분류 알고리즘 및 평가
골다공증 유병여부를 예측하기 위하여 트리기반 머신러 닝 분류 알고리즘인 결정 트리(Decision tree), 랜덤 포레스트 (Randon forest), GBM(Gradient boost machine), XGBoost (Extra gradient boost) 모델을 사용하였다. 머신러닝 분류 알고리즘의 평가는 Table 2와 같이 혼동행렬(Confusion matrix)을 기반으로 구성되며, 예측 클래스와 실제 클래스를 기준으로 Negative, Positive로 분류하여 True positive(TP), False positive(FP), False negative(FN), True negative(TN) 형태로 구성된다. 이를 이용하여 ROC(Receiver operation characteristic) 곡선과 AUC(Area under curve), 정확도 (Accuracy), 정밀도(Precision), 재현율(Recall), F1 스코 어(F1_score)를 산출하여 모델을 평가할 수 있다. 본 연구에 서는 이진 분류모델의 성능 평가와 비교를 위하여 의학 진 단, 생물학, 신용평가 등의 분야에서 예측 및 분류 모델의 성능평가 지표로 주로 사용되는 AUC를 이용하여 모델의 성 능을 평가하였다[16,17]. AUC는 ROC 곡선의 아래 면적을 의미하고 1에 가까울수록 좋은 모형이라고 판단한다. 평가 결과 가장 높은 성능의 알고리즘에서 독립변수를 줄여가며 예측결과를 파악하여 모델의 최적화를 수행하였다. 분석도 구는 Python(v3.7.3), Jupyter notebook을 사용하였다.
Ⅲ. 결 과
1. 데이터 유의성 평가
데이터 유의성 평가 결과 Table 3과 같이 나이, 고위험 음주빈도, 1주일간 근력운동 일수, 신장, 체중, 허리둘레, 가족력 등은 통계적으로 유의하게 나타났으며(p<0.05), 류 마티스성 관절염 유병여부, 하루 평균 수면시간, 현재 흡연 여부는 유의하게 차이가 나타나지는 않았다(p>0.05).
2. 데이터셋 분류
폐경 여성의 골다공증 유병여부를 예측하기 위하여 1,995 명의 원천 데이터를 사용하였다. 이중 비골다공증 그룹은 1,310명이며, 골다공증 그룹은 685명이다. 머신러닝 분류 모델에 사용하기 위하여 원천 데이터를 홀드아웃 방법을 이 용하여 훈련데이터셋과 테스트데이터셋으로 랜덤하게 나누 었으며 7:3의 비율로 나누어 각각 1,396명, 599명의 데이터 를 사용하였다.
3. 예측모델 평가
골다공증 유병여부를 예측하기 위하여 훈련 데이터를 활 용하여 Decision tree, Random forest, GBM, XGBoost 분 류모델을 구축하였다. 생성한 모델에 테스트데이터를 적용 한 결과는 Table 4와 같이 혼동행렬로 나타난다. 예측력 평 가 결과 각 모델의 AUC는 Fig. 1과 같이 Decision tree 0.663, Random forest 0.704, GBM 0.702, XGBoost 0.710으로 나타났다. Table 5는 생성된 모델들에 대한 이진 분류 성능평가를 나타낸다.
4. 변수 중요도 평가 및 최적화
각 모델의 10개 독립변수가 골다공증 예측에 영향을 미친 정도는 Fig. 2와 같다. 결정 트리의 경우 나이 0.304, 체중 0.231, 신장 0.170, 허리둘레 0.136, 하루 평균 수면시간 0.068, 고위험 음주빈도 0.035, 1주일간 근력운동 일수 0.022, 가족력 등 0.020, 류마티스성 관절염 유병여부 0.007, 현재 흡연 여부 0.007이었으며 랜덤 포레스트는 나 이 0.268, 신장 0.203, 체중 0.202, 허리둘레 0.156, 하루 평균 수면시간 0.071, 고위험 음주빈도 0.036, 가족력 등 0.021, 1주일간 근력운동 일수 0.021, 현재 흡연 여부 0.012, 류마티스성 관절염 유병여부 0.010으로 나타났다. GBM은 나이 0.500, 체중 0.265, 신장 0.110, 허리둘레 0.061, 가족력 등 0.018, 1주일간 근력운동 일수 0.017, 하 루 평균 수면시간 0.013, 현재 흡연 여부 0.008, 고위험 음 주빈도 0.007, 류마티스성 관절염 유병여부 0.002로 나타 났으며 XGBoost는 나이 0.370, 체중 0.156, 가족력 등 0.098, 1주일간 근력운동 일수 0.084, 신장 0.078, 허리둘 레 0.060, 하루 평균 수면시간 0.056, 현재 흡연 여부 0.049, 고위험 음주빈도 0.048, 류마티스성 관절염 유병여 부 0.000으로 나타났다.
모델의 성능이 가장 좋게 평가된 XGBoost 모델에서 10개 독립변수를 하나씩 축소하여 평가한 결과 Fig. 3과 같이 7 개의 독립변수를 사용하였을 때 AUC가 가장 높았으며 이때 AUC는 0.750, 사용 변수는 나이, 체중, 가족력 등, 1주일간 근력운동 일수, 신장, 허리둘레, 하루 평균 수면시간이다.
Ⅳ. 고 찰
골다공증은 골 형성의 감소 및 골 파괴의 증가로 인하여 골량과 밀도가 낮아져 일상적인 충격에도 골절 위험이 높아 지는 질환이다[18,19]. 또한, 수년간 자각 증상 없이 진행되 므로 건강검진 중에 발견되는 경우가 많아 조기 검진으로 인한 예방이 필요하며 이를 위해 국민 건강 보험공단 일반 검진을 통하여 만 54세 여성과 만 66세 여성에 한하여 골밀 도 검사를 진행하고 있다[20]. 골다공증은 나이의 증가 및 생활습관 영향에 의해 골 소실 속도가 다르고 증상이 없기 때문에 더욱 주의 깊게 관찰할 필요가 있다. 특히 여성의 경 우 골밀도의 감소는 폐경을 전후로 가장 중요한 시점을 맞 이하게 되며 폐경 이후 에스트로겐 결핍에 의한 골 흡수의 증가와 장에서 칼슘의 흡수가 감소되어 골밀도 감소가 진행 된다[21]. 따라서 폐경 이후 골밀도 감소의 예측 및 골다공 증 예방에 관한 연구가 꾸준히 진행되어 왔다[22,23].
머신러닝 기술은 다양한 분야의 분류 및 예측에 활용되고 있으며, 질병 예측으로 범위를 넓혀가고 있다[24-26]. 본 연구는 트리기반 머신러닝 모델 4종의 골다공증 예측 성능 을 비교하였다. 트리기반 모델의 기본이 되는 결정 트리는 결과에 이르기 위해 예, 아니오를 반복하며 학습을 이어간 다. 랜덤 포레스트는 다수의 결정 트리를 이용하여 예측을 진행하며, GBM과 XGBoost는 이전 트리의 오차를 보완하 는 방식으로 학습하여 예측에 활용되며 XGB는 랜덤 포레스 트와 GBM보다 학습 속도가 빠르며 과적합이 잘 일어나지 않고 다른 알고리즘과 연계 활용성이 좋은 장점이 있다[27].
트리기반 모델 학습 결과 4개 모델 전부 나이가 골다공증 유병여부를 예측하는데 영향력이 가장 큰 변수였으며, 모델 별 AUC는 Decision tree 0.663, Random forest 0.704, GBM 0.702, XGBoost 0.710로 Decision tree를 제외하고 나머지는 비슷하였다. 가장 좋은 성능을 나타낸 XGBoost를 이용하여 변수를 순서대로 5개까지 줄여 학습시킨 결과 7개 의 변수를 사용했을 때 AUC는 0.750으로 가장 좋은 성능을 나타냈다. 머신러닝을 이용한 질병 예측을 다양한 질병에 적용한다면 질병의 사전 예측 및 예방에 기여할 수 있을 것 으로 생각된다. 본 연구에서는 10개의 독립변수를 사용하여 예측하였다. 머신러닝은 빅데이터를 활용하여 유용한 정보 의 추출 및 예측이 가능한 만큼 더 많은 변수들을 사용한다 면 모델 성능 향상 및 일정 수준의 예측 성능을 유지할 수 있는 최소 변수를 찾는데 유용하게 사용될 수 있을 것이다. 또한, 본 연구에서는 기본 모델을 사용하여 모델간의 성능 을 비교하였으나 머신러닝 모델은 사용자가 직접 세팅 가능 한 하이퍼 파라미터(Hyper parameter) 조절을 통하여 성 능을 향상시킬 수 있다. 하이퍼 파라미터는 정해진 값이 없 기 때문에 데이터의 종류와 회귀, 분류 등 예측결과의 종류 에 따라 적절히 조정해야 하며, 경험법칙(Rule of thumb) 또는 GridSearchCV 등을 이용하면 모델의 성능을 향상시 킬 수 있을 것으로 생각된다.
Ⅴ. 결 론
본 연구에서는 트리기반의 머신러닝 분류 알고리즘인 결정 트리(Decision tree), 랜덤 포레스트(Randon forest), GBM (Gradient boost machine), XGBoost(Extra gradient boost) 모델을 사용하여 폐경 이후 여성의 골다공증 유병여부를 예 측하였다. 신장, 체중, 가족력 등 10개의 독립변수를 이용하 여 예측을 진행하였으며 이용한 변수 중 골다공증 유병여부 를 예측하는데 영향력 가장 큰 변수는 나이로 나타났다. 또 한, 예측결과 XGBoost의 AUC가 0.710으로 가장 높았으며 변수를 줄여가며 평가한 결과 7개 변수를 사용하였을 때 AUC는 0.750으로 모델의 성능이 가장 높았다. 이러한 연구 의 결과는 다양한 질병의 예측에 적용될 수 있을 것으로 생 각되며, 향후 보건의료분야의 빅데이터 연구에 기초 자료로 활용될 것으로 기대된다.