1 5.7 — Person-Years Approach
가변 추적의 일반화된 분석 단위. 각 개인이 위험 상태에 있던 시간을 합산하여 분모로 사용 (Woodward, 2014, Ch.5.7).
각 개인 \(i\) 의 위험 노출 기간: \[ \text{PY}_i = T_{\text{end}, i} - T_{\text{start}, i} \]
총 인-년: \[ \text{Total PY} = \sum_{i=1}^{N} \text{PY}_i \]
발생률 (Incidence Rate, IR): \[ \text{IR} = \frac{\text{사건 수}}{\text{Total PY}} \]
1.1 수식의 의미 — 시간 단위의 표준화
- 추상: 한 사람을 1 년 추적 = 두 사람을 6 개월씩 추적 = 1 person-year. 분모를 person-year 로 두면 추적 길이 차이가 자동 흡수.
- 일상어 비유: 직원 5 명을 6 개월 = 1 명을 30 개월 = 30 person-month. 임금이 같다.
- 반사실: 분모를 단순 인 단위로 두면 6 개월 추적자도 30 개월 추적자도 같은 분모 1 → 짧은 추적자의 위험률이 부풀려 보임. PY 분모가 이 왜곡 흡수.
1.2 발생률의 가정
가설: 한 사람의 위험률이 추적 기간 내내 일정. 즉 \(h(t) = \lambda\) (Poisson 분포 가정).
3 단계 직관:
- 추상: 사건 수 \(D \sim \text{Poisson}(\lambda \cdot \text{PY})\).
- 일상어 비유: 일정한 비율로 빗방울이 떨어지는 우산 — 시간 단위당 일정한 빗방울 수.
- 반사실: 만약 위험률이 시간에 따라 변하면 (예: 건강 인자가 개선되면서 ↓), 평균 IR 은 시간 평균을 보지 진성 hazard 패턴은 가린다. 시간 의존 분석(KM, Cox) 이 더 정확.
1.3 95% 신뢰구간 — Poisson 정확 CI
발생률의 신뢰구간은 사건 수의 Poisson 분포에서 직접 산출 (Woodward, 2014, Ch.5.7).
대표본 근사: \[ \text{IR} \pm 1.96 \sqrt{\frac{\text{IR}}{\text{Total PY}}} \]
소표본 정확 CI (사건 수 \(D\) 가 작을 때): \[ \text{IR}_{\text{lo}} = \frac{\chi^2_{2D, 0.025}/2}{\text{Total PY}}, \quad \text{IR}_{\text{hi}} = \frac{\chi^2_{2(D+1), 0.975}/2}{\text{Total PY}} \]
여기서 \(\chi^2_{k, \alpha}\) 는 자유도 \(k\) 의 카이제곱 분포의 \(\alpha\) 분위수.
1.4 Incidence Rate Ratio (IRR)
두 군의 발생률 비: \[ \text{IRR} = \frac{\text{IR}_1}{\text{IR}_0} = \frac{D_1 / \text{PY}_1}{D_0 / \text{PY}_0} \]
\(\log(\text{IRR})\) 의 분산 (대표본): \[ \text{Var}(\log \text{IRR}) = \frac{1}{D_1} + \frac{1}{D_0} \]
95% CI: \[ \exp\left( \log \text{IRR} \pm 1.96 \sqrt{\frac{1}{D_1} + \frac{1}{D_0}} \right) \]
- 추상: 모두 두 군의 위험을 비교하는 비율 지표. 차이는 분모 시간 단위.
- 일상어 비유:
- RR = “10 년 안에 사건 발생할 누적 확률 비”.
- IRR = “단위 시간(연·월) 당 사건 발생 비율 비 (시간 일정 가정)”.
- HR = “현 시점에서의 순간 위험률 비 (시간 변동 허용)”.
- 반사실: 사건이 희귀하면 IRR ≈ HR ≈ RR. 사건이 흔하거나 위험률이 시간에 따라 변하면 세 값이 갈라짐. 정확한 비교는 hazard 모형(Cox).
1.5 Direct Standardization with Person-Years
여러 연령대 또는 calendar period 가 섞인 코호트의 IR 비교 시, 표준 인구의 weight 로 가중 평균.
\[ \text{IR}_{\text{standardized}} = \sum_a w_a \cdot \text{IR}_a \]
여기서 \(w_a\) 는 표준 인구의 연령군 \(a\) 의 비율, \(\text{IR}_a\) 는 자료의 연령군 \(a\) 의 발생률.
자세한 표준화 분석은 WOO Ch.4.5~4.6 (Phase B B43~B46) 에서 본격 다룸.
1.6 IT 대응 — User-Time
| Person-Year | IT 대응 |
|---|---|
| \(\sum_i \text{PY}_i\) | Total user-month, total session-time |
| IR = 사건/PY | Churn rate per user-month |
| IRR | A/B 테스트의 lift 의 시간 단위 표현 |
A/B 테스트의 funnel 분석에서, 사용자가 실험에 머문 기간이 다를 때 person-day 가중 분석이 person-year 의 IT 판이다.
1.7 코드 예시 — Person-Year 분석
import numpy as np
import pandas as pd
from scipy import stats
np.random.seed(42)
n = 2000
# 두 군의 추적 기간 (uniform 1~10 년)
factor = np.random.binomial(1, 0.5, n)
T_max = np.random.uniform(1, 10, n)
# 진성 IR: factor=0 일 때 0.05/yr, factor=1 일 때 0.075/yr (IRR=1.5)
true_lambda = np.where(factor == 1, 0.075, 0.05)
event_time = np.random.exponential(scale=1/true_lambda)
event = (event_time <= T_max).astype(int)
PY_i = np.minimum(event_time, T_max)
# 군별 합계
df = pd.DataFrame({
"factor": factor, "PY": PY_i, "event": event,
})
agg = df.groupby("factor").agg(D=("event", "sum"), PY_total=("PY", "sum"))
agg["IR"] = agg["D"] / agg["PY_total"]
print(agg)
# IRR 와 95% CI
D1, PY1 = agg.loc[1, "D"], agg.loc[1, "PY_total"]
D0, PY0 = agg.loc[0, "D"], agg.loc[0, "PY_total"]
IRR = (D1 / PY1) / (D0 / PY0)
log_IRR_se = np.sqrt(1/D1 + 1/D0)
lo = np.exp(np.log(IRR) - 1.96 * log_IRR_se)
hi = np.exp(np.log(IRR) + 1.96 * log_IRR_se)
print(f"IRR = {IRR:.2f} (95% CI: {lo:.2f} ~ {hi:.2f})")
# Wald z 검정 (귀무: IRR=1)
z = np.log(IRR) / log_IRR_se
p = 2 * (1 - stats.norm.cdf(abs(z)))
print(f"Wald z = {z:.2f}, p = {p:.4f}")해석: 진성 IRR 1.5 에 가까운 추정과 작은 p-값. Person-year 분모가 추적 기간 차이를 정확히 반영.
2 5.8 — Period-Cohort Analyses
긴 추적 코호트는 calendar period 와 cohort age 의 두 시간 차원을 동시에 갖는다.
- Age (A): 개인의 나이 (또는 baseline 후 elapsed time).
- Period (P): 달력 시점 (calendar year).
- Cohort (C): 출생 연도 (또는 등록 연도).
핵심 항등식: \[ A + C = P \]
세 변수가 선형 종속.
2.1 APC 모형의 식별 문제
APC 모형: \[ \log h(t) = \alpha_A + \beta_P + \gamma_C \]
\(A + C = P\) 이므로 \(A, P, C\) 의 선형 효과를 동시 추정 불가 — 식별 안 됨.
3 단계 직관:
- 추상: 디자인 행렬 \(X\) 에 세 컬럼을 동시 넣으면 \(X\) 가 rank deficient. 일반 OLS·MLE 가 unique 해 없음.
- 일상어 비유: 누군가의 학년·연도·생년월일 중 두 개를 알면 나머지 결정. “첫 두 개의 효과 + 마지막의 효과” 로 모형이 분해되지 않음.
- 반사실: 세 효과 중 하나가 비선형이라면 (예: \(\alpha_A = f(A)\), \(f\) 가 비선형) 식별 가능. 또는 한 효과를 0 으로 가정하거나, 외부 정보로 제약 부여.
2.2 부분 식별 전략
| 전략 | 가정 | 한계 |
|---|---|---|
| 연령 효과 0 | 일정 연령 범위에서 효과 없음 | 강한 가정 |
| Smoothed APC | 한 효과를 평활화하여 비선형으로 만듦 | 임의성 |
| 2-차원 분석 | 세 중 하나 고정 (예: cohort × period) | 정보 일부 손실 |
| Intrinsic Estimator | Penrose-Moore pseudo-inverse | 해석 까다로움 |
| 외부 정보 | Hierarchical Bayes 로 prior 부여 | Prior 의존 |
2.3 Cohort Effects 의 의미
같은 코호트 (예: 1950 년 출생) 가 평생에 걸쳐 공유하는 노출. 즉 출생 시점의 사회·환경 조건이 만든 효과.
- 흡연 코호트 효과: 1940 년대에 태어난 남성이 청년기에 군 복무를 통해 흡연 시작 → 평생 흡연 누적.
- 출생 시 영양 코호트 효과: 1944~1945 네덜란드 기근 출생자의 평생 만성질환 위험 (Dutch Famine cohort).
- 백신 코호트 효과: 풍진 백신 도입 후 출생 코호트의 풍진 회복 패턴.
이런 효과는 calendar period 만으로 잡히지 않고, 출생 코호트 변수가 필요하다.
2.4 Period Effects 의 의미
특정 달력 시점에 모든 코호트가 공유하는 노출. 의료 표준 변화, 진단 기준 개정, 새 약 도입 등.
- 항생제 도입 (1940 년대): 모든 출생 코호트의 감염병 사망률이 동시에 감소.
- 암 진단 도구 향상: 진단율 자체가 시간에 따라 증가하여 발생률 증가가 진성 변화인지 진단 변화인지 모호.
- HIV 진단 기준 변경 (CDC 1993): 정의 변경으로 모든 코호트의 보고 발생률이 동시에 점프.
2.5 도구로서의 Lexis Diagram
각 개인의 인생 궤적을 age vs calendar 평면의 대각선으로 표현. APC 의 시간 차원을 시각화.
Age
80 │ ╱
70 │ ╱
60 │ ╱
50 │ ╱
40 │ ╱
30 │ ╱ Cohort 1970
20 │
0 └──────────────────────────→ Calendar
1990 2000 2010 2020
대각선 = 한 사람의 인생. 수직선 = 한 시점에 모든 연령. 수평선 = 한 연령에 모든 시점. 정사각형 셀이 PY 가중 분석의 단위가 됨.
2.6 Period-Cohort Analyses (Woodward 의 단순화)
Woodward 는 APC 의 식별 문제를 우회하기 위해 period 와 cohort 두 차원만 다루는 분석을 자주 사용한다 (2014, Ch.5.8). Calendar year 별로 코호트 PY 를 계산하고, 발생률 추세를 cohort × period 표로 시각화.
Period
1990 2000 2010
Cohort
1950 0.08 0.10 0.12
1960 0.06 0.08 0.10
1970 0.04 0.06 0.08
1980 0.03 0.04 0.06
이 표에서 같은 cohort 의 행을 따라가면 age effect (시간에 따라 ↑), 같은 period 의 열을 따라가면 cohort effect (오래된 cohort 가 ↑), 대각선이 같은 age 에서의 period effect.
3 SHHS APC 분석 사례
SHHS 코호트 (1984~1987 등록, 추적 ~12 년) 에서 흡연-CHD RR 분석.
- Age effect: 연령 ↑ 와 함께 CHD 위험 ↑ (생물학적 효과).
- Period effect: 1990 년대 statin 처방 확산으로 CHD 위험 전반 ↓ (의료 표준 변화).
- Cohort effect: 1930 년대 출생 남성의 청년기 군 복무 흡연 누적 — 평생 위험 ↑.
이 세 효과를 분리하지 못하면 흡연 효과의 진성 크기가 흐려진다. APC 분석은 통계적 식별 한계 안에서 효과 분해를 시도.
4 결론 — Ch.5.7~5.8 의 메시지
| 도구 | 적합 상황 | 핵심 가정 |
|---|---|---|
| Person-year | 가변 추적 | 시간 일정 hazard |
| IR / IRR | 발생률 비교 | Poisson |
| Direct standardization | 인구 구성 차이 통제 | 표준 인구 정의 |
| APC 모형 | 긴 추적 | 비선형성 또는 외부 제약 |
Person-year 는 가변 코호트의 가장 단순하고 강력한 분석 단위. APC 는 식별 한계가 명확하지만, period × cohort 단순화로 시간 차원을 분리할 수 있다.
이로써 Woodward Ch.5 시리즈 (B10~B14) 가 마무리된다. 다음 묶음 (Phase B Ch.5: Case-Control) 에서는 cohort 의 반대편 — 결과부터 시작하여 노출을 회고하는 설계 — 를 본다.
5 관련 주제
Phase B WOO Ch.5 시리즈 (완성)
Phase B 다음 묶음 (SCH Ch.5: Case-Control)
- 1111-11-11, SCH Ch.5 overview — Research in Reverse
다른 카테고리
- Time-to-Event Measures — IR/IRR/HR/SMR 통합
- Effect Measures