Klein § 11.7 — Regression Diagnostics 연습문제 풀이

마팅게일 / Cox-Snell / log-cumulative / Andersen / Score / Deviance / dfbeta 잔차의 6가지 실전 응용

Klein Ch.11의 6개 연습문제(11.1-11.6)를 § 11.2-11.6의 잔차 도구로 체계적으로 풀이한다. 후두암 / 모유 수유 / 신장 이식 / DNA 종양 등 4개 데이터셋에 마팅게일 잔차로 함수 형태 식별, 4가지 그래프 도구로 PH 가정 검정, deviance + dfbeta로 이상치와 영향력 분석을 수행한다. (Klein & Moeschberger, 2003, § 11.7)

Statistics
Survival Analysis
저자

Kwangmin Kim

공개

2026년 05월 02일

1 도입

§ 11.7은 Ch.11 회귀 진단 도구의 종합 응용 연습문제 6개로 구성된다. 이 포스트에서는 각 문제의 의도, 사용 잔차, 풀이 단계, 결론을 체계적으로 정리한다.

1.1 문제 분포

문제 데이터 사용 잔차 진단 측면
11.1 후두암 (larynx, n=90) 마팅게일 + Cox-Snell 함수 형태 + 전반 적합
11.2 모유 수유 (weaning) 마팅게일 3개 연속 공변량 함수 형태
11.3 후두암 log-cum / 차이 / Andersen / score PH 가정 (4개 도표)
11.4 DNA 종양 (Ch.8 ex.1) log-cum / 차이 / Andersen / score PH 가정 (4개 도표)
11.5 신장 이식 (n=863) Deviance + dfbeta 이상치 + 영향력
11.6 DNA 종양 Deviance + dfbeta 이상치 + 영향력
풀이 전략

각 문제는 § 11.3~11.6의 개념을 그대로 응용한다. 핵심은:

  • 함수 형태 (11.1, 11.2): 해당 공변량을 빼고 적합 → 마팅게일 vs 그 공변량 산점도 + LOWESS
  • PH 검정 (11.3, 11.4): 단일 공변량 층화 후 4개 도표 작성
  • 이상치/영향력 (11.5, 11.6): 최종 모형 적합 후 deviance + dfbeta 도표

같은 도구를 다른 데이터에 반복 적용하면서 해석 능력을 키우는 것이 목표이다.

2 문제 11.1 — 후두암 함수 형태 + Cox-Snell

2.1 데이터 (§ 1.8 / Example 8.2)

후두암 진단 받은 남성 90명의 사망 시간. 기존 모형: 질병 단계 (Stage 1-4) 가변수 3개.

2.2 (a) 환자 나이의 함수 형태

절차:

  1. Stage 가변수만으로 Cox 모형 적합 (나이 제외)
  2. 마팅게일 잔차 \(\hat{M}_j = \delta_j - r_j\) 계산
  3. \(\hat{M}_j\) vs 환자 나이 산점도 + LOWESS
import numpy as np
import pandas as pd
from lifelines import CoxPHFitter
import statsmodels.nonparametric.smoothers_lowess as sl
import matplotlib.pyplot as plt

# larynx 데이터 로드 (가정)
# columns: time, delta, stage (1-4), age, year
df = pd.read_csv("larynx.csv")

# (a) Stage 가변수만으로 적합 (나이 제외)
df_dummies = pd.get_dummies(df, columns=["stage"], drop_first=True)
no_age = df_dummies.drop(columns=["age", "year"])

cph_no_age = CoxPHFitter()
cph_no_age.fit(no_age, duration_col="time", event_col="delta")

mart = cph_no_age.compute_residuals(no_age, kind="martingale").iloc[:, 0]

# 마팅게일 vs 나이 + LOWESS
ages = df["age"].values
smooth = sl.lowess(mart.values, ages, frac=0.5)
plt.scatter(ages, mart, alpha=0.4)
plt.plot(smooth[:, 0], smooth[:, 1], "r-", lw=2)
plt.axhline(0, color="gray", ls="--")
plt.xlabel("Age"); plt.ylabel(r"$\hat{M}_j$")
plt.title("문제 11.1(a) — 나이의 함수 형태")
예상 결과 해석

후두암 환자(고령자가 많음)에서 LOWESS 곡선의 형태:

  • 직선 → 나이를 선형(\(\beta \cdot \text{age}\))으로 추가
  • 단조 증가 + 가속\(\beta \log(\text{age})\) 또는 \(\beta_1 \text{age} + \beta_2 \text{age}^2\)
  • 변환점 (예: 65세 이전 평탄, 이후 급증) → 이산화 \(\mathbb{1}\{\text{age} \geq 65\}\)

