HEALTH MACHINE LEARNING RESEARCH REPORT · 01

90-DAY READMISSION PREDICTION STUDY

90일 뒤의 건강을
예측한다는 것

판별력에서 확률 보정, 불확실성, 운영 의사결정과 인과추론까지. 미래 건강 예측을 작은 모델로 끝까지 검증한 학습 연구입니다.

AUTHOR diane-analyst
FIELD Health ML · UQ · Causal Inference
ISSUED 2026 · Seoul
보고서 열기

ABSTRACT / 연구 초록

좋은 건강 예측 모델은
맞히는 모델을 넘어, 믿고 행동할 수 있는 모델이어야 합니다.

합성 종단 건강 데이터로 90일 재입원을 예측했습니다. 무작위 holdout은 환자 단위로 분리했고, 테스트 데이터는 모델 선택이나 전처리에 사용하지 않았습니다. 시간 검증은 기존 환자의 미래 입원까지 예측하는 별도 질문으로 설계했습니다.

연구의 출발점은 Delphi-2M이 제시한 미래 건강 상태 예측이었지만, 포트폴리오의 초점은 거대 모델 복제가 아니라 평가 원리를 작게 끝까지 구현하는 데 두었습니다.

RESULTS / 핵심 결과

EXECUTIVE SUMMARY 연구 결과를 먼저 요약하면

현재 합성 데이터와 실험 조건에서는 로지스틱 회귀가 더 안정적이었고, 평균 성능 차이는 존재했지만 불확실성까지 고려하면 우위를 단정할 수 없었습니다.

01

10개 seed1 평균 AUROC2

0.694 Logistic3 · HGB4 0.657

Logistic이 10회 중 9회 높았습니다. 생성식이 로지스틱 구조와 가까운 합성 실험이라는 조건 안에서 해석했습니다.

02

Paired bootstrap5 ΔAUROC

+0.0499 95% CI6 −0.0004 ~ 0.0983

평균 차이는 양수지만 신뢰구간에 0이 포함되어 “명확한 우위”라고 결론 내리지 않았습니다.

03

상위 100건 집중관리

20/69건 Recall7 29.0% · Precision8 20.0%

기본 임계값 0.5의 recall 0%와 달리, 관리 역량을 기준으로 운영점을 정하면 실제 발견이 가능했습니다.

04

합성 관찰연구 IPTW9 ATE10

−3.75%p 95% CI −4.92 ~ −2.59%p

인과분석 절차는 완주했지만, 합성 데이터의 수치를 실제 임상 효과로 해석하지 않았습니다.

PRIMARY CONCLUSION

이 연구의 성과는 최고 점수 하나가 아니라, 누수 없는 검증 → 확률 보정 → 불확실성 → 운영 의사결정 → 인과의 경계를 하나의 판단 체계로 연결한 것입니다.

CONTENTS / 연구 구성

질문에서 결론까지

각 장은 앞 단계의 결과가 만든 다음 질문을 따라갑니다.

  1. 01데이터 설계정의·시점·품질 점검
  2. 02연구 흐름8단계 질문과 검증
  3. 03핵심 근거판별력·보정·불확실성
  4. 04운영 판단관리 건수와 임계값
  5. 05연구 판단지표를 읽는 원칙
  6. 06시간 검증기존 환자의 미래 입원 평가
  7. 07인과 확장예측에서 개입 효과로
  8. 08기여와 재현학습 과정·코드·검증 경로

01 / DATA DESIGN & QUALITY

모델보다 먼저 데이터의 의미와 시점을 고정했습니다.

한 행이 무엇을 뜻하는지, 각 변수가 언제 알 수 있는 정보인지, 어떤 검증을 통과했는지를 분석 전에 기록했습니다.

OBSERVATION UNIT 1행 = 한 환자의 한 번의 퇴원

환자 ID와 입원 ID를 분리해 반복 입원을 표현하고, 퇴원 시점을 예측 기준 시점으로 삼았습니다.

OUTCOME 퇴원 후 1–90일 비계획 재입원

