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

13 · Studiendesign und Fallzahlplanung

studiendesign_power.png

Abbildung · Quellcode

studiendesign_power

Erzeugt im Abschnitt „MODULE 13 · Study Design & Power" in data/figures.py, Zeile 588–623.

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
# ===========================================================================
# MODULE 13 · Study Design & Power
# ===========================================================================
print("[13] Studiendesign & Power ...")

n_range = np.arange(10, 200, 2)
from statsmodels.stats.power import TTestIndPower
power_analysis = TTestIndPower()

power_d3 = [power_analysis.solve_power(effect_size=0.3, nobs1=n, alpha=0.05) for n in n_range]
power_d5 = [power_analysis.solve_power(effect_size=0.5, nobs1=n, alpha=0.05) for n in n_range]

fig, ax = plt.subplots(figsize=(8, 4.5))
ax.plot(n_range, power_d3, color=SECONDARY, linewidth=2, label="Kleiner Effekt (Cohen's d = 0.3)")
ax.plot(n_range, power_d5, color=PRIMARY, linewidth=2.5, label="Mittlerer Effekt (Cohen's d = 0.5)")

# Target power line (80%)
ax.axhline(0.80, color=EVENT, linestyle="--", linewidth=1.2, label="Soll-Power (80 %)")

# Find exact N for d=0.5 at 80% power
n_target = power_analysis.solve_power(effect_size=0.5, power=0.80, alpha=0.05)
ax.axvline(n_target, color=EVENT, linestyle=":", linewidth=1.2)
ax.plot(n_target, 0.80, "o", color=EVENT, markersize=8)
ax.text(n_target + 5, 0.72, f"N = {int(np.ceil(n_target))} pro Gruppe\nfür 80 % Power", color=EVENT, fontsize=9.5, fontweight="semibold")

ax.set_xlabel("Stichprobengröße pro Gruppe (N)")
ax.set_ylabel("Statistische Power (1 − β)")
ax.set_title("Power-Kurve: Stichprobengröße vs. Power (Alpha = 0.05)")
ax.set_ylim(0, 1.05)
ax.set_xlim(10, 200)
ax.legend(loc="lower right")
ax.grid(True, linestyle=":", alpha=0.6)

# Ensure directory exists before saving
(ASSETS / "13-studiendesign-power" / "assets").mkdir(parents=True, exist_ok=True)
save(fig, ASSETS / "13-studiendesign-power" / "assets" / "studiendesign_power.png")

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