Power Analysis - Parte I
Passiamo ora alla power analysis. In genere vuoi assicurarti che qualsiasi esperimento o test A/B che esegui abbia almeno l’80% di potenza statistica. Un modo per garantirlo è calcolare la dimensione del campione necessaria per ottenere l’80% di potenza.
Supponi di essere responsabile di un sito di news e di voler aumentare il tempo che gli utenti trascorrono sul sito. Al momento, il tempo trascorso è distribuito normalmente con media di 1 minuto e deviazione standard di 0,5 minuti. Stai introducendo una funzionalità che carica le pagine più velocemente e vuoi sapere qual è la dimensione del campione necessaria per misurare un aumento del 5% del tempo trascorso sul sito.
In questo esercizio imposteremo il framework per eseguire una simulazione, eseguire un t-test e calcolare il p-value.
Questo esercizio fa parte del corso
Simulazione statistica in Python
Istruzioni dell'esercizio
- Inizializza
effect_sizeal 5%,control_meana 1 econtrol_sda 0.5. - Usando
np.random.normal(), simula un’estrazione dicontrol_time_spentetreatment_time_spentutilizzando i valori che hai inizializzato. - Esegui un t-test su
treatment_time_spentecontrol_time_spentusandost.ttest_ind()dovestèscipy.stats, già importato. - La significatività statistica
stat_sigdeve essereTruesep_valueè minore di 0.05, altrimenti deve essereFalse.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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))