Aan de slagGa gratis aan de slag

Bootstrap-steekproeven visualiseren

In deze oefening genereer je bootstrap-steekproeven uit de jaarlijkse neerslagdata gemeten bij het Sheffield Weather Station in het VK van 1883 tot 2015. De data staan in de NumPy-array rainfall in millimeters (mm). Door de bootstrap-steekproeven grafisch weer te geven met een ECDF krijg je gevoel voor hoe bootstrap-sampling probabilistische beschrijvingen van data mogelijk maakt.

Deze oefening maakt deel uit van de cursus

Statistical Thinking in Python (deel 2)

Cursus bekijken

Oefeninstructies

  • Schrijf een for-loop om 50 bootstrap-steekproeven van de neerslagdata te nemen en plot hun ECDF.
    • Gebruik np.random.choice() om een bootstrap-steekproef te genereren uit de NumPy-array rainfall. Zorg dat de size van de herbemonsterde array len(rainfall) is.
    • Gebruik de functie ecdf() die je in het eerste deel van deze cursus hebt geschreven om de x- en y-waarden te genereren voor de ECDF van de bootstrap-steekproef bs_sample.
    • Plot de ECDF-waarden. Specificeer color='gray' (voor grijze punten) en alpha=0.1 (voor halftransparantie, omdat we er zoveel over elkaar heen leggen) naast de keyword-argumenten marker='.' en linestyle='none'.
  • Gebruik ecdf() om x- en y-waarden te genereren voor de ECDF van de oorspronkelijke neerslagdata in de array rainfall.
  • Plot de ECDF-waarden van de oorspronkelijke data.
  • Klik op Verzenden om de steekproeven te visualiseren!

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

for _ in range(50):
    # Generate bootstrap sample: bs_sample
    bs_sample = ____(____, size=____)

    # Compute and plot ECDF from bootstrap sample
    x, y = ____
    _ = plt.plot(____, ____, ____='.', ____='none',
                 ____='gray', ____=0.1)

# Compute and plot ECDF from original data
x, y = ____
_ = plt.plot(____, ____, ____='.')

# Make margins and label axes
plt.margins(0.02)
_ = plt.xlabel('yearly rainfall (mm)')
_ = plt.ylabel('ECDF')

# Show the plot
plt.show()
Code bewerken en uitvoeren