ComeçarComece de graça

Análise de Poder - Parte II

Antes, simulamos uma instância do experimento e geramos um p-valor. Agora, vamos usar essa estrutura para calcular o poder estatístico. O poder de um experimento é a capacidade de detectar uma diferença entre tratamento e controle, caso essa diferença realmente exista. É uma boa prática estatística buscar 80% de poder.

Para o nosso site, suponha que queremos saber quantas pessoas precisam visitar cada variante para detectar um aumento de 10% no tempo gasto com 80% de poder. Para isso, começamos com uma amostra pequena (50), simulamos várias instâncias desse experimento e verificamos o poder. Se atingirmos 80% de poder, paramos. Caso contrário, aumentamos o tamanho da amostra e tentamos novamente.

Este exercício faz parte do curso

Simulação Estatística em Python

Ver curso

Instruções do exercício

  • Para as variáveis aleatórias time_spent, defina size como tuplas de modo que o formato seja sample_size \(\times\) sims.
  • Calcule power como a fração de p-valores menores que 0,05 (estatisticamente significativos).
  • Se power for maior ou igual a 80%, use break para sair do while. Caso contrário, continue incrementando sample_size de 10 em 10.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

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 e executar o código