Power-Analyse – Teil I
Jetzt kommen wir zur Power-Analyse. Du willst in der Regel sicherstellen, dass jedes Experiment oder A/B-Test, den du durchführst, mindestens 80 % Power hat. Eine Möglichkeit, das zu gewährleisten, ist die Berechnung der Stichprobengröße, die nötig ist, um 80 % Power zu erreichen.
Angenommen, du leitest eine Nachrichten-Website und möchtest die Zeit erhöhen, die Nutzer auf deiner Website verbringen. Aktuell ist die auf deiner Website verbrachte Zeit normalverteilt mit einem Mittelwert von 1 Minute und einer Standardabweichung von 0,5 Minuten. Stell dir vor, du führst ein Feature ein, das Seiten schneller lädt, und willst wissen, welche Stichprobengröße nötig ist, um einen Anstieg der Verweildauer auf der Website um 5 % zu messen.
In dieser Übung richten wir den Rahmen für eine Simulation ein, führen einen t-Test durch und berechnen den p-Wert.
Diese Übung ist Teil des Kurses
Statistische Simulation in Python
Anleitung zur Übung
- Initialisiere
effect_sizemit 5 %,control_meanmit 1 undcontrol_sdmit 0,5. - Simuliere mit
np.random.normal()jeweils eine Ziehung fürcontrol_time_spentundtreatment_time_spentunter Verwendung der initialisierten Werte. - Führe einen t-Test auf
treatment_time_spentundcontrol_time_spentmitst.ttest_ind()aus, wobeistscipy.statsist und bereits importiert wurde. - Die statistische Signifikanz
stat_sigsollTruesein, wennp_valuekleiner als 0,05 ist, andernfallsFalse.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Initialize effect_size, control_mean, control_sd
effect_size, sample_size, control_mean, control_sd = ____, 50, ____, ____
# Simulate control_time_spent and treatment_time_spent, assuming equal variance
control_time_spent = np.random.normal(loc=control_mean, scale=____, size=sample_size)
treatment_time_spent = np.random.normal(loc=____*(1+effect_size), scale=control_sd, size=____)
# Run the t-test and get the p_value
t_stat, p_value = st.ttest_ind(____, ____)
stat_sig = p_value < ____
print("P-value: {}, Statistically Significant? {}".format(p_value, stat_sig))