Aan de slagGa gratis aan de slag

Hypothesetoets: Zijn snavels dieper in 2012?

Je ECDF-plot en het bepalen van het betrouwbaarheidsinterval maken vrij duidelijk dat de snavels van G. scandens op Daphne Major dieper zijn geworden. Maar kan het zijn dat dit effect gewoon toeval is? Met andere woorden: wat is de kans dat we het geobserveerde verschil in gemiddelde snaveldiepte krijgen als de gemiddelden gelijk zouden zijn?

Let op! De hypothese die we testen is niet dat de snaveldieptes uit dezelfde verdeling komen. Daarvoor zouden we een permutatietoets kunnen gebruiken. De hypothese is dat de gemiddelden gelijk zijn. Om deze hypothesetoets uit te voeren, moeten we de twee gegevenssets verschuiven zodat ze hetzelfde gemiddelde hebben en vervolgens bootstrap-steekproeven gebruiken om het verschil van gemiddelden te berekenen.

Deze oefening maakt deel uit van de cursus

Statistical Thinking in Python (deel 2)

Cursus bekijken

Oefeninstructies

  • Maak een samengevoegde array van de snaveldieptes van 1975 en 2012 en bereken en sla het gemiddelde op.
  • Verschuif bd_1975 en bd_2012 zodat hun gemiddelden gelijk zijn aan het zojuist berekende gemiddelde van de gecombineerde gegevensset.
  • Neem 10.000 bootstrap-replicaties van het gemiddelde voor zowel de snaveldieptes van 1975 als die van 2012.
  • Trek de replicaties van 1975 af van die van 2012 om bootstrap-replicaties van het verschil te krijgen.
  • Bereken en print de p-waarde. Het geobserveerde verschil in gemiddelden dat je in de vorige oefening hebt berekend staat nog in je namespace als mean_diff.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Compute mean of combined data set: combined_mean
combined_mean = ____(____((bd_1975, bd_2012)))

# Shift the samples
bd_1975_shifted = ____
bd_2012_shifted = ____

# Get bootstrap replicates of shifted data sets
bs_replicates_1975 = ____
bs_replicates_2012 = ____

# Compute replicates of difference of means: bs_diff_replicates
bs_diff_replicates = ____

# Compute the p-value
p = np.sum(____ >= ____) / len(____)

# Print p-value
print('p =', p)
Code bewerken en uitvoeren