후두암은 일반적으로 60대 이상에서 위험이 가속되므로 약한 비선형성 관찰이 흔하지만, \(n = 90\) 작은 표본에서는 선형 근사도 충분할 수 있다.

2.3 (b) 진단 연도 (year)의 함수 형태

같은 절차를 year 변수에 적용. 후두암 진단 연도는 의료 기술 향상을 반영할 수 있다 (최근 진단 → 더 나은 치료 → 낮은 위험).

예상 형태: 약한 음의 선형 또는 평탄 (효과 미미). 평탄하면 모형에서 제거.

2.4 (c) Cox-Snell 도표로 전반 적합도

최종 모형: stage (가변수 3개) + age (선형).

final_model = df_dummies[["time", "delta", "stage_2", "stage_3", "stage_4", "age"]]
cph = CoxPHFitter()
cph.fit(final_model, duration_col="time", event_col="delta")

# Cox-Snell 잔차 = delta - martingale
mart = cph.compute_residuals(final_model, kind="martingale").iloc[:, 0]
cs = df["delta"] - mart

# Nelson-Aalen 추정
from lifelines import NelsonAalenFitter
naf = NelsonAalenFitter()
naf.fit(durations=cs.abs(), event_observed=df["delta"])

plt.plot(naf.timeline, naf.cumulative_hazard_, "b-")
m = cs.abs().max()
plt.plot([0, m], [0, m], "r--", label="45° 기준선")
plt.xlabel("Cox-Snell 잔차 $r_j$")
plt.ylabel(r"$\hat{H}_r(r)$")
plt.title("문제 11.1(c) — Cox-Snell 적합도 도표")
plt.legend()

해석 기준: 도표가 45도선에 가까우면 모형 적합. 작은 표본(\(n = 90\))이므로 우측 꼬리(큰 \(r_j\))의 변동은 신중히 해석.

3 문제 11.2 — 모유 수유 데이터 다중 함수 형태

3.1 데이터 (§ 1.14)

모유 수유 종료 시점 (weaning) 데이터. 범주형 공변량: 인종 (백인/흑인/기타), 흡연, 빈곤. 연속 공변량: 출산 시 어머니 나이, 어머니 교육 연수, 자녀 출생 연도.

목표: 세 연속 공변량이 각각 선형으로 들어가도 되는가?

3.2 풀이 절차 (각 연속 공변량별로 반복)

  1. 범주형 공변량 + 다른 두 연속 공변량으로만 Cox 모형 적합 (대상 변수 제외)
  2. 마팅게일 잔차 계산
  3. \(\hat{M}_j\) vs 대상 연속 공변량 산점도 + LOWESS
def diagnose_functional_form(df, target_var, control_vars, duration, event):
    """대상 변수를 빼고 적합 → 마팅게일 vs 대상 변수 도표"""
    cph = CoxPHFitter()
    cph.fit(df[control_vars + [duration, event]], duration_col=duration, event_col=event)
    mart = cph.compute_residuals(
        df[control_vars + [duration, event]], kind="martingale"
    ).iloc[:, 0]

    x = df[target_var].values
    smooth = sl.lowess(mart.values, x, frac=0.5)
    plt.figure()
    plt.scatter(x, mart, alpha=0.4)
    plt.plot(smooth[:, 0], smooth[:, 1], "r-", lw=2)
    plt.axhline(0, color="gray", ls="--")
    plt.xlabel(target_var); plt.ylabel("Martingale")
    plt.title(f"함수 형태 진단 — {target_var}")
    return cph

# 세 연속 변수 각각 진단
for target in ["mother_age", "education", "birth_year"]:
    others = [v for v in ["mother_age", "education", "birth_year"] if v != target]
    controls = others + ["race_black", "race_other", "smoking", "poverty"]
    diagnose_functional_form(df, target, controls, "time", "weaned")
세 변수의 예상 양상

어머니 나이:

  • 일반적으로 어린 어머니가 모유 수유를 일찍 중단 → 음의 효과 가능
  • 매우 어린(10대) 또는 매우 늙은(40대+) 어머니에서 특이 패턴 가능 → U-shape 가능

교육 연수:

  • 교육 수준이 높을수록 모유 수유를 길게 하는 경향 → 음의 효과
  • 대체로 선형이지만 학사 학위(16년) 근처 변환점 가능

