Aan de slagGa gratis aan de slag

Bootstrap-hypothesetoets op spermatelling bij bijen

Nu ga je de volgende hypothese testen: gemiddeld hebben mannelijke bijen die behandeld zijn met neonicotinoïde insecticide evenveel actieve zaadcellen per milliliter sperma als onbehandelde mannelijke bijen. Je gebruikt het verschil in gemiddelden als je teststatistiek.

Ter referentie: de aanroep voor de functie draw_bs_reps() die je in hoofdstuk 2 schreef is draw_bs_reps(data, func, size=1).

Deze oefening maakt deel uit van de cursus

Statistical Thinking in Python (deel 2)

Cursus bekijken

Oefeninstructies

  • Bereken het gemiddelde aantal levende zaadcellen van control minus dat van treated.
  • Bereken het gemiddelde van alle aantallen levende zaadcellen. Plak hiervoor eerst control en treated aan elkaar en neem daarna het gemiddelde van de samengevoegde array.
  • Genereer verschoven gegevenssets voor zowel control als treated zodat de verschoven gegevenssets hetzelfde gemiddelde hebben. Dit is al voor je gedaan.
  • Genereer 10.000 bootstrapreplicaties van het gemiddelde voor beide verschoven arrays. Gebruik je functie draw_bs_reps().
  • Bereken de bootstrapreplicaties van het verschil in gemiddelden.
  • De code om de p-waarde te berekenen en af te drukken is voor je geschreven. Klik op Verzenden om het resultaat te zien!

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Compute the difference in mean sperm count: diff_means
diff_means = ____

# Compute mean of pooled data: mean_count
mean_count = ____

# Generate shifted data sets
control_shifted = control - np.mean(control) + mean_count
treated_shifted = treated - np.mean(treated) + mean_count

# Generate bootstrap replicates
bs_reps_control = ____(____,
                       np.mean, size=10000)
bs_reps_treated = ____(____,
                       np.mean, size=10000)

# Get replicates of difference of means: bs_replicates
bs_replicates = ____

# Compute and print p-value: p
p = np.sum(bs_replicates >= np.mean(control) - np.mean(treated)) \
            / len(bs_replicates)
print('p-value =', p)
Code bewerken en uitvoeren