Styrkeanalys – del I
Nu går vi vidare till styrkeanalys. Vanligtvis vill du säkerställa att ett experiment eller A/B-test har minst 80% styrka. Ett sätt att uppnå detta är att beräkna den urvalsstorlek som krävs för att nå 80% styrka.
Anta att du ansvarar för en nyhetswebbplats och vill öka den tid som användarna tillbringar på sidan. I nuläget är den tid användarna spenderar på webbplatsen normalfördelad med ett medelvärde på 1 minut och en standardavvikelse på 0,5 minuter. Du planerar att introducera en funktion som laddar sidor snabbare och vill veta vilken urvalsstorlek som krävs för att mäta en 5%-ig ökning av den tid användarna spenderar på webbplatsen.
I den här övningen sätter du upp ramverket för att köra en simulering, utföra ett t-test och beräkna p-värdet.
Den här övningen är en del av kursen
Statistisk simulering i Python
Övningsinstruktioner
- Initiera
effect_sizetill 5%,control_meantill 1 ochcontrol_sdtill 0,5. - Använd
np.random.normal()för att simulera ett utfall avcontrol_time_spentochtreatment_time_spentmed de värden du initierade. - Kör ett t-test på
treatment_time_spentochcontrol_time_spentmedst.ttest_ind(), därstärscipy.stats, som redan är importerat. - Den statistiska signifikansen
stat_sigska varaTrueomp_valueär mindre än 0,05, annars ska den varaFalse.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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))