출생 연도:

  • 사회적 트렌드 (모유 수유 권장 캠페인) 반영 → 약한 추세 또는 평탄
  • 평탄하면 모형에서 제거 가능

3.3 결론 도출 패턴

각 변수별로:

LOWESS 형태 결론
거의 직선 (수평 + 기울기) 선형으로 모형 추가
곡선 / 변환점 비선형 변환 또는 이산화
평탄 (수평선) 모형에서 제거

4 문제 11.3 — 후두암 PH 가정 (4 도표)

4.1 데이터

11.1과 동일 (후두암 90명). 모형: 나이로 조정한 후 질병 단계의 PH를 검정.

4.2 (a) Log-cumulative 도표

# Stage로 층화한 Cox 모형 (나이만 공변량)
df_strat = df.copy()

# 각 stage 그룹별 Nelson-Aalen
fig, ax = plt.subplots(figsize=(8, 5))
colors = ["b", "g", "orange", "r"]
for s, c in zip([1, 2, 3, 4], colors):
    sub = df[df["stage"] == s]
    naf = NelsonAalenFitter().fit(sub["time"], sub["delta"])
    log_H = np.log(naf.cumulative_hazard_.values + 1e-10)
    ax.plot(naf.timeline, log_H, color=c, label=f"Stage {s}")

ax.set_xlabel("Time"); ax.set_ylabel(r"$\log \hat{H}_{g0}(t)$")
ax.set_title("11.3(a) — log-cumulative")
ax.legend()

판정: 4개 곡선이 수직 거리 일정 (평행) → PH 성립. 교차하거나 거리가 시간에 따라 변하면 PH 위반.

4.3 (b) 차이 도표

# Stage 1을 기준으로 차이 계산
naf1 = NelsonAalenFitter().fit(df[df["stage"] == 1]["time"],
                                df[df["stage"] == 1]["delta"])

fig, ax = plt.subplots(figsize=(8, 5))
for s, c in zip([2, 3, 4], colors[1:]):
    sub = df[df["stage"] == s]
    naf = NelsonAalenFitter().fit(sub["time"], sub["delta"])

    common = np.intersect1d(naf.timeline, naf1.timeline)
    Hg = np.interp(common, naf.timeline, naf.cumulative_hazard_.values.flatten())
    H1 = np.interp(common, naf1.timeline, naf1.cumulative_hazard_.values.flatten())
    diff = np.log(Hg + 1e-10) - np.log(H1 + 1e-10)
    ax.plot(common, diff, color=c, label=f"Stage {s} - Stage 1")

ax.axhline(0, color="gray", ls="--")
ax.set_title("11.3(b) — 차이 도표 (PH 하 수평선)")
ax.legend()

판정: 각 곡선이 수평선에 가까우면 PH 성립. Stage 4가 시간에 따라 증가하는 패턴이면 위험비가 시간에 따라 증가.

4.4 (c) Andersen plot

fig, ax = plt.subplots(figsize=(7, 7))
H1_func = lambda t: np.interp(t, naf1.timeline, naf1.cumulative_hazard_.values.flatten())

for s, c in zip([2, 3, 4], colors[1:]):
    sub = df[df["stage"] == s]
    naf = NelsonAalenFitter().fit(sub["time"], sub["delta"])
    Hg = naf.cumulative_hazard_.values.flatten()
    H1_at_g = H1_func(naf.timeline)
    ax.plot(H1_at_g, Hg, color=c, label=f"Stage {s}")

m = max(naf1.cumulative_hazard_.values.max(),
        max(naf.cumulative_hazard_.values.max() for s in [2, 3, 4]))
ax.plot([0, m], [0, m], "k--", label="기준선")
ax.set_xlabel(r"$\hat{H}_{1}(t)$"); ax.set_ylabel(r"$\hat{H}_{g}(t)$")
ax.set_title("11.3(c) — Andersen plot")
ax.legend()

판정: 각 곡선이 원점 통과 직선이면 PH. 볼록(convex) → 위험비 시간에 따라 증가, 오목(concave) → 감소.

4.5 (d) Score residual plot

from lifelines.statistics import proportional_hazard_test

cph = CoxPHFitter()
cph.fit(df_dummies[["time", "delta", "stage_2", "stage_3", "stage_4", "age"]],
        duration_col="time", event_col="delta")

# Schoenfeld 잔차 + 형식 검정
ph_test = proportional_hazard_test(cph, df_dummies, time_transform="rank")
print(ph_test)

