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

12 · Regressionsmodelle: Lineare, logistische und Cox-Regression

km_ueberleben_sepsis.png

Abbildung · Quellcode

km_ueberleben_sepsis

Erzeugt im Abschnitt „km_ueberleben_sepsis" in data/figures.py, Zeile 512–553.

Dieses Skript läuft von oben nach unten. Der gemeinsame Vorspann — Bibliotheken, Kohorte laden, Plot-Stil — steht am Anfang der vollständigen Datei und gilt für alle Abbildungen darin.

Python
# --- Kaplan-Meier curve ---
from lifelines import KaplanMeierFitter

fig, ax = plt.subplots(figsize=(8, 5))

kmf = KaplanMeierFitter()
for group, color, label in [
    ("Sepsis",       EVENT,   "Sepsis"),
    ("Nicht-Sepsis", PRIMARY, "Nicht-Sepsis"),
]:
    mask = df["sepsis_gruppe"] == group
    kmf.fit(
        df.loc[mask, "fu_zeit_tage"],
        df.loc[mask, "status"],
        label=label,
    )
    kmf.plot_survival_function(
        ax=ax, ci_show=True, ci_alpha=0.15,
        color=color, linewidth=2.0,
    )

ax.set_xlabel("Zeit (Tage)")
ax.set_ylabel("Geschätzte Überlebenswahrscheinlichkeit")
ax.set_title("Kaplan-Meier-Überlebensfunktion\nStratifiziert nach Aufnahmegrund (Sepsis vs. Nicht-Sepsis)")
ax.set_ylim(0, 1.05)
ax.yaxis.set_major_formatter(mticker.PercentFormatter(xmax=1, decimals=0))

# Log-rank test
from lifelines.statistics import logrank_test
lr_result = logrank_test(
    df.loc[df["sepsis_gruppe"] == "Sepsis",      "fu_zeit_tage"],
    df.loc[df["sepsis_gruppe"] == "Nicht-Sepsis", "fu_zeit_tage"],
    event_observed_A=df.loc[df["sepsis_gruppe"] == "Sepsis",      "status"],
    event_observed_B=df.loc[df["sepsis_gruppe"] == "Nicht-Sepsis", "status"],
)
p_lr = lr_result.p_value
p_txt = f"Log-rank p = {p_lr:.4f}" if p_lr >= 0.0001 else "Log-rank p < 0.0001"
ax.text(0.97, 0.97, p_txt, transform=ax.transAxes,
        ha="right", va="top", fontsize=10,
        bbox=dict(boxstyle="round,pad=0.3", facecolor="#F0F4F8", edgecolor="none"))

save(fig, ASSETS / "12-regression" / "assets" / "km_ueberleben_sepsis.png")

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