Teste de hipótese - Diferença de médias
Queremos testar a hipótese de que existe uma diferença nas doações médias recebidas de A e B. Antes, você aprendeu a gerar uma permutação dos dados. Agora, vamos gerar uma distribuição nula da diferença de médias e, em seguida, calcular o p-valor.
Para a distribuição nula, primeiro geramos vários conjuntos de dados permutados e armazenamos a diferença de médias em cada caso. Depois, calculamos a estatística de teste como a diferença de médias com o conjunto de dados original. Por fim, aproximamos o p-valor calculando o dobro da fração de casos em que a diferença é maior ou igual ao valor absoluto da estatística de teste (hipótese bicaudal). Um p-valor menor do que, por exemplo, 0,05 pode indicar significância estatística.
Este exercício faz parte do curso
Simulação Estatística em Python
Instruções do exercício
- Gere múltiplas permutações de
donations_Aedonations_Be atribua aperm. - Defina
samplescomo a diferença das médias depermuted_A_datasetsepermuted_B_datasets. Definimosaxis=1para obter uma média para cada conjunto de dados em vez de uma média geral. - Defina
test_statcomo a diferença das médias dedonations_Aedonations_B. - Calcule o p-valor
p_valcomo o dobro da fração desamplesmaior ou igual ao valor absoluto detest_stat.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Generate permutations equal to the number of repetitions
perm = np.array([np.random.____(len(____) + len(____)) for i in range(reps)])
permuted_A_datasets = data[perm[:, :len(donations_A)]]
permuted_B_datasets = data[perm[:, len(donations_A):]]
# Calculate the difference in means for each of the datasets
samples = np.mean(____, axis=1) - np.mean(____, axis=1)
# Calculate the test statistic and p-value
test_stat = ____
p_val = 2*np.sum(____ >= np.abs(____))/reps
print("p-value = {}".format(p_val))