Analiza puterii - Partea I
Acum ne îndreptăm atenția spre analiza puterii. De regulă, vrei să te asiguri că orice experiment sau test A/B pe care îl rulezi are o putere de cel puțin 80%. O modalitate de a garanta acest lucru este să calculezi dimensiunea eșantionului necesară pentru a atinge 80% putere.
Să presupunem că ești responsabil pentru un site de știri și dorești să crești timpul pe care utilizatorii îl petrec pe site. În prezent, timpul petrecut de utilizatori pe site urmează o distribuție normală cu o medie de 1 minut și o abatere standard de 0,5 minute. Presupunem că introduci o funcționalitate care încarcă paginile mai rapid și vrei să știi ce dimensiune a eșantionului este necesară pentru a măsura o creștere de 5% a timpului petrecut pe site.
În acest exercițiu, vom configura cadrul pentru a rula o singură simulare, vom aplica un test t și vom calcula valoarea p.
Acest exercițiu face parte din cursul
Simulare statistică în Python
Instrucțiuni pentru exercițiu
- Inițializează
effect_sizela 5%,control_meanla 1 șicontrol_sdla 0,5. - Folosind
np.random.normal(), simulează o singură extragere pentrucontrol_time_spentșitreatment_time_spentpe baza valorilor inițializate. - Aplică un test t pe
treatment_time_spentșicontrol_time_spentfolosindst.ttest_ind(), undestestescipy.stats, deja importat. - Semnificația statistică
stat_sigtrebuie să fieTruedacăp_valueeste mai mic decât 0,05, altfel trebuie să fieFalse.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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))