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

10 · Inferenzstatistik und Hypothesentests

clinical_vs_statistical_significance.png

Abbildung · Quellcode

clinical_vs_statistical_significance

Erzeugt im Abschnitt „clinical_vs_statistical_significance" in data/figures.py, Zeile 388–421.

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
# --- Clinical vs. Statistical Significance ---
print("[10] Klinische vs. Statistische Signifikanz ...")

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

cases = [
    {"y": 3, "pe": 0.4,  "ci": (0.2, 0.6),   "color": SECONDARY, "title": "Studie A: Statistische Signifikanz, klinisch irrelevant\n(Sehr große Fallzahl N, winziger Effekt)"},
    {"y": 2, "pe": 2.2,  "ci": (-0.4, 4.8),  "color": EVENT,     "title": "Studie B: Keine stat. Signifikanz, klinisch potenziell relevant\n(Kleine Fallzahl N, großer Effekt, unterpowered)"},
    {"y": 1, "pe": 2.8,  "ci": (1.8, 3.8),   "color": PRIMARY,   "title": "Studie C: Optimaler Fall\n(Ausreichende Fallzahl N, signifikanter & relevanter Effekt)"}
]

# Relevance threshold
threshold = 1.5
ax.axvline(threshold, color="#9A5B12", linestyle=":", linewidth=1.5)
ax.text(threshold + 0.1, 3.6, "Schwelle für klinische Relevanz", color="#9A5B12", fontsize=9.5, fontweight="semibold")

# Zero line (no effect)
ax.axvline(0.0, color="#16181C", linestyle="-", linewidth=1.2)
ax.text(-0.8, 3.6, "Kein Effekt", color="#16181C", fontsize=9.5, fontweight="semibold")

for c in cases:
    ax.errorbar(c["pe"], c["y"], xerr=[[c["pe"] - c["ci"][0]], [c["ci"][1] - c["pe"]]], fmt="o", color=c["color"], markersize=8, elinewidth=2.5, capsize=6)
    ax.text(-1.4, c["y"] + 0.22, c["title"], color="#16181C", fontsize=9.5, fontweight="semibold", ha="left")

ax.set_ylim(0.5, 3.9)
ax.set_xlim(-1.5, 5.5)
ax.set_yticks([1, 2, 3])
ax.set_yticklabels(["Studie C", "Studie B", "Studie A"])
ax.set_xlabel("Behandlungseffekt (z.B. Blutdrucksenkung in mmHg)")
ax.set_title("Klinische vs. Statistische Signifikanz: Konfidenzintervalle richtig lesen")
ax.grid(True, axis="x", linestyle=":", alpha=0.6)

(ASSETS / "10-inferenzstatistik" / "assets").mkdir(parents=True, exist_ok=True)
save(fig, ASSETS / "10-inferenzstatistik" / "assets" / "clinical_vs_statistical_significance.png")

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