입력에는 퇴원 시점까지 알 수 있는 정보만 사용하고 이후 정보는 제외했습니다.

RANDOM HOLDOUT 환자 중복 0명

같은 환자의 기록이 학습과 테스트에 동시에 포함되지 않도록 환자 ID 단위로 분할했습니다.

DATA PROVENANCE 합성 데이터임을 명시

파이프라인 학습용 데이터이며 실제 환자·임상 성능을 나타내지 않는다는 범위를 유지했습니다.

FEATURE REGISTER

9개 변수의 단위와 사용 가능 시점

변수의미단위측정 시점
age나이years기준 입원 시점
prior_admissions이전 입원 횟수count현재 퇴원 이전
length_of_stay_days입원 기간days현재 입원
comorbidity_count동반 질환 수count현재 퇴원까지의 이력
heart_rate_last최근 심박수beats/min퇴원 전 마지막 측정
systolic_bp_last최근 수축기 혈압mmHg퇴원 전 마지막 측정
glucose_last최근 혈당mg/dL퇴원 전 마지막 측정
creatinine_last최근 크레아티닌mg/dL퇴원 전 마지막 측정
lab_missing_fraction검사 결측 비율0–1현재 입원
QUALITY CONTROL LOG

확인한 것과 아직 확인하지 않은 것

  • CODE VERIFIED

    변수 사전과 모델 입력 9개가 일치하고, 설명과 단위가 비어 있지 않은지 검사했습니다.

  • TEST VERIFIED

    무작위 holdout의 환자 중복이 0명이고 결과 변수가 두 클래스를 포함하는지 검사했습니다.

  • NOTEBOOK VERIFIED

    시간 순서와 90일 간격을 확인했습니다. 시간 분할에는 기존 환자 215명이 포함된 범위를 기록했습니다.

  • NOT YET TESTED

    실제 EMR의 중복·단위 오류·코드 체계·결측 변화는 합성 데이터만으로 검증할 수 없습니다.

02 / RESEARCH STORYLINE

한 단계의 답이 다음 질문을 만들었습니다.

먼저 예측을 믿고 사용할 수 있는지 검증했습니다. 이후 미래 시점의 일반화 가능성을 확인하고, 개입 효과라는 별도의 인과 질문으로 확장했습니다.

  1. 01 · QUESTION

    연구 질문

    누가 퇴원 후 90일 안에 다시 입원할 가능성이 높은가?

  2. 02 · DESIGN

    데이터와 검증 설계

    환자 단위로 데이터를 나누고 미래 정보가 학습에 섞이는 누수를 차단했습니다.

  3. 03 · DISCRIMINATION

    모델 성능

    AUROC와 AUPRC11로 위험 환자의 순위를 구분하는 능력을 평가했습니다.

  4. 04 · CALIBRATION12

    확률의 신뢰도

    Brier Score13와 ECE14로 예측한 위험 확률을 실제 의사결정에 사용할 수 있는지 확인했습니다.

  5. 05 · UNCERTAINTY

    비교와 불확실성

    10개 seed와 paired bootstrap으로 모델 차이의 평균과 95% 신뢰구간을 계산했습니다.

  6. 06 · DECISION

    운영과 해석

    관리 가능 건수로 운영점을 정하고 변수 중요도와 환자별 예측 근거를 분리해 읽었습니다.

  7. 07 · TEMPORAL

    미래 시점 검증

    과거 입원으로 학습하고 이후 시점에서 평가해 미래 일반화 가능성을 확인했습니다.

  8. 08 · CAUSAL

    인과 질문으로 확장

    집중관리가 재입원을 줄이는지 성향점수, IPTW와 공변량 균형으로 별도 분석했습니다.

RESEARCH LOGIC

위험을 구분하는 모델에서 출발해 믿을 수 있는 확률과 실행 가능한 운영 기준을 확인한 뒤, 개입 효과라는 새로운 질문으로 넘어갔습니다.

03 / EVIDENCE

숫자보다 숫자를 읽는 방식

단일 최고 점수를 선택하지 않았습니다. 판별력, 확률 정확도, 반복 안정성과 제품 효용을 서로 다른 질문으로 평가했습니다.

