Een tweesteeks bootstrap-hypothesetoets voor het verschil in gemiddelden
We willen nu de hypothese testen dat Kikker A en Kikker B dezelfde gemiddelde inslagkracht hebben, maar niet per se dezelfde verdeling, wat met een permutatietoets ook niet mogelijk is.
Voor de tweesteeks bootstraptoets verschuiven we beide arrays zodat ze hetzelfde gemiddelde hebben, omdat we de hypothese simuleren dat hun gemiddelden inderdaad gelijk zijn. Daarna trekken we bootstrap-steekproeven uit de verschoven arrays en berekenen we het verschil in gemiddelden. Dit vormt één bootstrap-replicatie, en we genereren er veel. De p-waarde is het aandeel replicaties met een verschil in gemiddelden dat groter is dan of gelijk aan wat is waargenomen.
De objecten forces_concat en empirical_diff_means staan al in je namespace.
Deze oefening maakt deel uit van de cursus
Statistical Thinking in Python (deel 2)
Oefeninstructies
- Bereken het gemiddelde van alle krachten (uit
forces_concat) metnp.mean(). - Genereer verschoven gegevenssets voor zowel
force_aalsforce_bzodat het gemiddelde van elk gelijk is aan het gemiddelde van de samengevoegde array met inslagkrachten. - Genereer elk 10.000 bootstrap-replicaties van het gemiddelde voor de twee verschoven arrays.
- Bereken de bootstrap-replicaties van het verschil in gemiddelden door de replicaties van de verschoven inslagkracht van Kikker B af te trekken van die van Kikker A.
- Bereken en print de p-waarde op basis van je bootstrap-replicaties.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Compute mean of all forces: mean_force
mean_force = ____
# Generate shifted arrays
force_a_shifted = force_a - np.mean(force_a) + mean_force
force_b_shifted = ____
# Compute 10,000 bootstrap replicates from shifted arrays
bs_replicates_a = draw_bs_reps(____, ____, ____)
bs_replicates_b = draw_bs_reps(____, ____, ____)
# Get replicates of difference of means: bs_replicates
bs_replicates = ____
# Compute and print p-value: p
p = ____ / ____
print('p-value =', p)