임상시험·생존분석·GWAS를 연결하는 의료 통계 실무
임상시험 설계, Kaplan-Meier·Cox 생존분석, GWAS 품질관리와 재현성 체계를 의료 통계 실무 관점에서 정리합니다.
2026-08-14 · 최초 발행 2025-10-14
치료 효과와 유전적 위험을 해석하는 관점
의료 통계는 임상 의사결정의 근거를 만들고, 치료 효과의 추정을 정교하게 하며, 유전적 위험 요인을 찾는 데 쓰인다. 그 중심에는 임상시험(Clinical Trials), 생존분석(Survival Analysis), 전장유전체연관분석(GWAS, Genome-Wide Association Study)이 있다.
임상시험은 치료·예방·진단 개입의 유효성과 안전성을 평가하기 위한 설계·수행·분석 체계다. 무작위배정, 눈가림, 대조군, 사전에 정한 평가변수와 분석계획서(SAP)를 기반으로 운영한다.
생존분석은 사건이 발생하기까지의 시간과 검열(censoring)을 함께 다룬다. 비모수 방식인 Kaplan-Meier(KM) 추정과 준모수 방식인 Cox 비례위험(Cox PH) 회귀가 핵심 도구다.
GWAS는 전장 유전체에서 SNP 변이와 표현형 사이의 연관성을 탐색한다. 품질관리(QC), 인구집단 층화 보정, 다중검정 보정, 복제 연구가 하나의 통계 파이프라인으로 이어진다.
설계부터 분석계획까지 고정하는 임상시험
임상시험은 PICO를 정립한 뒤 주요·보조 평가변수를 두고, 비열등·동등·우월 설계 중 적합한 방식을 선택한다. 유의수준, 검정력, 효과크기, 이벤트 수를 반영한 표본수 산출도 이 단계에 포함된다.
운영 단계에서는 블록 또는 계층 무작위배정, 눈가림, 치료 할당 은닉화를 적용한다. 중간분석과 알파 소진(alpha-spending) 계획을 미리 세우고, SDTM/ADaM 데이터 표준과 eCRF·감사추적(Audit trail)을 함께 관리한다.
검열을 포함해 생존시간을 읽는 방법
Kaplan-Meier는 군 간 생존함수를 비교하고 로그순위(Log-rank) 검정을 적용하는 데 적합하다. 시간 불변 가정이 없다는 장점이 있지만 공변량을 조정할 수는 없다.
Cox PH는 공변량을 조정한 위험비(HR)를 해석할 수 있다. 대신 비례위험 가정을 확인해야 하며, Schoenfeld 잔차나 시-의존 공변량으로 가정 위반을 보정한다.
GWAS에서 결과보다 먼저 관리할 것
GWAS의 입력은 유전체 데이터(PLINK/VCF), 표현형, 그리고 나이·성별·PC·배치 같은 공변량이다. 전처리에서는 샘플과 변이의 결측, 이질성, HWE, 핍도를 점검하고, 관련성(IBD)과 혼입도 확인한다.
분석에서는 PC 또는 LMM으로 인구층화를 보정하고, 선형·로지스틱·혼합모형으로 연관성을 검정한다. Bonferroni/FDR 보정 뒤에는 임퓨테이션, 파인매핑, 복제를 거쳐 유의 변이와 화산도·만해튼 플롯, 유전자 세트·경로 분석, PRS 구축으로 결과를 확장한다.
재현성과 감사 대응을 분석 범위에 포함하기
사전등록과 SAP 준수, ITT/PP 분석셋 명시, MI/IPCW 결측 처리와 민감도 분석은 분석의 엄밀성을 지탱한다. 조기중단 기준과 안전성 데이터 모니터링 위원회(DSMB) 운영도 여기에 포함된다.
버전과 시드를 고정하고 컨테이너 기반 연구환경을 구성하면 재현성을 높일 수 있다. 데이터 권한과 보안 통제를 갖추고 ICH E6(R3)/E9(R1) 등 규제 가이드라인의 최신 정보를 확인해야 한다.
의료 데이터에서의 적용 맥락
항암 3상 임상에서는 OS/DFS를 주요 평가변수로 두고, 사건 기반 표본설계와 중간분석·알파 분할을 적용한다. Cox 회귀로 HR을 추정하고 층화 로그순위 검정을 사용한다.
의료기기 실증에서는 시간-의존 합병증 발생 위험을 비교하며, 다기관 계층 무작위배정과 안전성 우려 시 그룹순차 설계를 고려한다.
EHR·보험청구 데이터를 쓰는 RWD 기반 생존분석에서는 KM·Cox로 치료 전략을 비교하고 IPTW/경향점수 매칭을 적용한다. 우선순위 엔드포인트를 정의하고 검열 편향을 점검해야 한다.
GWAS 바이오마커 발굴은 품질관리와 인구층화 보정 후 연관성을 찾고, 독립 코호트에서 복제한 뒤 PRS 기반 위험 예측 모델링과 임상적 유용성 평가로 이어진다.
사건 기반 설계와 그룹순차를 도입하면 가정 의존적으로 총 표본수를 10~20% 절감할 수 있다. Cox HR과 조정 효과는 추정의 일관성과 해석 가능성을 높이고, 공변량 교정은 교란을 줄인다. Bonferroni/FDR은 거짓발견률 통제에 쓰이며, 게놈 팽창지수(λGC)는 1.02 내외 유지를 목표로 설정한다. SDTM/ADaM, 코드 버전관리, 컨테이너화는 리포팅 리드타임을 줄이고 감사 위험을 완화한다.
데이터에서 제출 결과까지의 흐름
분석 기법별 해석과 운영 부담
| 기법 | 주요 목적 | 가정/검정 | 해석/일관성 | 확장성/성능 | 운영 편의 |
|---|---|---|---|---|---|
| Kaplan-Meier + Log-rank | 군 간 생존함수 비교 | 독립·비정보성 검열, 위험비 일정 가정 없음 | 중앙생존시간·곡선 비교 용이 | 가벼운 계산, 대규모도 가능 | 공변량 조정 불가, 간단 운영 |
| Cox PH | 공변량 조정 HR 추정 | 비례위험 가정, Schoenfeld 검정 | 해석 용이, 편향 적음 | 수십~수백 변수 처리 가능 | 가정 검토·민감도 필요 |
| AFT(가속수명) | 시간 척도에서 효과 추정 | 분포 가정(로그정규 등) | 비PH 상황 해석 유리 | 분포 적합도 민감 | 적용·설명 난이도 중간 |
| GWAS(PC 보정) | SNP-표현형 연관성 | 독립성·층화 충분 보정 | 효과크기·P-값 일관성 확보 | 수백만 변이 처리 필요 | 파이프라인·QC 관리 필요 |
| GWAS(LMM) | 혼입/관련성 보정 | 무작위효과 가정 | λGC 안정, 거짓양성 감소 | 계산량 큼(분산축소 기법 필요) | 도구 세팅·자원 관리 요구 |
R과 PLINK로 확인하는 생존분석·GWAS
R 4.3+, survival 3.5+, survminer 0.4+ 환경에서 survival::lung 예시 데이터를 사용할 수 있다.
# install.packages(c("survival","survminer"))
library(survival)
library(survminer)
data(lung) # time: 생존일수, status: 1=검열 2=사망
lung$event <- ifelse(lung$status == 2, 1, 0)
# Kaplan-Meier 및 로그순위
fit_km <- survfit(Surv(time, event) ~ sex, data = lung) # sex: 1=남, 2=여
ggsurvplot(fit_km, risk.table = TRUE, conf.int = TRUE)
survdiff(Surv(time, event) ~ sex, data = lung) # log-rank
# Cox PH, 공변량 조정
fit_cox <- coxph(Surv(time, event) ~ age + ph.ecog + strata(sex), data = lung)
summary(fit_cox)
# PH 가정 검토
test_ph <- cox.zph(fit_cox)
print(test_ph)
plot(test_ph) # 시간-의존성 시각화
# 시나리오: PH 위반 시 대안
# - strata()로 층화, 시간의존 공변량(age:log(time) 상호작용) 고려 가능
fit_tvc <- coxph(Surv(time, event) ~ age + tt(age) + ph.ecog + strata(sex),
data = lung,
tt = function(x, t, ...) x * log(t + 1))
summary(fit_tvc)
PLINK 1.9+ 환경에서는 bed/bim/fam을 참조하고, covar.txt에는 PC·나이·성별을, phenotype.txt에는 표현형을 둔다.
# 품질관리
plink --bfile study \
--maf 0.01 --geno 0.02 --mind 0.02 \
--hwe 1e-6 midp \
--make-bed --out study.qc
# PCA (인구층화 보정)
plink --bfile study.qc --pca 10 --out study
# 로지스틱 연관성 (케이스/컨트롤), 공변량 포함
plink --bfile study.qc \
--pheno phenotype.txt --pheno-name disease \
--covar covar.txt --covar-name PC1,PC2,PC3,age,sex \
--logistic hide-covar beta \
--adjust --out study.gwas
# 결과: study.gwas.assoc.logistic, study.gwas.assoc.logistic.adjusted
입력 단계에서는 샘플·변이 누락률, 성별 불일치, 이질성(heterozygosity) 경계값 초과를 확인한다. 생존분석에서는 Schoenfeld 기반 PH 위반, 잔차·영향점, 멀티콜리니어리티를 점검한다. GWAS 결과는 λGC, QQ 플롯, 유효 표본 크기로 다중검정과 팽창 문제를 확인한다.
엄격한 통제와 분석 유연성 사이
임상시험에서는 사전등록과 SAP 고정, ITT 우선, 그룹순차·적응 설계의 알파 소진 관리, 데이터 모니터링 강화를 적용한다. 조기중단은 자원을 절감할 수 있지만 효과 과대추정 위험이 있고, 엄격한 결측 처리는 현실적 데이터 손실과 맞물린다.
생존분석에서는 층화 로그순위와 Cox의 상호작용·비선형(스플라인) 검토를 수행하며, 민감도·서브그룹 분석을 사전에 규정한다. 모델 단순성은 해석을 쉽게 하지만 예측력과는 긴장 관계에 있고, PH 위반 시 AFT/LMM 대체를 고려한다.
GWAS에서는 이중 QC, PC 또는 LMM 보정, 독립 코호트 복제, PRS 재현성 검증을 적용한다. 엄격한 QC는 거짓양성을 낮추지만 검정력을 저하시킬 수 있으며, LMM의 정밀도에는 계산비용이 따른다.