# Schoenfeld 시간 도표
sch = cph.compute_residuals(df_dummies, kind="schoenfeld")
fig, axes = plt.subplots(1, 3, figsize=(15, 4))
event_times = df.loc[df["delta"] == 1, "time"].sort_values().values
for i, col in enumerate(["stage_2", "stage_3", "stage_4"]):
    ax = axes[i]
    smooth = sl.lowess(sch[col].values, event_times, frac=0.7)
    ax.scatter(event_times, sch[col], alpha=0.4)
    ax.plot(smooth[:, 0], smooth[:, 1], "r-")
    ax.axhline(0, color="gray", ls="--")
    ax.set_title(f"Schoenfeld: {col}")

판정: 표준화된 score \(W_k(t)\) 도표가 묶인 브라운 다리 형태(0에서 시작/끝, 사이 무작위 진동)이면 PH 성립. \(|W_k(t)| > 1.3581\) 한계선을 어느 시점이라도 넘으면 5% 수준 PH 기각.

4 도표의 종합 판정

후두암 데이터에서 4 도표가 일관되게 PH 위반을 보이는지가 핵심. Klein 권고에 따라:

  • 1-2개 도표만 위반 → 신중히 해석 (도표 노이즈 가능성)
  • 3개 이상 도표 위반 → PH 위반 결론 단단함
  • Stage 4의 위반이 가장 흔함 (말기 환자 → 단기 사망률 매우 높음, 장기 추적자 거의 없음)

5 문제 11.4 — DNA 종양 PH 가정 (4 도표)

5.1 데이터 (Ch.8 Exercise 1)

DNA tumor profile: 이수성 (aneuploid) vs 이배체 (diploid) 두 그룹.

5.2 풀이 — 11.3과 동일한 4 도표

단일 이항 공변량이라 더 간단하다. 4 도표 모두 두 그룹만 비교.

groups = {0: "diploid", 1: "aneuploid"}

# (a) log-cumulative
fig, axes = plt.subplots(2, 2, figsize=(12, 10))

naf_d = NelsonAalenFitter().fit(df[df["dna"] == 0]["time"],
                                df[df["dna"] == 0]["delta"])
naf_a = NelsonAalenFitter().fit(df[df["dna"] == 1]["time"],
                                df[df["dna"] == 1]["delta"])

axes[0, 0].plot(naf_d.timeline, np.log(naf_d.cumulative_hazard_ + 1e-10),
                label="diploid")
axes[0, 0].plot(naf_a.timeline, np.log(naf_a.cumulative_hazard_ + 1e-10),
                "--", label="aneuploid")
axes[0, 0].set_title("(a) log-cumulative")
axes[0, 0].legend()