LOGISTIC · AUROC 0.668

환자 위험 순위를 구분하는 능력

LOGISTIC · AUPRC 0.168

재입원율 6.97%의 불균형을 반영

BRIER SCORE 0.0629

예측확률과 실제 결과의 제곱오차

CALIBRATION SLOPE 0.840

이상적인 값 1에 대한 확률 보정 진단

평균 예측 확률과 실제 재입원율을 비교한 calibration curve
FIGURE 01 예측 확률은 실제 발생률과 얼마나 일치하는가

판단: 위험도가 낮은 구간에 관측이 집중됐으며, calibration slope15 0.840을 함께 보고 확률의 과신 가능성을 점검했습니다.

환자 수 500명, 2000명, 10000명에서 Brier Skill Score 평균과 표준편차를 비교한 막대그래프
FIGURE 02 표본이 커질수록 확률 예측의 안정성이 높아졌는가

판단: 평균 점수의 단조 상승보다, 500명에서 10,000명으로 갈수록 Brier Skill Score16의 반복 변동이 줄어든 점을 데이터 증가의 주된 효과로 보았습니다.

MODEL COMPARISON

복잡한 모델이 항상 이기지 않았습니다.

10 seeds
AUROC0.694 / 0.657
AUPRC0.169 / 0.147
Logistic HistGradientBoosting

Logistic은 AUROC 기준 10회 중 9회 우세했습니다. 다만 결과 생성식이 로지스틱 구조와 가까워 다른 데이터에서도 우세하다고 확장하지 않았습니다.

PAIRED BOOTSTRAP

“더 높다”와 “확실히 높다”는 다릅니다.

1,000×
−0.0200.050.10

+0.0499 mean difference

95% CI [−0.0004, 0.0983]

판단: 평균적으로 Logistic이 우세했지만 신뢰구간에 0이 포함됐으므로 모델 우위를 확정하지 않고 확률 품질과 운영 조건을 함께 비교했습니다.

MODEL-SPECIFIC EVIDENCE

두 모델은 서로 다른 변수에 의존했습니다.

Permutation importance17는 변수를 섞었을 때 AUPRC가 얼마나 감소하는지 보여주며, 인과효과가 아니라 예측 의존성을 나타냅니다.

로지스틱 회귀에서 나이와 이전 입원 횟수가 상위에 나타난 permutation importance 그래프
FIGURE 03 Logistic: 나이와 이전 입원 횟수의 영향이 컸습니다

나이·이전 입원 횟수의 중요도가 높았고, 일부 활력징후는 0에 가까운 변화량과 넓은 오차범위를 보였습니다.

비선형 모델에서 최근 혈당, 동반 질환 수, 나이가 상위에 나타난 permutation importance 그래프
FIGURE 04 HGB: 최근 혈당과 동반 질환 수를 더 강하게 사용했습니다

비선형 모델은 Logistic과 다른 순위의 변수를 활용했지만, 이러한 의존성이 더 나은 일반화 성능으로 이어지지는 않았습니다.

04 / FROM MODEL TO ACTION

운영자가 관리할 수 있는 입원 건수는 정해져 있습니다.

기본 임계값 0.5에서는 990건 모두를 저위험으로 판단했습니다. 정확도 93%였지만 재입원 69건을 단 한 건도 찾지 못했습니다.

평가 데이터에서 관리할 상위 입원 건수
발견한 재입원 20/69건
Recall 29.0%
Precision 20.0%
Precision lift18 2.87×

50건에서 100건으로 확대하면 정밀도 저하 없이 재입원 10건을 더 발견합니다. 이 구간이 가장 효율적인 확대였습니다.

집중관리 가능 건수가 50건에서 300건으로 증가할 때 recall은 증가하고 precision은 감소하는 선그래프
FIGURE 05 관리 범위를 넓히면 발견률은 올라가지만 정밀도는 낮아집니다

100건 이후에는 추가 관리량 대비 추가 발견 수가 감소했습니다. 임계값은 모델 속성이 아니라 비용과 인력까지 포함한 정책 변수입니다.

