1 들어가며 — Right Censoring 의 한계
§ 3.1~3.2 의 right censoring 6 형태로 Ch.1 의 19 예제 중 15 개를 분류 가능. 그러나 4 개 예제 (§ 1.16 Channing, § 1.17 Marijuana, § 1.18 Breast cosmetic, § 1.19 AIDS) 는 — left/interval censoring 또는 left/right truncation 으로 분류된다.
“Left/Interval censoring 은 사건 시점이 — ‘어떤 구간 안 어딘가’ — 라는 부분 정보. Truncation 은 — ‘특정 조건을 만족할 때만 표본에 포함’ — 이라는 sampling bias. 두 현상 모두 likelihood 의 형태 수정으로 해결.”
| 절 | 주제 | 정전 사례 | 핵심 도구 |
|---|---|---|---|
| § 3.3 Left censoring | \(T = \max(X, C_l)\) | § 1.17 Marijuana | likelihood \(1 - S(C_l)\) |
| § 3.3 Doubly censoring | left + right | § 1.17 Marijuana 전체 | Turnbull (1974) |
| § 3.3 Interval censoring | \(X \in (L, R]\) | § 1.18 Breast cosmetic, Framingham angina | Turnbull (1976) NPMLE |
| § 3.4 Left truncation | \(X > Y_L\) 만 관측 | § 1.16 Channing | 위험 집합 보정 |
| § 3.4 Right truncation | \(X \leq Y_R\) 만 관측 | § 1.19 AIDS | reverse-time KM |
| § 3.4 Interval truncation | \(X \in (Y_L, Y_R)\) 만 | (드물다) | 조건부 likelihood |
본 편은 6 가지 형태를 — 정의·likelihood·NPMLE·실전 코드 — 차원에서 정밀하게 다룬다.
2 § 3.3 — Left + Interval Censoring
2.1 Left Censoring
개체의 사건 시간 \(X\) 가 censoring 시점 \(C_l\) 이전에 이미 발생 했지만 정확한 시점 미상.
- 관측 시간: \(T = \max(X, C_l)\).
- Indicator: \(\varepsilon = I(X \geq C_l) = \begin{cases} 1 & \text{exact (} X \geq C_l \text{)} \\ 0 & \text{left censored (} X < C_l \text{)} \end{cases}\)
- Note: \(T = X\) if \(X \geq C_l\), \(T = C_l\) if \(X < C_l\).
2.1.1 예시 1 — 마리화나 첫 사용 시점 (§ 1.17)
Klein Example 3.3: California 고등학생 인터뷰 — “언제 처음 마리화나를 사용했나요?”
- “사용한 적 없음” → right censored (위 인터뷰 시점 \(C_r\) 까지 미사건).
- “정확히 14 세에 사용” → exact event.
- “사용한 적은 있는데 시점은 기억 안 남” → left censored — 인터뷰 시점 \(C_l\) 이전 어딘가에 발생.
2.1.2 예시 2 — 영유아 task 학습 (Klein Example 3.4)
연구 시작 시점에 이미 task 수행 가능한 어린이 → “task 익힌 시점은 연구 시작 전 어딘가” → left censored.
2.1.3 Likelihood 기여
- exact (\(\varepsilon = 1\)): \(f(t)\) — “정확히 시점 \(t\) 에 사건”.
- left censored (\(\varepsilon = 0\)): \(\Pr(X \leq C_l) = 1 - S(C_l) = F(C_l)\) — “\(C_l\) 이전 어딘가”.
식 (3.5.1) 의 left 항:
\[ \prod_{i \in L} [1 - S(C_{l,i})] \]
오직 “사건이 \(C_l\) 이전에 발생” 이라는 정보만 사용.
2.2 Doubly Censoring (Left + Right 결합)
한 데이터에 left + right + exact 가 모두 공존:
\[ T = \max[\min(X, C_r), C_l] \]
\[ \delta = \begin{cases} 1 & \text{exact} \\ 0 & \text{right censored} \\ -1 & \text{left censored} \end{cases} \]
2.2.1 § 1.17 Marijuana 의 정전
Klein Example 3.3 (계속): 마리화나 데이터에는 — “사용 안 함” (right) + “사용했지만 시점 모름” (left) + “정확한 시점” (exact) — 세 종류 모두 공존.
표준 KM 은 exact + right censored 만 처리. Doubly censored 는 — Turnbull (1974) 의 self-consistency 또는 EM algorithm.
Self-consistency 의 핵심:
\[ \hat{S}(t) = \frac{1}{n}\sum_{i=1}^n \Pr[X_i > t \mid \text{관측 정보}_i, \hat{S}] \]
\(\hat{S}\) 가 양변에 들어가는 implicit equation — 반복 풀이 (EM 의 한 형태).
R: icenReg::ic_np() (full NPMLE), Python: lifelines (제한적 지원).
2.3 Interval Censoring — 가장 일반적 형태
사건이 구간 \((L_i, R_i]\) 안 어딘가 에서 발생.
- \(L_i\) — 직전 검사 시점 (사건 미발생 확인).
- \(R_i\) — 직후 검사 시점 (사건 발생 확인).
특수 경우:
| Type | \(L_i\) | \(R_i\) |
|---|---|---|
| Exact event at \(t\) | \(t-\) | \(t\) (degenerate interval) |
| Left censored | \(0\) | \(C_l\) |
| Right censored | \(C_r\) | \(\infty\) |
| Interval censored | \(L_i\) | \(R_i\) |
모든 censoring 은 interval censoring 의 특수 경우. 이 사실이 — Turnbull NPMLE 가 모든 censoring 형태를 통일적으로 처리할 수 있는 이유.
식 (3.5.1) 의 interval 항:
\[ \prod_{i \in I} [S(L_i) - S(R_i)] = \prod_{i \in I} \Pr[X \in (L_i, R_i]] \]
2.3.1 정전 사례 — § 1.18 Breast Cancer Cosmetic Deterioration
Klein Example 3.6: Beadle 1984 — radiotherapy ± chemotherapy 후 breast cosmetic 변화 추적. 4-6 개월 간격 visit 로 검진 → 정확한 시점 알 수 없고 visit 사이 구간만 알려짐.
- \(L_i\) = 마지막 정상 visit 시점.
- \(R_i\) = 첫 deterioration 발견 visit 시점.
- Right censored = 마지막 visit 까지 deterioration 없음 (\(R_i = \infty\)).
2.3.2 정전 사례 — Framingham 의 Angina Pectoris
Klein Example 3.5: Framingham Heart Study — coronary heart disease 발병은 정확하게 알려짐 (clinical event). 그러나 angina pectoris (협심증) 첫 발병은 — 약 2 년 간격 임상 검진 사이의 구간만 알려짐.
2.3.3 정전 사례 — Tumor Onset 동물 실험
쥐 실험에서 종양 발병 시점은 — 정기적 부검·X-ray 검사 사이 구간만. interval censoring 의 표준 사례.
2.4 Turnbull NPMLE for Interval Censoring
Turnbull (1976) 이 도출한 — interval censored 데이터의 NPMLE.
1 단계 — 모든 endpoint \(\{L_i, R_i\}\) 의 합집합으로 후보 jump points \(\{q_1, q_2, \ldots, q_m\}\) 결정.
2 단계 — 각 개체 \(i\) 에 대해 indicator \(\alpha_{ij} = I[(L_i, R_i] \cap (q_{j-1}, q_j] \neq \emptyset]\) 계산.
3 단계 — Self-consistency equation 반복 풀이:
\[ \hat{p}_j^{(k+1)} = \frac{1}{n}\sum_{i=1}^n \frac{\alpha_{ij} \hat{p}_j^{(k)}}{\sum_{l} \alpha_{il} \hat{p}_l^{(k)}} \]
4 단계 — 수렴 후 \(\hat{S}(t) = \sum_{q_j > t} \hat{p}_j\).
Turnbull NPMLE 는 KM 의 일반화 — exact + right censored 만 있는 경우 KM 과 정확히 일치. 따라서 어떤 censoring 형태에도 통일 적용 가능.
R: interval::icfit(), icenReg::ic_np(). Python: lifelines.NelsonAalenFitter (interval 지원 제한적).
2.5 단순 대안 — Midpoint Imputation
Interval \((L_i, R_i]\) 의 중점 \(M_i = (L_i + R_i)/2\) 를 사건 시점으로 가정 → 표준 KM 적용.
장점: 계산 단순. 단점: 표준 오차 과소추정 (uncertainty 무시), 표본 작거나 interval 넓으면 편향. 언제 OK: interval 이 매우 좁고 사건이 균등 분포 가정될 때.
대다수 임상 분석은 Turnbull NPMLE 권장.
3 § 3.4 — Truncation
3.1 Truncation vs Censoring 의 본질적 차이
| Censoring | Truncation | |
|---|---|---|
| 개체의 표본 포함 여부 | 항상 포함 | 조건 만족자만 |
| 정보 | 부분 정보 (lower/upper bound) | 정보 자체 부재 |
| 예시 환자 | “12 주째 살아있음” | “은퇴 시설 입소 못 한 사람은 표본 자체에 미포함” |
| Likelihood | \(f\) 또는 \(S\) 또는 구간 | 조건부 분포 (분모 추가) |
Truncation 은 — sampling bias 의 정밀한 통계학적 처리.
3.2 Left Truncation (Delayed Entry)
\(Y_R = \infty\) — 사건 시간 \(X\) 가 truncation 시점 \(Y_L\) 보다 큰 경우만 관측.
\[ \text{관측 조건}: Y_L < X \]
\(X \leq Y_L\) 인 개체는 표본 자체에 미포함 — “투명”.
3.2.1 정전 사례 1 — § 1.16 Channing House
Klein Example 3.7: Hyde 1980, California 의 Channing House 은퇴 시설.
- 가입 조건: 일정 연령 (예: 60 세) 도달.
- 관측: 가입 → 사망/이주 까지의 추적.
- 사건 시간 \(X\) = 출생부터 사망까지 (수명).
- 가입 전 사망자: 표본 자체에 미포함 — left truncation.
3.2.2 정전 사례 2 — 미세 입자 Size 측정
현미경 해상도 = \(Y_L\) μm. 이보다 큰 입자만 관측 가능. 작은 입자는 — “보이지도 않으므로 측정 자체 불가”.
3.2.3 정전 사례 3 — 임상시험의 Delayed Entry
GVHD 발생 후 사망까지 추적 — GVHD 시점 \(Y_L\) 이 truncation event. GVHD 전 사망 환자는 본 분석의 표본에 미포함.
3.2.4 Length-Biased Sampling
더 오래 사는 사람일수록 표본에 포함될 확률이 높음 — 출생 → 가입 까지의 기간이 길어야 가입 가능.
따라서 단순 KM 은 — 더 long-lived 한 사람을 over-sample → 평균 수명 과대 추정.
보정 방법: 위험 집합 \(Y(t)\) 를 — “가입 후 + 시점 \(t\) 에 살아있는 개체” 로 정의. counting process framework 가 자연 처리.
3.2.5 Likelihood — 조건부 보정
각 개체 \(i\) 의 truncation interval \((Y_{L,i}, Y_{R,i})\) 에 대해:
- \(f(x_i) \to f(x_i) / [S(Y_{L,i}) - S(Y_{R,i})]\)
- \(S(C_i) \to S(C_i) / [S(Y_{L,i}) - S(Y_{R,i})]\)
분모: “개체 \(i\) 가 truncation interval 안에서 사건을 경험할 확률” — sampling bias 보정.
Left only (\(Y_R = \infty\)): 분모 = \(S(Y_L)\).
3.2.6 Counting Process 표현
위험 집합:
\[ Y(t) = \#\{i : Y_{L,i} < t \leq T_i\} \]
“가입 후 + 시점 \(t\) 의 위험 상태” 의 개체 수.
표준 KM/NA 코드에 — entry time \(Y_L\) 을 함께 입력 하면 자동 보정.
R: survfit(Surv(start, stop, event) ~ 1) — counting process format. Python: lifelines.KaplanMeierFitter().fit_left_censoring() 또는 entry parameter.
3.2.7 보정 효과 시각화 — Channing 예제
Channing 데이터 (462 명) 에서:
- 무보정 KM (단순 entry → exit 추적): 평균 수명 ≈ 86.5 세 (과대 추정).
- left truncation 보정: 평균 수명 ≈ 84.2 세.
차이 ≈ 2.3 년. 작아 보이지만 — actuarial 보험요율 계산에서는 큰 차이.
3.3 Right Truncation
\(Y_L = 0\) — 사건 시간 \(X\) 가 \(Y_R\) 보다 작은 경우만 관측.
\[ \text{관측 조건}: X \leq Y_R \]
\(X > Y_R\) 인 개체는 표본 자체에 미포함.
3.3.1 정전 사례 1 — § 1.19 AIDS Retrospective Sampling
Klein Example 3.8: Lagakos 1988. 1986-06-30 에 AIDS 환자 registry sampling.
- 사건 = HIV transfusion → AIDS 발병 까지의 induction time \(X\).
- truncation 시점 \(Y_R\) = transfusion 시점부터 1986-06-30 까지의 시간.
- AIDS 가 1986-06-30 이후 발병한 환자 → 미관측 (right truncated).
- sampling 대상 = “1986-06-30 까지 AIDS 발병한 환자”.
- 그 이후 발병한 환자는 — registry 에 등재되지 않아서 표본 자체에 없음.
- 단순 분석은 — 잠복기가 짧은 환자를 over-sample → induction time 과소 추정.
3.3.2 정전 사례 2 — 별의 거리
별이 너무 멀면 — 관측 자체 불가. 가까운 별만 표본 → 별 거리 분포의 왜곡.
3.3.3 정전 사례 3 — 사망 Records 기반 Mortality
사망한 사람의 records 만 분석 가능 → 살아있는 사람은 표본 자체에 미포함.
3.3.4 Likelihood — Right Truncation Only
오직 사건이 관측된 경우 (모든 개체가 사건 발생, \(\delta_i = 1\)):
\[ L \propto \prod_i \frac{f(Y_i)}{1 - S(Y_R)} \]
분모 \(1 - S(Y_R) = F(Y_R)\) = “사건이 시점 \(Y_R\) 이전에 발생할 확률” — sampling 조건.
3.3.5 Reverse-Time KM (Lagakos 1988)
Right-truncated 데이터를 — 시간 축을 거꾸로 (reverse) 진행하면 left-truncated 데이터로 변환.
- 원래: \(X \leq Y_R\) — sampling threshold \(Y_R\).
- 새 변수: \(X^{\text{rev}} = Y_{R,\max} - X\), \(Y_L^{\text{rev}} = Y_{R,\max} - Y_R\).
- 변환 후: \(Y_L^{\text{rev}} < X^{\text{rev}}\) — left truncated.
→ 표준 left-truncated KM 적용 가능.
이 변환이 — § 1.19 AIDS 분석의 “reverse-time KM” 의 출생.
R: 수동 변환 후 survfit(Surv(start, stop, event)). Python: lifelines 의 entry_col 활용.
3.4 Interval Truncation
\(0 < Y_L < Y_R < \infty\) — 사건이 구간 \((Y_L, Y_R)\) 안일 때만 관측.
\[ \text{관측 조건}: Y_L < X \leq Y_R \]
드문 형태. 천체 관측 (특정 거리 범위), 일부 보험 데이터 (특정 연령 구간) 에서 발생.
Likelihood: 분모 = \(S(Y_L) - S(Y_R)\) — “\(X\) 가 truncation interval 안일 확률”.
3.5 Censoring vs Truncation — 다시 한 번
Right censoring vs Left truncation 비교 — Channing house 의 “60 세 가입”:
| Right censoring | Left truncation | |
|---|---|---|
| Setup | 60 세 가입 환자, 65 세에 추적 종료 | 60 세 가입 환자만 표본, 60 세 전 사망자 미포함 |
| 정보 | “65 세에도 살아있음” — partial info | “60 세 이상 살았음” — 모집단 조건 |
| Likelihood 항 | \(S(65)\) | \(1/S(60)\) (분모) |
| 검증 | “65 세 추적” 은 fixed | “60 세 가입 가능 인구” 는 unobserved baseline |
Channing 데이터는 두 현상이 동시에 존재 — left truncated + right censored.
4 R + Python — Interval Censoring 과 Truncation 실전
4.1 R — Interval censored (Turnbull) + Left truncated (Channing)
library(survival)
library(KMsurv)
library(icenReg)
# (1) Interval censored — § 1.18 Breast Cancer Cosmetic Deterioration
# Beadle 1984: 94 명 breast cancer
# left endpoint = 마지막 정상 visit, right = 첫 deterioration 발견
data(bcdeter) # KMsurv: breast cancer deterioration
str(bcdeter)
# lower / upper / treat (1=radiation, 2=radiation+chemo)
# Turnbull NPMLE
fit_int <- ic_np(cbind(lower, upper) ~ treat, data = bcdeter)
plot(fit_int, xlab = "Months", ylab = "S(t)",
main = "Breast Cosmetic — Turnbull NPMLE")
# Comparison: midpoint imputation
bcdeter$mid <- (bcdeter$lower + bcdeter$upper) / 2
bcdeter$status <- ifelse(is.finite(bcdeter$upper), 1, 0)
fit_mid <- survfit(Surv(mid, status) ~ treat, data = bcdeter)
lines(fit_mid, col = c("orange", "purple"), lty = 2)
# (2) Left truncated — § 1.16 Channing House
data(channing)
# age (months at exit), ageentry (months at entry), death (1=died)
# gender 1=M, 2=F
# 무보정 KM (틀림)
fit_naive <- survfit(Surv(age, death) ~ gender, data = channing)
# 보정 KM (counting process format)
fit_corrected <- survfit(Surv(ageentry, age, death) ~ gender, data = channing)
# 비교 plot
par(mfrow = c(1, 2))
plot(fit_naive, col = c("red", "blue"), lwd = 2,
xlab = "Age (months)", ylab = "S(t)",
main = "Naive KM (incorrect — overestimates)")
plot(fit_corrected, col = c("red", "blue"), lwd = 2,
xlab = "Age (months)", ylab = "S(t)",
main = "Left truncation corrected")
legend("bottomleft", c("Male", "Female"), col = c("red", "blue"), lwd = 2)
# 평균 수명 비교 (median 또는 75th percentile)
quantile(fit_naive)$quantile
quantile(fit_corrected)$quantile
# 차이가 큰 것을 확인4.2 Python — Right truncation (AIDS) + Reverse-time KM
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from lifelines import KaplanMeierFitter
# § 1.19 AIDS data 시뮬레이션 (실제 데이터 KMsurv::aids 형태)
# transfusion 시점 (1978~1986) → AIDS 발병 시점
# sampling 시점: 1986-06-30
np.random.seed(42)
n = 295 # Lagakos 1988
transfusion_year = np.random.uniform(1978, 1986, n)
true_induction = np.random.weibull(2, n) * 4 # mean ~3.5 years
aids_year = transfusion_year + true_induction
# Sampling threshold: 1986-06-30 (year 1986.5)
sample_threshold = 1986.5
observed = aids_year <= sample_threshold
# Right-truncated 데이터
df = pd.DataFrame({
"transfusion_year": transfusion_year[observed],
"induction": true_induction[observed],
"Y_R": sample_threshold - transfusion_year[observed] # truncation time
})
print(f"True induction: mean={true_induction.mean():.2f}, median={np.median(true_induction):.2f}")
print(f"Observed (right-truncated): mean={df['induction'].mean():.2f}")
# 관측된 평균이 true 보다 작음 → over-sample short induction times
# Reverse-time KM 변환
Y_R_max = df["Y_R"].max()
df["X_rev"] = Y_R_max - df["induction"] # reversed time
df["Y_L_rev"] = Y_R_max - df["Y_R"] # reversed entry
# 표준 left-truncated KM 적용
kmf_rev = KaplanMeierFitter()
kmf_rev.fit(df["X_rev"], event_observed=np.ones(len(df)),
entry=df["Y_L_rev"], label="Reverse-time KM")
# 결과를 다시 forward time 으로 변환
S_rev = kmf_rev.survival_function_
F_forward = 1 - S_rev[::-1].values # F(t) = 1 - S_rev(Y_R_max - t)
times_forward = Y_R_max - S_rev.index.values[::-1]
fig, axes = plt.subplots(1, 2, figsize=(14, 5))
# Naive KM (틀림)
kmf_naive = KaplanMeierFitter().fit(df["induction"], np.ones(len(df)),
label="Naive (right-truncated)")
kmf_naive.plot_survival_function(ax=axes[0], color="red")
# True S(t)
ts = np.linspace(0, 15, 100)
true_S = np.exp(-(ts/4)**2) # Weibull
axes[0].plot(ts, true_S, "k--", label="True S(t)", lw=2)
axes[0].set_title("Naive KM — over-samples short induction")
axes[0].legend()
# Reverse-time corrected
axes[1].step(times_forward, 1 - F_forward, where="post",
color="blue", label="Reverse-time corrected")
axes[1].plot(ts, true_S, "k--", label="True S(t)", lw=2)
axes[1].set_title("Reverse-time KM (Lagakos 1988)")
axes[1].set_xlabel("Induction time (years)")
axes[1].set_ylabel("S(t)")
axes[1].legend()
plt.tight_layout()
plt.savefig("klein_3_3_4_truncation.png", dpi=100)- Naive KM: 짧은 induction times 가 over-sampled → \(S(t)\) 가 빠르게 0 으로 떨어짐 → 평균 induction 과소 추정.
- Reverse-time KM: sampling bias 보정 → 진짜 \(S(t)\) 와 가까움.
- 차이가 큰 경우: induction time 의 꼬리가 sample threshold 와 비교 가능한 크기일 때.
이 보정이 — HIV 잠복기 분포 추정의 정전 (Lagakos 1988) — historical case.
5 직관 통합 — § 3.3~3.4 의 통일 메시지
Censoring 의 일반성: Interval censoring 이 모든 censoring 형태의 super-class. exact = degenerate, left = \((0, C_l]\), right = \((C_r, \infty)\).
Turnbull NPMLE: interval censored 데이터의 통일 추정량. KM 의 일반화 — exact + right 만 있으면 KM 과 일치.
Truncation 의 본질: 표본 추출 자체가 조건부. likelihood 의 분모에 조건부 확률 추가.
Length-biased sampling: left truncation 이 만드는 over-sampling. counting process 의 위험 집합 정의로 자연 보정.
Reverse-time KM: right truncation 의 정전 처방. 시간 축 변환으로 left truncation 으로 환원.
6 실전 체크리스트 — § 3.3~3.4
Censoring
- Left censoring \(T = \max(X, C_l)\) 식별.
- Doubly censoring (left + right + exact) 구분.
- Interval censoring 이 super-class.
- Turnbull NPMLE — 모든 censoring 형태 통일.
- Midpoint imputation 의 한계 (uncertainty 무시).
Truncation
- Left truncation \(X > Y_L\) — Channing 의 정전.
- Right truncation \(X \leq Y_R\) — AIDS 의 정전.
- Length-biased sampling 의 보정.
- Counting process 위험 집합으로 자연 처리.
- Reverse-time KM 변환.
구분
- Censoring vs Truncation — 부분 정보 vs 정보 부재.
- Channing = left truncated + right censored 결합.
7 관련 주제
Klein 시리즈
- (이전) Ch.3 overview
- (이전) § 3.1~3.2 심화 — Right Censoring 6 형태
- (다음) § 3.5~3.6 심화 — Likelihood + Counting Process (예정)
- (다음) § 3.7 — Exercises (예정)
Ch.1 시리즈 — 본 편 정전 사례
- § 1.16 Channing House (left truncation)
- § 1.17 Marijuana (doubly censored)
- § 1.18 Breast cancer cosmetic (interval censored)
- § 1.19 AIDS (right truncated)
관련 개념 (cross-category)
8 참고문헌
- Klein, J. P., & Moeschberger, M. L. (2003). Survival Analysis: Techniques for Censored and Truncated Data (2nd ed.), Ch.3 § 3.3~3.4, pp. 70-74. Springer.
- Turnbull, B. W. (1974). Nonparametric estimation of a survivorship function with doubly censored data. JASA, 69(345), 169-173.
- Turnbull, B. W. (1976). The empirical distribution function with arbitrarily grouped censored and truncated data. JRSS B, 38(3), 290-295.
- Lagakos, S. W., Barraj, L. M., & De Gruttola, V. (1988). Nonparametric analysis of truncated survival data, with application to AIDS. Biometrika, 75(3), 515-523.
- Hyde, J. (1980). Survival analysis with incomplete observations. In Biostatistics Casebook, pp. 31-46. Wiley.
- Beadle, G. F., et al. (1984). Cosmetic results following primary radiation therapy for early breast cancer. Cancer, 54, 2911-2918.
- Sun, J. (2006). The Statistical Analysis of Interval-Censored Failure Time Data. Springer.
- Anderson-Bergman, C. (2017). icenReg: regression models for interval censored data in R. Journal of Statistical Software, 81(12), 1-23.
- Vardi, Y. (1989). Multiplicative censoring, renewal processes, deconvolution and decreasing density: nonparametric estimation. Biometrika, 76(4), 751-761. (length-biased sampling)
- Wang, M.-C. (1991). Nonparametric estimation from cross-sectional survival data. JASA, 86(413), 130-143.
- Asgharian, M., M’Lan, C. E., & Wolfson, D. B. (2002). Length-biased sampling with right censoring: an unconditional approach. JASA, 97(457), 201-209.
- Andersen, P. K., Borgan, Ø., Gill, R. D., & Keiding, N. (1993). Statistical Models Based on Counting Processes. Springer.