10 · Inferenzstatistik und Hypothesentests
clinical_vs_statistical_significance.png
Abbildung · Quellcode

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
Python-Code: in eine Datei mit Endung
.py schreiben und mit dem ▶-Knopf in VS Code ausführen – oder Zeile für Zeile in die Python-Konsole. Setzt die in Modul 02 eingerichtete Umgebung voraus.# --- 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")