05 / RESEARCH JUDGMENT

제가 학습한 것은 모델보다 판단의 순서입니다.

01

Accuracy보다 실패 비용

불균형 데이터에서 93% 정확도가 실제로는 재입원 전부를 놓치는 결과일 수 있음을 혼동행렬로 확인했습니다.

02

확률은 보정되어야 함

위험 순위가 맞는 것과 20%라는 확률을 믿을 수 있는 것은 다른 문제이므로 ECE·Brier·slope를 함께 평가했습니다.

03

해석은 인과가 아님

변수 중요도와 개별 기여도는 모델이 의존한 정보이지, 개입하면 결과가 바뀐다는 증거가 아님을 구분했습니다.

04

한계를 결과에 포함

합성 날짜 기반 temporal validation과 합성 관찰 코호트의 인과효과를 실제 임상 효과로 확장하지 않았습니다.

INTERPRETABILITY

전체 모델의 방향과 한 환자의 예측 근거를 구분했습니다.

계수는 전체 데이터에서의 평균적 방향을, 개별 log-odds19 기여도는 특정 입원 건의 예측을 밀어 올리거나 내린 근거를 설명합니다.

로지스틱 회귀 표준화 계수로 이전 입원 횟수와 나이 등이 양의 효과를 보이는 그래프
FIGURE 06 모델 전체: 이전 입원 횟수와 나이가 위험을 높이는 방향이었습니다

표준화 계수의 부호와 크기로 다른 단위의 변수를 같은 기준에서 비교했습니다.

특정 입원 건에서 각 변수의 로지스틱 회귀 log-odds 기여도를 나타낸 막대그래프
FIGURE 07 개별 사례: 환자 1673-3의 위험 점수를 만든 근거

이전 입원 횟수와 나이가 위험도를 크게 올렸지만, 이는 해당 변수에 개입하면 결과가 바뀐다는 뜻은 아닙니다.

06 / TEMPORAL VALIDATION20

미래 시점에서도 같은 성능을 낼 수 있는가

무작위 분할만으로는 시간에 따른 데이터 변화를 확인할 수 없습니다. 입원 날짜를 기준으로 과거를 학습하고 이후 시점을 평가했습니다.

2020년부터 2023년까지 분기별 입원 건수 분포를 나타낸 선그래프
FIGURE 08 시간 분할 전에 입원 건수의 시점 분포를 확인했습니다

합성 날짜의 후반부에 입원 건수가 줄어드는 구조를 확인한 뒤, 90일 간격을 둔 학습·평가 구간을 정의했습니다.

무작위 분할과 시간 분할의 AUROC, AUPRC, Brier Skill Score를 비교한 막대그래프
FIGURE 09 이 합성 실험에서는 시간 분할 성능이 낮아지지 않았습니다

Temporal AUROC 0.678, AUPRC 0.181로 무작위 분할보다 높았지만, 실제 달력 변화가 없는 합성 데이터의 한계를 함께 기록했습니다.

VALIDATION SCOPE

이번 질문: 기존 환자의 과거 입원으로 학습해 그 환자의 미래 입원까지 예측할 수 있는가?

학습·평가 양쪽에 포함된 기존 환자는 215명이었습니다. 이는 이 질문에는 허용했지만, 완전히 새로운 환자에 대한 일반화 성능을 검증한 결과는 아닙니다.

07 / CAUSAL EXTENSION

“누가 위험한가?”에서 “무엇이 결과를 바꾸는가?”로

예측 실험 이후 별도의 합성 관찰 코호트에서 target trial, 교란변수, 성향점수21, 안정화 IPTW, SMD22, 환자 단위 bootstrap을 학습했습니다.

SCOPE NOTE

아래 결과는 인과추론 파이프라인 검증용 합성 데이터입니다. 실제 집중관리 프로그램의 임상효과로 해석하지 않습니다.

SIMULATED OBSERVATIONAL STUDY −3.75%p

IPTW-adjusted ATE

95% CI
−4.92 ~ −2.59%p
NNT23
약 27건
Resampling
환자 단위 bootstrap

