Analiza mocy – część I
Teraz zajmiemy się analizą mocy. Zazwyczaj zależy nam na tym, żeby każdy przeprowadzany eksperyment lub test A/B miał moc co najmniej 80%. Jednym ze sposobów osiągnięcia tego celu jest obliczenie wielkości próby potrzebnej do uzyskania mocy na poziomie 80%.
Wyobraź sobie, że zarządzasz serwisem informacyjnym i chcesz zwiększyć czas, jaki użytkownicy spędzają na stronie. Obecnie czas ten ma rozkład normalny ze średnią 1 minuty i odchyleniem standardowym 0,5 minuty. Planujesz wdrożyć funkcję przyspieszającą ładowanie stron i chcesz poznać wielkość próby potrzebną do wykrycia 5-procentowego wzrostu czasu spędzonego na stronie.
W tym ćwiczeniu skonfigurujesz framework do przeprowadzenia jednej symulacji, uruchomisz test t i obliczysz wartość p.
To ćwiczenie jest częścią kursu
Symulacje statystyczne w Pythonie
Instrukcje do ćwiczenia
- Ustaw
effect_sizena 5%,control_meanna 1 icontrol_sdna 0,5. - Używając
np.random.normal(), zasymuluj jedno losowanie dlacontrol_time_spentitreatment_time_spent, korzystając z zainicjalizowanych wartości. - Przeprowadź test t dla
treatment_time_spenticontrol_time_spentza pomocąst.ttest_ind(), gdziesttoscipy.stats– biblioteka jest już zaimportowana. - Ustaw
stat_signaTrue, jeślip_valuejest mniejsze od 0,05, w przeciwnym razie przypiszFalse.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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))