Kom igångKom igång gratis

Styrkeanalys – del II

Tidigare simulerade vi ett enskilt försök och genererade ett p-värde. Nu använder vi det här ramverket för att beräkna statistisk styrka. Styrkan hos ett experiment är dess förmåga att upptäcka en skillnad mellan behandlings- och kontrollgrupp, om skillnaden faktiskt finns. God statistisk praxis innebär att man strävar efter 80% styrka.

För vår webbplats vill vi veta hur många besökare varje variant behöver för att vi ska kunna detektera en 10-procentig ökning av tid på sidan med 80% styrka. Vi börjar med ett litet urval (50), simulerar flera instanser av experimentet och kontrollerar styrkan. Om 80% styrka uppnås stannar vi. Annars ökar vi urvalsstorleken och försöker igen.

Den här övningen är en del av kursen

Statistisk simulering i Python

Visa kurs

Övningsinstruktioner

  • Sätt size som en tupel för slumpvariablerna i time_spent så att formen blir sample_size \(\times\) sims.
  • Beräkna power som andelen p-värden som är mindre än 0,05 (statistiskt signifikanta).
  • Om power är större än eller lika med 80%, avsluta while-loopen med break. Annars fortsätter du att öka sample_size med 10.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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))
Redigera och kör kod