Prueba de hipótesis - Diferencia de medias
Queremos contrastar la hipótesis de que existe una diferencia en las donaciones medias recibidas por A y B. Antes aprendiste a generar una permutación de los datos. Ahora, generaremos una distribución nula de la diferencia de medias y luego calcularemos el valor p.
Para la distribución nula, primero generamos múltiples conjuntos de datos permutados y almacenamos la diferencia de medias en cada caso. Después, calculamos el estadístico de prueba como la diferencia de medias con el conjunto de datos original. Por último, aproximamos el valor p calculando el doble de la fracción de casos en los que la diferencia es mayor o igual que el valor absoluto del estadístico de prueba (hipótesis bilateral). Un valor p menor que, por ejemplo, 0,05 puede determinar la significación estadística.
Este ejercicio forma parte del curso
Simulación estadística en Python
Instrucciones del ejercicio
- Genera múltiples permutaciones de
donations_Aydonations_By asígnalas aperm. - Define
samplescomo la diferencia de medias depermuted_A_datasetsypermuted_B_datasets. Establecemosaxis=1para obtener una media por cada conjunto de datos en lugar de una media global. - Define
test_statcomo la diferencia de medias dedonations_Aydonations_B. - Calcula el valor p
p_valcomo el doble de la fracción desamplesque son mayores o iguales que el valor absoluto detest_stat.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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))