Analisi della potenza - Parte II
In precedenza, abbiamo simulato un'istanza dell'esperimento e generato un p-value. Ora useremo questa impostazione per calcolare la potenza statistica. La potenza di un esperimento è la sua capacità di rilevare una differenza tra trattamento e controllo, se la differenza esiste davvero. È buona prassi statistica puntare all'80% di potenza.
Per il nostro sito web, supponiamo di voler sapere quante persone devono visitare ciascuna variante affinché possiamo rilevare un aumento del 10% del tempo trascorso con una potenza dell'80%. Per farlo, partiamo con un campione piccolo (50), simuliamo più volte questo esperimento e verifichiamo la potenza. Se raggiungiamo l'80%, ci fermiamo. In caso contrario, aumentiamo la dimensione del campione e riproviamo.
Questo esercizio fa parte del corso
Simulazione statistica in Python
Istruzioni dell'esercizio
- Per le variabili casuali
time_spent, impostasizecome tuple in modo che la forma siasample_size\(\times\)sims. - Calcola
powercome la frazione di p-value inferiori a 0.05 (statisticamente significativi). - Se
powerè maggiore o uguale all'80%, esci dal ciclo while conbreak. Altrimenti, continua ad aumentaresample_sizedi 10.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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))