07A / CAUSAL DIAGNOSTICS

효과 추정 전에 비교 가능한 집단인지 확인했습니다.

성향점수의 공통 지지 영역, 가중치의 극단값, IPTW 적용 전후 공변량 균형을 순서대로 진단했습니다.

일반관리군과 집중관리군의 추정 성향점수 분포가 겹치는 영역을 보여주는 히스토그램
FIGURE 10 두 관리군 사이에 비교 가능한 공통 지지 영역이 있었습니다

분포가 완전히 분리되지 않아 positivity24가 심각하게 위반되지는 않았지만, 양 끝 구간의 관측치에는 주의가 필요했습니다.

안정화 IPTW 가중치가 대부분 1 주변에 분포하고 일부 긴 오른쪽 꼬리를 보이는 히스토그램
FIGURE 11 안정화 가중치의 중심과 꼬리를 확인했습니다

대부분의 가중치는 1 근처였고 일부 큰 값이 존재했습니다. 극단 가중치가 효과 추정을 지배하는지 점검하는 단계입니다.

IPTW 적용 전후 공변량의 절대 표준화 평균차가 0.1 기준 아래로 감소한 Love plot
FIGURE 12 IPTW 적용 후 모든 관측 공변량의 SMD가 0.1 아래로 감소했습니다

가중 전에는 동반 질환 수·나이·이전 입원 횟수의 불균형이 컸지만, 가중 후 관측된 공변량 균형은 개선됐습니다. 미측정 교란까지 해결됐다는 의미는 아닙니다.

08 / CONTRIBUTION & REPRODUCIBILITY

무엇을 학습했고, 어디에서 확인할 수 있는가

결과 숫자만 제시하지 않고 학습 과정, 구현 근거, 도구 활용 범위를 함께 남겼습니다.

MY LEARNING

질문을 지표와 검증으로 바꾸었습니다.

244개 셀의 분석 노트북을 직접 실행하며 모델 비교, 확률 보정, 환자 단위 bootstrap, 운영 기준과 인과추론을 단계별로 학습하고 해석했습니다.

ENGINEERING EVIDENCE

반복할 수 있는 코드로 정리했습니다.

데이터·모델·평가·파이프라인을 모듈로 분리하고 uv 잠금 환경, 평가 산출물, 11개 자동 테스트와 12개 분석 그림을 저장했습니다.

TOOLING DISCLOSURE

AI를 학습과 구현 보조 도구로 사용했습니다.

개념 설명, 오류 추적과 웹 구현에 AI 지원을 활용했습니다. 분석 수치는 실행 결과로 확인하고, 결론의 의미와 한계를 이해한 뒤 제 언어로 정리했습니다.

NOTEBOOKanalysis.ipynb ↗

질문부터 인과 확장까지 전체 실행 기록

DATA CARDdocs/data_card.md ↗

변수 정의·단위·측정 시점·데이터 정책

MODEL CARDdocs/model_card.md ↗

모델 용도·평가·금지된 사용 범위

LOCAL VERIFICATION11 tests passed ↗

데이터·모델·평가·파이프라인 자동 검사

GitHub 저장소 보기 ↗

저장소는 비공개일 수 있으며, 검토가 필요한 경우 접근 권한을 제공할 수 있습니다.

NOTES / 용어 각주

분석에 사용한 용어

