Power-Analyse – Teil II
Zuvor haben wir eine Instanz des Experiments simuliert und einen p-Wert erzeugt. Jetzt nutzen wir diesen Rahmen, um die statistische Power zu berechnen. Die Power eines Experiments ist die Fähigkeit des Experiments, einen Unterschied zwischen Treatment und Control zu erkennen, wenn der Unterschied tatsächlich existiert. Gute statistische Praxis ist es, auf 80 % Power hinzuarbeiten.
Für unsere Website wollen wir wissen, wie viele Personen jede Variante besuchen müssen, damit wir einen Anstieg der aufgewendeten Zeit um 10 % mit 80 % Power erkennen können. Dafür starten wir mit einer kleinen Stichprobe (50), simulieren mehrere Instanzen dieses Experiments und prüfen die Power. Wenn 80 % erreicht sind, stoppen wir. Wenn nicht, erhöhen wir die Stichprobengröße und versuchen es erneut.
Diese Übung ist Teil des Kurses
Statistische Simulation in Python
Anleitung zur Übung
- Setze für die Zufallsvariablen
time_spentsizeals Tupel, sodass die Formsample_size×simsist. - Berechne
powerals den Anteil der p-Werte kleiner als 0,05 (statistisch signifikant). - Wenn
powergrößer oder gleich 80 % ist,breakaus der while-Schleife. Andernfalls erhöhesample_sizeweiterhin in Schritten von 10.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
sample_size = 50
# Keep incrementing sample size by 10 till we reach required power
while 1:
control_time_spent = np.random.normal(loc=control_mean, scale=control_sd, size=(____,____)))
treatment_time_spent = np.random.normal(loc=control_mean*(1+effect_size), scale=control_sd, size=(____,____))
t, p = st.ttest_ind(treatment_time_spent, control_time_spent)
# Power is the fraction of times in the simulation when the p-value was less than 0.05
power = (p < 0.05).sum()/____
if ____:
____
else:
____ += ____
print("For 80% power, sample size required = {}".format(sample_size))