1 들어가며 — Klein 13 Chapter 시리즈의 시작
본 편은 Klein & Moeschberger (2003) Survival Analysis: Techniques for Censored and Truncated Data (2nd ed.) 시리즈의 첫 chapter.
| Ch | 주제 |
|---|---|
| 1 | Examples of Survival Data (본 편) |
| 2 | Basic Quantities and Models |
| 3 | Censoring and Truncation |
| 4 | Nonparametric Estimation (Kaplan-Meier·Nelson-Aalen) |
| 5 | Other Sampling Schemes |
| 6 | Univariate Topics |
| 7 | Hypothesis Testing |
| 8 | Cox PH (Fixed Covariates) |
| 9 | Cox Refinements |
| 10 | Additive Hazards |
| 11 | Regression Diagnostics |
| 12 | Parametric Regression |
| 13 | Multivariate Survival |
- 시간-사건 데이터 (time-to-event data) 가 일반 회귀 데이터와 본질적으로 다른 이유는?
- 중도절단 (censoring) 과 절단 (truncation) — 이름이 비슷한 두 개념의 차이는?
- Klein 책 전체에서 반복 사용되는 19 표준 예제 의 공통 패턴은?
- 표준 데이터 구조 \((T_i, \delta_i, Z_i)\) 가 어떻게 다양한 응용을 통합하는가?
- Ch.1 의 예제들이 Ch.2~Ch.13 의 어떤 도구를 동기 부여하는가?
1.1 기존 생존 분석 개요 와의 차이
01-survival-overview.qmd: Kleinbaum & Klein (2012) 기반의 일반 입문.- 본 시리즈: Klein & Moeschberger (2003) 의 13 chapter 단위 깊은 정독.
Klein 의 강점:
- 수학적 엄밀성 (좌측·구간 절단 + 좌·우 truncation 모두 다룸).
- Counting process 기초 (martingale 이론 도입).
- 광범위 모델 (additive hazards 포함).
- 다양한 진단 도구.
2 § 1.1 시간-사건 데이터의 본질
2.1 결과 변수의 특수성
일반 회귀: \(Y = f(X) + \epsilon\), \(Y \in \mathbb{R}\).
생존분석: \(T \geq 0\) (시간), 보통 right-skewed.
문제 1 — 비음수 제약 (\(T \geq 0\)):
- 정규 회귀: \(\hat Y\) 가 음수 가능 → 시간 해석 불가.
- 해법: \(\log T\) 변환 또는 양수 분포 (Weibull, exponential).
문제 2 — 중도절단 (censoring):
- 일부 관측치는 \(T_i\) 의 정확한 값이 아닌 하한 (\(T_i \geq c_i\)) 만 알려짐.
- 정규 회귀: 이 정보 활용 불가 (또는 \(T_i = c_i\) 로 잘못 사용).
- 생존분석 고유의 likelihood 가 censoring 을 처리.
문제 3 — 시간 의존성:
- 위험 (hazard) 가 시간 따라 변함.
- 정규 회귀의 등분산 가정 위반.
→ 이 세 가지가 생존분석을 별도 방법론으로 만든다.
2.2 응용 분야
| 분야 | 사건 (event) | 시간 |
|---|---|---|
| 의학 | 사망·재발·감염 | 진단/치료 후 시간 |
| 생물학 | 동물 폐사·발병 | 실험 시작 후 |
| 역학 | 발병 | 노출 이후 |
| 공학 | 고장·내구성 | 사용 시간 |
| 경제 | 실업·계약 종료·이탈 | 등록 후 |
| 인구학 | 결혼·출산 | 연령 |
| 비즈니스 | 고객 이탈 (churn) | 가입 후 |
생존분석의 “사건” 은 사망일 필요 없음.
조건:
- 명확한 정의 (binary indicator).
- 시간 측정 가능 (시작점 + 사건 시점).
- once event (한 번 발생 후 추적 종료) — 또는 recurrent event (Ch.13 다중).
따라서 같은 도구가 의학·공학·경제·비즈니스 모두에 적용.
예: customer churn analysis = “이탈” 을 사건으로 정의한 생존분석.
3 § 1.1 (계속) 중도절단과 절단
Klein Ch.1 은 두 개념을 미리 직관적으로 도입 (엄밀 정의는 Ch.3).
3.1 중도절단 (Censoring) — 관측의 불완전
정의: 개체의 사건 시점이 특정 구간 안 에 있다는 것만 알려짐.
시나리오 A — Right Censoring (가장 흔함):
추적 시작 관측 종료
|─────────────● (사건 발생, T = 5)
|─────────────────────────| (T ≥ 10, 미발생)
↑ censoring 시점
시나리오 B — Left Censoring (드물음):
과거 (감염 시점 모름) 관측 시작
● |─────────● (사건 발견, T 알 수 없음)
↑ T 가 이 시점 이전임만 알려짐
시나리오 C — Interval Censoring:
검진 1 검진 2
| |
●─────────────────────● (사건이 두 검진 사이)
↑ ↑
T ≥ 검진1 시점 T < 검진2 시점
Missing data (전형적):
- 값 자체가 없음.
- “\(Y_i = ?\)”
Censoring:
- 값에 부분 정보.
- “\(T_i \geq 10\)” 또는 “\(T_i \in [a, b]\)”.
따라서 censoring 은 information 이 있는 missing. 이를 활용하는 것이 생존분석 likelihood 의 본질:
- Observed event \(T_i\): density \(f(T_i)\) 기여.
- Right censored \(T_i = c_i\): survival \(S(c_i)\) 기여.
Ch.3에서 엄밀히 다룬다.
3.2 절단 (Truncation) — 표본 추출의 편향
정의: 사건이 특정 영역에서 발생한 개체만 표본에 포함.
시나리오 D — Left Truncation (delayed entry):
실제 시작 (감염 시점) 등록 시점 관측 종료
● |─────────────●
↑ ↑
T 의 시작점 이 시점 이후 사건만 관측
→ 이 시점 전 사건 발생자는 표본에서 제외
시나리오 E — Right Truncation:
실제 시작 관측 마감
●─────────● (사건 발생, T = 3) ✓ 포함
●──────────────| (T 미발생) ✗ 제외
↑ 사건 미발생자는 표본에서 제외
Censoring: 개체는 표본 안에 있고, 사건 시점을 부분적으로 안다.
Truncation: 개체가 표본에 들어올 자격 자체가 사건 발생 시점에 의존.
→ Truncation 은 선택 편향 (selection bias) 의 한 형태.
처리 방법도 다름:
- Censoring: likelihood 에 \(S(c_i)\) 기여 추가.
- Truncation: likelihood 를 조건부 로 정의 (\(P(T \mid \text{선택됨})\)).
응용 예:
- Left truncation (의학): AIDS 진단 후 등록한 환자 — 진단 전 사망자는 등록 못 함 (편향).
- Right truncation (역학): 발병자만 retrospective 추적 — 미발병자는 표본 없음.
Ch.3 에서 정확히 정의·우도 유도.
4 § 1.2~1.10 핵심 9 데이터셋 카탈로그
Klein 책 전체에서 반복 사용되는 핵심 예제 9 가지.
4.1 § 1.2 Acute Leukemia 6-MP Trial (Freireich 1963)
- 데이터: 21 pair × 2 그룹 = 42 명.
- 사건: 백혈병 재발.
- 그룹: 6-MP (drug) vs placebo.
- 설계: matched pair (병원 + remission status 기준).
- Censoring: study 종료 시 미재발자.
Pair 별 재발 시간 (월):
| Pair | Placebo | 6-MP |
|---|---|---|
| 1 | 1 | 10 |
| 2 | 22 | 7 |
| 3 | 3 | 32+ |
| … | … | … |
+ = censored.
역사적 의의:
- Freireich et al. (1963) 의 6-MP 임상시험 — 최초로 randomized matched-pair 설계.
- 결과: 6-MP 가 placebo 보다 재발 시간 길게 지연 (의학적으로 큰 발견).
통계적 가치:
- 작은 데이터 (42 명) → 손계산 가능.
- Censoring 비율 적당 (약 30%).
- Matched pair → stratified test 의 표준 예제.
Klein 책에서:
- Ch.4: Kaplan-Meier·Nelson-Aalen 의 첫 예제.
- Ch.6.4: Bayesian density estimation 적용.
- Ch.7.5: Stratified log-rank test.
- Ch.9.3: Stratified Cox model.
4.2 § 1.3 Bone Marrow Transplantation (Copelan 1991)
- 데이터: 137 명 (99 AML + 38 ALL).
- 사건: relapse 또는 treatment-related death.
- 공변량: 환자/기증자 나이·성별, CMV status, FAB classification, prophylaxis 등.
- 다중 결과: aGVHD·platelet recovery 같은 intermediate event.
환자의 transplant 후 경로:
Transplant
├── aGVHD 발생
├── Platelet recovery
├── Relapse
└── Death (in remission)
→ Multistate model (Ch.9.5) 의 표준 시연.
또한 relapse vs death 가 competing risks (Ch.4.7).
4.3 § 1.4 Kidney Dialysis Infection (Nahman 1992)
- 데이터: 119 명, 두 그룹 (catheter 종류).
- 사건: 첫 exit-site infection.
- 그룹: surgically placed (43) vs percutaneous (76).
관찰: 두 그룹의 infection time 분포가 매우 다름 — log-rank test 가설 (\(H_0: S_1 = S_2\)) 의 표준 예제.
이 데이터에서 Cox PH 가정이 명확히 위반:
- 초반 (0~3 개월): percutaneous group 의 infection rate 매우 높음.
- 후반: 두 그룹 비슷.
→ time-varying covariate effect (Ch.9.2) 의 동기.
Klein 책에서:
- Ch.7.3: weighted log-rank test (가중치 선택의 영향).
- Ch.7.7: Cramer-von Mises test.
- Ch.9.2: PH 가정 검정 + time-varying effect.
4.4 § 1.5 Breast Cancer Trial (Sedmak 1989)
- 데이터: 45 명, 두 그룹.
- 사건: 사망.
- 그룹: immunoperoxidase (-) (36) vs (+) (9).
- 추적: 최소 10 년.
작은 그룹 차이 (9 vs 36) → likelihood 기반 분석의 challenge.
Klein 책에서:
- Ch.8: likelihood 함수 구성, Cox 2-sample test.
- Ch.10: additive hazards model.
4.5 § 1.6 Burn Patient Infection (Ichida 1993)
- 데이터: 154 명.
- 사건: staphylococcus 감염.
- 공변량: gender, race, burn severity (% surface), burn site (head·trunk·legs etc.), burn type (chemical·scald·electric·flame).
- 시간 의존 공변량: 절제술 시점, 항생제 투여 시점.
수술 (절제술) 의 효과를 분석할 때:
- 환자가 입원 후 언제 수술 받는지가 사건 시점에 영향.
- 시간 0 의 baseline covariate 가 아닌 t 시점에 변하는 covariate.
→ Ch.9.1 의 time-dependent Cox model 표준 예제.
4.6 § 1.7 Kidney Transplant Death (OSU 1982-1992)
- 데이터: 863 명, 9.47 년 추적.
- 사건: 사망.
- 그룹: 4 race × gender 조합 (white M·black M·white F·black F).
- 공변량: 이식 시 나이 (range 9.5 개월 ~ 74.5 세).
863 명 — Klein 책의 가장 큰 데이터셋 중 하나.
- Ch.6: kernel smoothing (continuous hazard estimate).
- Ch.8: 연속 covariate (age) 의 discretization.
큰 sample size 가 비모수 추정의 안정성·smoothing 의 우위를 시연.
4.7 § 1.8 Laryngeal Cancer (Kardaun 1983)
- 데이터: 90 명, 1970-1978 진단.
- 사건: 사망.
- 공변량: stage (I·II·III·IV — TNM 분류), 진단 시 나이, 진단 연도.
- 사용처: trend test (stage I → IV 단조 증가 가설).
Klein 책에서:
- Ch.7.4: trend test (ordinal stage).
- Ch.8: Cox + ANOVA-style decomposition + interaction.
- Ch.10: additive hazards.
- Ch.12: parametric AFT (accelerated failure-time).
4.8 § 1.9 Autologous vs Allogeneic BMT
- 데이터: 101 명 (51 auto + 50 allo).
- 사건: leukemia-free survival (relapse 또는 사망).
- 사용처: Cox diagnostics 표준 예제.
Klein 책에서:
- Ch.7: weighted log-rank·median test·t-test.
- Ch.11.3: martingale residuals.
- Ch.11.4: score residuals (PH 가정 검정).
- Ch.11.5: deviance residuals (outlier 검출).
- Ch.11.6: influence diagnostics.
- Ch.12.5: parametric model diagnostic plots.
4.9 § 1.10 Hodgkin/Non-Hodgkin Lymphoma BMT
- 데이터: 43 명 (Avalos 1993).
- 사건: 사망 또는 재발.
- 공변량: Karnofsky score (사전 건강 상태), 진단~이식 대기 시간.
- 층화: disease type (HOD vs NHL).
Karnofsky score 를 어떻게 모델링?
- 선형: \(\beta \cdot\) score.
- 비선형: spline 또는 binning.
- 어느 것이 적절?
→ Martingale residuals (Ch.11.3) 가 functional form 선택 도구. 본 데이터로 시연.
5 데이터 카탈로그 요약 표
| § | 데이터 | n | 사건 | 핵심 공변량 | 사용 chapter |
|---|---|---|---|---|---|
| 1.2 | Leukemia 6-MP | 42 | 재발 | matched pair | 4·6·7·9 |
| 1.3 | BMT (AML/ALL) | 137 | relapse·death | risk·age·sex·CMV | 4·6·7·8·9·11 |
| 1.4 | Kidney Dialysis | 119 | infection | catheter type | 7·8·9 |
| 1.5 | Breast Cancer | 45 | death | IH status | 8·10 |
| 1.6 | Burn | 154 | infection | burn site·time-dep | 8·9 |
| 1.7 | Kidney Transplant | 863 | death | age·race | 6·8 |
| 1.8 | Laryngeal Cancer | 90 | death | stage (ordinal) | 7·8·10·12 |
| 1.9 | Auto/Allo BMT | 101 | death | transplant type | 7·11·12 |
| 1.10 | Lymphoma BMT | 43 | death | Karnofsky | 7·11 |
§ 1.11~1.19 의 추가 9 예제 (Hodgkin’s·당뇨망막병증·정신과 입원·심부전·간이식 등) 도 같은 카탈로그 형식.
6 표준 데이터 구조
6.1 핵심 3 변수
각 개체 \(i = 1, \ldots, n\) 에 대해:
\[ (T_i, \delta_i, Z_i) \]
- \(T_i\): 관측 시간 (사건 시간 또는 censoring 시간).
- \(\delta_i \in \{0, 1\}\): 사건 indicator (\(1\) = 사건 발생, \(0\) = censored).
- \(Z_i \in \mathbb{R}^p\): 공변량 벡터.
복잡한 의료·공학 데이터를 단 3 변수로 추상화.
이 추상화의 가치:
- 다양한 응용 통합: 같은 도구가 의학·공학·경제 모두에 적용.
- Likelihood 정의: \(L(\theta) = \prod_i f(T_i)^{\delta_i} S(T_i)^{1-\delta_i}\).
- Software 표준: R
Surv(time, event)객체, Pythonlifelines.utils.datetimes_to_durations.
확장:
- Time-dependent covariate: \((T_i, \delta_i, Z_i(\cdot))\) — covariate 가 시간 함수.
- Counting process: \((N_i(t), Y_i(t), Z_i(t))\) — Ch.3 에서 도입.
- Competing risks: \((T_i, \epsilon_i, Z_i)\), \(\epsilon_i \in \{0, 1, \ldots, K\}\).
- Interval censoring: \((L_i, R_i, Z_i)\) — 두 시점 사이.
7 R + Python 코드 예제
7.1 R — survival 패키지
library(survival)
# 6-MP Leukemia 데이터 (Freireich 1963)
# 책의 Table 1.1
leukemia <- data.frame(
pair = rep(1:21, 2),
group = rep(c("placebo", "6-MP"), each = 21),
time = c(1, 22, 3, 12, 8, 17, 2, 11, 8, 12, 2, 5, 4, 15, 8, 23, 5, 11, 4, 1, 8,
10, 7, 32, 23, 22, 6, 16, 34, 32, 25, 11, 20, 19, 6, 17, 35, 6, 13, 9, 6, 10),
status = c(rep(1, 21),
1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0)
)
# Surv 객체 생성
surv_obj <- Surv(leukemia$time, leukemia$status)
print(head(surv_obj))
# 1 22 3+ 12 8 17 ...
# Kaplan-Meier 추정
km_fit <- survfit(surv_obj ~ group, data = leukemia)
print(km_fit)
plot(km_fit, col = c("blue", "red"), xlab = "Months", ylab = "Survival")
legend("topright", legend = c("6-MP", "placebo"), col = c("blue", "red"), lty = 1)
# Log-rank test
survdiff(Surv(time, status) ~ group, data = leukemia)
# Chisq= 16.8 on 1 degrees of freedom, p= 4e-057.2 Python — lifelines 패키지
import numpy as np
import pandas as pd
from lifelines import KaplanMeierFitter
from lifelines.statistics import logrank_test
import matplotlib.pyplot as plt
# 데이터
leukemia = pd.DataFrame({
"pair": list(range(1, 22)) * 2,
"group": ["placebo"] * 21 + ["6-MP"] * 21,
"time": [1, 22, 3, 12, 8, 17, 2, 11, 8, 12, 2, 5, 4, 15, 8, 23, 5, 11, 4, 1, 8,
10, 7, 32, 23, 22, 6, 16, 34, 32, 25, 11, 20, 19, 6, 17, 35, 6, 13, 9, 6, 10],
"status": [1]*21 + [1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0]
})
# Kaplan-Meier 추정 (그룹별)
fig, ax = plt.subplots(figsize=(8, 5))
for grp in ["placebo", "6-MP"]:
sub = leukemia[leukemia["group"] == grp]
kmf = KaplanMeierFitter()
kmf.fit(sub["time"], sub["status"], label=grp)
kmf.plot_survival_function(ax=ax)
ax.set_xlabel("Months")
ax.set_ylabel("Survival probability")
ax.set_title("6-MP vs Placebo (Freireich 1963)")
plt.tight_layout()
# Log-rank test
result = logrank_test(
leukemia[leukemia["group"] == "placebo"]["time"],
leukemia[leukemia["group"] == "6-MP"]["time"],
leukemia[leukemia["group"] == "placebo"]["status"],
leukemia[leukemia["group"] == "6-MP"]["status"]
)
print(f"Log-rank p-value: {result.p_value:.4e}")
print(f"Test statistic: {result.test_statistic:.3f}")R survival |
Python lifelines |
|
|---|---|---|
| 표준성 | 통계학계 표준 | ML/DS 통합 |
| 함수 | Surv(), survfit(), coxph() |
KaplanMeierFitter(), CoxPHFitter() |
| Multi-state | 풍부 (Ch.9 시연 가능) | 제한적 |
| Diagnostics | 풍부 (Ch.11) | 기본 |
| AFT models | survreg() |
WeibullAFTFitter 등 |
권장:
- 순수 통계 분석: R
survival(Klein 책 코드와 일치). - ML 파이프라인 통합: Python
lifelines. - 둘 다 가능:
lifelines가 R 의 70~80% 기능, 모던 API.
본 시리즈에서는 두 언어 모두 병행 제시 (Bayesian Appendix C 패턴).
8 Ch.1 → Ch.2~Ch.13 의 연결
8.1 다음 chapter 예고
| 다음 ch | 다룰 내용 | Ch.1 의 어느 데이터로 시연? |
|---|---|---|
| 2 | \(S(t), h(t)\), parametric models | 일반 |
| 3 | Censoring·truncation 엄밀 정의 + likelihood | 모든 |
| 4 | Kaplan-Meier·Nelson-Aalen | § 1.2 (Leukemia), § 1.3 (BMT) |
| 5 | Interval·double·right truncation | § 1.4 등 |
| 6 | Kernel hazard estimate | § 1.7 (Kidney Transplant) |
| 7 | Log-rank·trend test | § 1.4 (Dialysis), § 1.8 (Laryngeal) |
| 8 | Cox PH | § 1.5 (Breast), § 1.8 (Laryngeal) |
| 9 | Time-dependent·multistate | § 1.6 (Burn), § 1.3 (BMT) |
| 10 | Additive hazards | § 1.5, § 1.8 |
| 11 | Diagnostics | § 1.9 (Auto/Allo BMT) |
| 12 | Parametric AFT | § 1.8, § 1.9 |
| 13 | Multivariate | TBD |
이 chapter 의 핵심:
- 데이터의 다양성 을 본다 — 의학 9 예제로 충분히 광범위.
- 공통 추상화 발견 — 모든 데이터가 \((T_i, \delta_i, Z_i)\) 로 표현.
- Censoring·truncation 의 직관 — 이후 모든 chapter 의 출발점.
- 데이터-도구 매핑 — 각 데이터가 어느 도구를 동기 부여.
따라서 Ch.1 은 단순 카탈로그가 아닌 책 전체의 로드맵.
9 실전 체크리스트 — Ch.1
데이터 이해
- 시간 출발점 명확화 (진단·치료·이식 시점).
- 사건 정의 명시 (사망·재발·감염 등).
- 추적 종료 시점 결정 (study end·follow-up loss).
Censoring·Truncation 식별
- Right censoring 확인 (대부분).
- Left/interval censoring 가능성 점검 (drug onset, periodic check).
- Left truncation 가능성 (delayed entry, 등록 후 추적).
데이터 구조
- \((T_i, \delta_i, Z_i)\) 형식으로 변환.
- 시간 의존 공변량 분리 (필요 시).
- 층화 변수 식별 (treatment 와 confounder 구분).
EDA
- 그룹별 sample size + censoring 비율.
- 시간 분포 시각화 (histogram).
- KM 곡선 (그룹별).
- 공변량 distribution (numerical/categorical).
다음 단계
- Ch.2: \(S(t), h(t)\) 의 추정 대상 정의.
- Ch.3: censoring·truncation 의 likelihood 정확히.
- Ch.4: KM·NA 비모수 추정.
10 관련 주제
Klein 시리즈
- § 1.1~1.2 심화 — Introduction · Leukemia 6-MP Trial
- § 1.3~1.4 심화 — BMT (multistate) · Kidney Dialysis (PH 위반)
- § 1.5~1.6 심화 — Breast Cancer (additive hazards) · Burn (multi-covariate + time-dep)
- § 1.7~1.8 심화 — Kidney Transplant (kernel smoothing) · Laryngeal Cancer (ordinal stage + AFT)
- § 1.9~1.10 심화 — Auto/Allo BMT (Cox 진단) · Lymphoma BMT (stratified test) + Ch.1 결산
- § 1.11~1.12 심화 — Tongue Cancer (DNA ploidy) · STD Reinfection (variable selection)
- § 1.13~1.14 심화 — Pneumonia · Weaning (NLSY: causal vs predictive + cohort life table)
- § 1.15~1.16 심화 — Psychiatric · Channing House (Left Truncation)
- § 1.17~1.18 심화 — Marijuana (Doubly Censored) · Breast Cancer (Interval Censored)
- § 1.19 심화 — AIDS (Right Truncation) + Ch.1 시리즈 결산
- (다음) Ch.2 — Basic Quantities and Models
기존 입문
관련 개념 (cross-category)
11 참고문헌
- Klein, J. P., & Moeschberger, M. L. (2003). Survival Analysis: Techniques for Censored and Truncated Data (2nd ed.), Ch.1. Springer.
- Freireich, E. J., Gehan, E., Frei, E., et al. (1963). The Effect of 6-Mercaptopurine on the Duration of Steroid-Induced Remissions in Acute Leukemia. Blood, 21(6), 699-716.
- Copelan, E. A., Biggs, J. C., Thompson, J. M., et al. (1991). Treatment for Acute Myelocytic Leukemia with Allogeneic Bone Marrow Transplantation. Blood, 78(3), 838-843.
- Nahman, N. S., Middendorf, D. F., Bay, W. H., et al. (1992). Modification of the Percutaneous Approach to Peritoneal Dialysis Catheter Placement. Journal of the American Society of Nephrology, 3(1), 103-107.
- Sedmak, D. D., Meineke, T. A., Knechtges, D. S., & Anderson, J. (1989). Prognostic Significance of Cytokeratin-Positive Breast Cancer Metastases. Modern Pathology, 2, 516-520.
- Ichida, J. M., Wassell, J. T., Keller, M. D., & Ayers, L. W. (1993). Evaluation of Protocol Change in Burn-Care Management. Statistics in Medicine, 12(3-4), 301-310.
- Kardaun, O. (1983). Statistical Survival Analysis of Male Larynx-Cancer Patients. Statistica Neerlandica, 37(3), 103-125.
- Avalos, B. R., Klein, J. L., Kapoor, N., et al. (1993). Auto vs Allo BMT for HOD/NHL. Bone Marrow Transplantation.
- Kleinbaum, D. G., & Klein, M. (2012). Survival Analysis: A Self-Learning Text (3rd ed.). Springer.
- Therneau, T. M., & Grambsch, P. M. (2000). Modeling Survival Data: Extending the Cox Model. Springer.
- Davidson-Pilon, C. (2019). lifelines: Survival Analysis in Python. Journal of Open Source Software, 4(40), 1317.