# (b) 차이 도표
common = np.intersect1d(naf_d.timeline, naf_a.timeline)
Hd = np.interp(common, naf_d.timeline, naf_d.cumulative_hazard_.values.flatten())
Ha = np.interp(common, naf_a.timeline, naf_a.cumulative_hazard_.values.flatten())
diff = np.log(Ha + 1e-10) - np.log(Hd + 1e-10)
axes[0, 1].plot(common, diff)
axes[0, 1].axhline(diff[len(diff) // 2], color="r", ls="--", label="평균")
axes[0, 1].set_title("(b) 차이 (PH 하 수평선)")
axes[0, 1].legend()

# (c) Andersen plot
axes[1, 0].plot(Hd, Ha)
m = max(Hd.max(), Ha.max())
axes[1, 0].plot([0, m], [0, m], "k--")
axes[1, 0].set_xlabel("H_diploid"); axes[1, 0].set_ylabel("H_aneuploid")
axes[1, 0].set_title("(c) Andersen plot")

# (d) Score
cph = CoxPHFitter().fit(df[["time", "delta", "dna"]],
                         duration_col="time", event_col="delta")
sch = cph.compute_residuals(df[["time", "delta", "dna"]], kind="schoenfeld")
event_times = df.loc[df["delta"] == 1, "time"].sort_values().values
smooth = sl.lowess(sch["dna"].values, event_times, frac=0.7)
axes[1, 1].scatter(event_times, sch["dna"], alpha=0.4)
axes[1, 1].plot(smooth[:, 0], smooth[:, 1], "r-")
axes[1, 1].axhline(0, color="gray", ls="--")
axes[1, 1].set_title("(d) Schoenfeld for DNA")
종양 데이터의 일반 패턴

이수성/이배체 비교에서 자주 나타나는 패턴:

  • 이수성(aneuploid) 종양이 더 공격적 → 초기 위험 더 높음
  • 시간에 따라 두 그룹의 위험비가 변할 수 있음 (PH 위반 가능)
  • \(n\) 이 작으면 score 도표의 변동이 커서 PH 가설 채택될 수 있음

PH가 깨지면 가산 모형(Ch.10) 또는 시간 분할 (Ch.9)을 검토.

6 문제 11.5 — 신장 이식 이상치 + 영향력

6.1 데이터 (Example 8.3, § 8.4)

신장 이식 환자 863명의 사망 시간. 모형: 성별, 인종, 성별×인종 교호작용.

6.2 (a) Deviance 잔차로 이상치 탐지

# 큰 표본 (n=863)
cph = CoxPHFitter()
cph.fit(kidney[["time", "delta", "gender", "race", "gender_race"]],
        duration_col="time", event_col="delta")

mart = cph.compute_residuals(kidney, kind="martingale").iloc[:, 0].values
delta = kidney["delta"].values

# Deviance 변환 식 (11.5.1)
def deviance(M, d):
    eps = 1e-12
    inside = M + d * np.log(np.where(d - M > eps, d - M, eps))
    return np.sign(M) * np.sqrt(-2 * inside)

D = deviance(mart, delta)
risk = cph.predict_log_partial_hazard(kidney).values

plt.scatter(risk, D, alpha=0.4, s=15)
plt.axhline(2, color="r", ls="--"); plt.axhline(-2, color="r", ls="--")
plt.axhline(0, color="gray", ls=":")
plt.xlabel("Risk score"); plt.ylabel("Deviance")
plt.title("11.5(a) — Deviance vs Risk score")

outliers = np.where(np.abs(D) > 2)[0]
print(f"이상치: {len(outliers)}명 ({len(outliers)/len(kidney):.1%})")
큰 표본의 이상치 해석

\(n = 863\) 의 큰 표본에서는:

  • 정규 근사가 좋아 \(|D_j| > 2\) 의 약 5% 비율 기대 (대략 43명 정도)
  • 이 중 risk score가 낮은데 양의 큰 \(D_j\) 인 환자가 가장 의심
    • 예: 좋은 매칭 + 약한 거부반응 예측인데 1년 내 사망
  • \(|D_j| > 3\) 환자 (대략 1% 미만)는 강한 검토 대상

이식 데이터에서 이상치 환자의 흔한 원인: - 만성 거부반응 (immune mismatch 기록되지 않음) - 동반 질환 (당뇨, 심혈관) - 약물 비순응

6.3 (b) 각 공변량별 영향력 상위 4명

# Score 잔차 → dfbeta
score_resid = cph.compute_residuals(kidney, kind="score")
cov_b = cph.variance_matrix_

dfbeta = pd.DataFrame(
    score_resid.values @ cov_b.values,
    columns=cph.params_.index
)

# 각 공변량별 영향력 상위 4명
for col in dfbeta.columns:
    top4_idx = dfbeta[col].abs().nlargest(4).index.tolist()
    print(f"\n{col} — 영향력 상위 4명:")
    print(kidney.loc[top4_idx, ["time", "delta", "gender", "race"]])
    print(f"  Δ 값: {dfbeta.loc[top4_idx, col].values}")
영향력 환자의 패턴

성별 (\(\beta_1\)) 영향력 상위:

  • 한쪽 성별의 극단 결과 (가장 빨리/늦게 사망)
  • 또는 다른 인종 그룹과의 교차에서 특이값

인종 (\(\beta_2\)) 영향력 상위:

  • 소수 인종에서의 극단 결과
  • 작은 부분군은 단일 관측치가 큰 영향력을 가짐

교호작용 (\(\beta_3\)) 영향력 상위:

  • 4개 부분군 (남성/여성 × 백인/흑인 등)의 교차 균형 좌우
  • 특정 부분군이 작으면 해당 셀의 환자가 극단 영향력

왜 이렇게 영향력이 큰가:

  1. 부분군 표본 크기 — 작은 그룹의 한 환자는 큰 가중치
  2. 위험집합 늦은 시점 — 후기 사건은 위험집합이 작아 가중치 큼
  3. 극단 공변량 조합 — 모형 외삽 영역

7 문제 11.6 — DNA 종양 이상치 + 영향력

7.1 (a) Deviance로 이상치

cph = CoxPHFitter().fit(df[["time", "delta", "dna"]],
                         duration_col="time", event_col="delta")

mart = cph.compute_residuals(df, kind="martingale").iloc[:, 0].values
D = deviance(mart, df["delta"].values)
risk = cph.predict_log_partial_hazard(df).values

plt.scatter(risk, D, alpha=0.5)
plt.axhline(2, color="r", ls="--"); plt.axhline(-2, color="r", ls="--")
plt.title("11.6(a) — DNA 종양 이상치 탐지")

outliers = np.where(np.abs(D) > 2)[0]
print(f"이상치 ({len(outliers)}명): {df.iloc[outliers]}")

7.2 (b) Score 잔차로 영향력 상위 3명

단일 공변량이므로 dfbeta는 1차원 벡터.

score = cph.compute_residuals(df, kind="score").iloc[:, 0]
var_b = cph.variance_matrix_.iloc[0, 0]
dfbeta_dna = score.values * var_b

# 상위 3명
top3 = pd.Series(np.abs(dfbeta_dna)).nlargest(3).index.tolist()
print(f"\n영향력 상위 3명:")
print(df.loc[top3, ["time", "delta", "dna"]])
print(f"Δ 값: {dfbeta_dna[top3]}")
단일 이항 공변량의 영향력

이수성 vs 이배체의 단일 공변량 모형에서 영향력 상위 환자의 특징:

  • 소수 그룹의 극단 결과: 만약 이수성 그룹이 작으면 그 그룹의 매우 빠른/늦은 사건이 영향력 큼
  • 위험집합 후기: 마지막 몇 사건은 위험집합 크기가 작아 자연스럽게 큰 가중치
  • 두 그룹 교차 시점: 두 그룹의 카플란-마이어 곡선이 교차하는 시점 근처의 사건이 추정에 큰 영향

이는 PH 위반 가능성과도 연결된다 — 만약 11.4에서 PH 위반이 발견됐다면, 영향력 환자 대부분이 위반 영역(곡선 교차 근처)에 위치할 가능성.

8 종합 — Ch.11 진단 도구의 통합 활용

8.1 6문제로 본 진단 흐름

모형 구조 단계 (11.1-11.4):
  ↓
  마팅게일 잔차 → 함수 형태 (11.1, 11.2)
  ↓
  4가지 그래프 도구 → PH 가정 (11.3, 11.4)
  ↓
모형 평가 단계 (11.1c, 11.5, 11.6):
  ↓
  Cox-Snell → 전반 적합 (11.1c)
  ↓
  Deviance + dfbeta → 이상치 + 영향력 (11.5, 11.6)

8.2 핵심 교훈

6문제가 보여주는 5가지 통찰

1. 함수 형태는 자동 가정 금지: 11.1과 11.2 모두 연속 공변량이 선형이라는 가정을 검토. 데이터마다 답이 다르다.

2. 단일 도표로 PH 결론 금지: 11.3과 11.4 모두 4 도표를 사용. 일관된 결론이 필요.

3. 큰 표본에서도 진단 필수: 11.5의 \(n = 863\) 도 이상치/영향력 점검. “큰 표본이니 안전”은 오해.

4. 작은 표본에서 영향력 환자 많음: 11.6의 작은 데이터에서는 거의 모든 환자가 어느 정도 영향력. 임계 적용 보수적으로.

5. 이상치 vs 영향력 구분: 11.5(a)와 (b)는 같은 데이터의 다른 측면. 함께 봐야 완전.

9 핵심 요약

§ 11.7 한 줄 요약

6개 연습문제는 § 11.2-11.6의 모든 잔차 도구(Cox-Snell · 마팅게일 · log-cum/Andersen/score · deviance · dfbeta)를 후두암 / 모유 수유 / 신장 이식 / DNA 종양 4개 데이터에 종합 적용해 함수 형태 결정 → PH 검정 → 이상치/영향력 분석의 진단 워크플로를 완성한다.

문제 데이터 핵심 도구 주 발견
11.1 후두암 마팅게일 + Cox-Snell 나이 함수 형태 + 모형 적합도
11.2 모유 수유 마팅게일 (3 변수) 어머니 나이/교육/연도 형태
11.3 후두암 4 PH 도표 Stage의 PH 검토
11.4 DNA 종양 4 PH 도표 이수성/이배체 PH 검토
11.5 신장 이식 Deviance + dfbeta 큰 표본 이상치/영향력
11.6 DNA 종양 Deviance + dfbeta 단일 공변량 영향력

10 관련 주제

Ch.11 시리즈

선행 지식

후속 주제

Subscribe

Enjoy this blog? Get notified of new posts by email: