ComenzarEmpieza gratis

Análisis de potencia - Parte II

Antes, simulamos una instancia del experimento y generamos un p-valor. Ahora usaremos este esquema para calcular la potencia estadística. La potencia de un experimento es su capacidad para detectar una diferencia entre tratamiento y control si esa diferencia realmente existe. Es una buena práctica estadística aspirar al 80% de potencia.

Para nuestro sitio web, supongamos que queremos saber cuántas personas deben visitar cada variante para poder detectar un aumento del 10% en el tiempo invertido con un 80% de potencia. Para ello, empezamos con una muestra pequeña (50), simulamos múltiples instancias de este experimento y comprobamos la potencia. Si alcanzamos el 80% de potencia, paramos. Si no, aumentamos el tamaño de la muestra y volvemos a intentarlo.

Este ejercicio forma parte del curso

Simulación estadística en Python

Ver curso

Instrucciones del ejercicio

  • Para las variables aleatorias time_spent, establece size como tuplas de modo que la forma sea sample_size \(\times\) sims.
  • Calcula power como la fracción de p-valores menores que 0.05 (estadísticamente significativo).
  • Si power es mayor o igual que el 80%, haz break del bucle while. En caso contrario, sigue incrementando sample_size de 10 en 10.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

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))
Editar y ejecutar código