Aan de slagGa gratis aan de slag

K-S-replicaten trekken

Nu heb je een functie nodig om Kolmogorov–Smirnov-replicaten te trekken uit een doeldistributie, f. Schrijf hiervoor een functie met de signatuur draw_ks_reps(n, f, args=(), size=10000, n_reps=10000). Hier is n het aantal datapunten, en f is de functie die je gebruikt om steekproeven te genereren uit de doel-CDF. Als je bijvoorbeeld wilt toetsen tegen een Exponential-verdeling, geef je np.random.exponential door als f. Deze functie neemt meestal argumenten aan, die je als een tuple moet doorgeven. Dus als je steekproeven wilt nemen uit een Exponential-verdeling met gemiddelde x_mean, gebruik je het keyword args=(x_mean,). De keyword-argumenten size en n_reps geven respectievelijk het aantal te nemen samples uit de doeldistributie en het aantal te trekken replicaten aan.

Deze oefening maakt deel uit van de cursus

Casestudies in statistisch denken

Cursus bekijken

Oefeninstructies

  • Schrijf een functie met de signatuur draw_ks_reps(n, f, args=(), size=10000, n_reps=10000) die het volgende doet.
    • Genereer size samples uit de doeldistributie f. Vergeet niet dat je de args moet doorgeven aan de samplingfunctie met de constructie f(*args, size=size). Sla het resultaat op als x_f.
    • Initialiseer de replicatenarray, reps, als een lege array met n_reps elementen.
    • Schrijf een for-lus die het volgende n_reps keer doet.
      • Trek n samples uit f. Gebruik opnieuw *args in je functieaanroep. Sla het resultaat op in de variabele x_samp.
      • Bereken de K-S-statistiek met dcst.ks_stat(), de functie die je in de vorige oefening hebt geschreven en die handig is opgeslagen in de module dcst. Sla het resultaat op in de array reps.
    • Retourneer de array reps.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

____ ____:
    # Generate samples from target distribution
    x_f = ____
    
    # Initialize K-S replicates
    reps = ____
    
    # Draw replicates
    for i in range(n_reps):
        # Draw samples for comparison
        x_samp = ____
        
        # Compute K-S statistic
        ____[i] = ____

    return reps
Code bewerken en uitvoeren