본문에서 처음 등장한 전문 용어를 이 연구에서 사용한 의미에 맞춰 설명했습니다.

  1. Seed

    데이터 분할이나 모델의 무작위성을 재현하기 위해 고정하는 숫자입니다. 여러 seed의 결과를 비교하면 특정 분할에만 좋은 모델인지 확인할 수 있습니다.

  2. AUROC

    모든 임계값에서 양성 환자를 음성 환자보다 높은 위험으로 정렬하는 능력입니다. 0.5는 무작위 수준이고 1에 가까울수록 좋습니다.

  3. Logistic regression

    변수의 가중합을 로지스틱 함수로 변환해 사건 발생 확률을 예측하는 선형 분류 모델입니다.

  4. HGB

    HistGradientBoosting의 약자입니다. 데이터를 구간화한 여러 결정트리를 순차적으로 결합해 비선형 관계를 학습합니다.

  5. Paired bootstrap

    같은 환자를 두 모델에서 함께 재표본추출해 성능 차이의 분포를 구하는 방법입니다. 모델 간 대응 관계를 유지합니다.

  6. 95% CI

    표본 변동을 고려한 추정값의 불확실성 구간입니다. 모델 차이의 신뢰구간에 0이 포함되면 우위가 명확하다고 보기 어렵습니다.

  7. Recall

    실제로 재입원한 환자 중 모델이 고위험으로 찾아낸 비율입니다. 민감도라고도 합니다.

  8. Precision

    모델이 고위험으로 선택한 환자 중 실제로 재입원한 비율입니다. 양성 예측도라고도 합니다.

  9. IPTW

    성향점수의 역수를 가중치로 사용해 관측된 교란변수의 분포가 비슷한 비교 집단을 만드는 방법입니다.

  10. ATE

    전체 대상자가 개입을 받았을 때와 받지 않았을 때의 평균 결과 차이입니다. 인과 가정이 충족되어야 효과로 해석할 수 있습니다.

  11. AUPRC

    Precision과 Recall의 관계를 임계값 전반에서 요약합니다. 이 연구의 코드는 선형 보간 면적이 아닌 average precision(AP)으로 계산했으며, 양성 사례가 적을 때 특히 유용합니다.

  12. Calibration

    예측 확률과 실제 발생률이 일치하는 정도입니다. 예를 들어 20%라고 예측된 집단에서 실제 약 20%가 발생하는지를 봅니다.

  13. Brier Score

    예측 확률과 실제 결과 사이의 제곱오차 평균입니다. 0에 가까울수록 확률 예측이 정확합니다.

  14. ECE

    확률 구간별 예측 확률과 실제 발생률의 차이를 가중 평균한 값입니다. 낮을수록 보정이 좋습니다.

  15. Calibration slope

    예측 위험의 퍼짐이 적절한지 보는 기울기입니다. 1이 이상적이며 1보다 작으면 예측이 지나치게 극단적일 가능성이 있습니다.

  16. Brier Skill Score

    전체 발생률만 예측하는 기준 모델보다 Brier Score가 얼마나 개선됐는지 나타냅니다. 0보다 크면 기준 모델보다 낫습니다.

  17. Permutation importance

    특정 변수의 값을 섞었을 때 성능이 얼마나 감소하는지 측정합니다. 모델의 예측 의존성을 뜻하며 인과효과는 아닙니다.

  18. Precision lift

    Precision을 전체 재입원율로 나눈 값입니다. 무작위 선택보다 고위험군을 몇 배 더 효율적으로 찾았는지 보여줍니다.

  19. Log-odds

    확률 p를 log[p/(1−p)]로 변환한 값입니다. 로지스틱 회귀에서는 변수별 기여도가 이 척도에서 더해집니다.

  20. Temporal validation

    과거 시점의 데이터로 학습하고 이후 시점의 데이터로 평가해 실제 미래 적용 상황을 흉내 내는 검증입니다.

  21. 성향점수

    관측된 공변량이 주어졌을 때 한 사람이 집중관리를 받을 확률입니다. 관찰연구에서 비교 집단을 조정하는 데 사용합니다.

  22. SMD

    두 집단의 공변량 차이를 표준화한 값입니다. 절댓값 0.1 미만을 양호한 균형의 실무적 기준으로 자주 사용합니다.

  23. NNT

    사건 한 건을 추가로 예방하기 위해 필요한 평균 개입 대상 수입니다. 절대위험감소의 역수로 계산합니다.

  24. Positivity

    같은 공변량 특성을 가진 사람에게 개입군과 비교군에 속할 가능성이 모두 존재해야 한다는 인과추론 가정입니다.

WHAT I LEARNED

예측 성능을 계산하는 데서 그치지 않고,
그 결과를 어디까지 믿고 사용할 수 있는지 검증하는 법을 배웠습니다.