Data Science · Klinik Klinische Datenanalyse & Machine Learning
Ansicht
Lerntiefe
Codeansicht
Farbschema

20 · Konkurrierende Risiken und zeitabhängige Cox-Modelle

cif_vs_naive_km.png

Abbildung · Quellcode

cif_vs_naive_km

Erzeugt von fig_cif_vs_naive_km() in module/20-competing-risks-timevariant/code/figures.py, Zeile 26–46.

Python
def fig_cif_vs_naive_km(df) -> None:
    # Exact Aalen-Johansen (no tie-jitter), starting at 0 on day 0.
    cif = aalen_johansen_cif(df["event_time"], df["event_state"], cause=1)
    cif = pd.concat([pd.Series({0.0: 0.0}), cif]).loc[:ADMIN_HORIZON]

    kmf = KaplanMeierFitter()
    kmf.fit(df["event_time"], event_observed=(df["event_state"] == 1))
    naive_cif = (1 - kmf.survival_function_).loc[:ADMIN_HORIZON]

    fig, ax = plt.subplots(figsize=(7.5, 4.5))
    ax.step(naive_cif.index, naive_cif.values.ravel(), where="post", color=EVENT, lw=2,
            label="1 − Kaplan-Meier (ignoriert Entlassung als Konkurrenzrisiko)")
    ax.step(cif.index, cif.values,
            where="post", color=PRIMARY, lw=2.4,
            label="Cumulative Incidence Function (korrekt, Aalen-Johansen)")
    ax.set_xlabel("Tage seit Aufnahme")
    ax.set_ylabel("Kumulative Inzidenz Tod")
    ax.set_ylim(0, 0.40)
    ax.set_title("1 − Kaplan-Meier überschätzt das Sterberisiko bei konkurrierenden Risiken")
    ax.legend(loc="upper left", fontsize=9.5)
    save(fig, ASSETS / "cif_vs_naive_km.png")

← zurück zu Modul 20 · vollständige Datei ansehen