LoslegenKostenlos loslegen

K-S-Replikate ziehen

Jetzt brauchst du eine Funktion, um Kolmogorov-Smirnov-Replikate aus einer Zielverteilung f zu ziehen. Implementiere dazu eine Funktion mit der Signatur draw_ks_reps(n, f, args=(), size=10000, n_reps=10000). Dabei ist n die Anzahl der Datenpunkte und f die Funktion, mit der du Stichproben aus der Ziel-CDF erzeugst. Um beispielsweise gegen eine Exponentialverteilung zu testen, würdest du np.random.exponential als f übergeben. Diese Funktion nimmt in der Regel Parameter entgegen, die als Tupel übergeben werden müssen. Wenn du also Stichproben aus einer Exponentialverteilung mit dem Mittelwert x_mean ziehen möchtest, verwendest du das Schlüsselwort args=(x_mean,). Die Schlüsselwortargumente size und n_reps stehen jeweils für die Anzahl der Stichproben aus der Zielverteilung und die Anzahl der zu ziehenden Replikate.

Diese Übung ist Teil des Kurses

Fallstudien zum statistischen Denken

Kurs anzeigen

Anleitung zur Übung

  • Schreibe eine Funktion mit der Signatur draw_ks_reps(n, f, args=(), size=10000, n_reps=10000), die Folgendes tut.
    • Erzeuge size Stichproben aus der Zielverteilung f. Denk daran: Um args an die Stichprobenfunktion zu übergeben, solltest du die Schreibweise f(*args, size=size) verwenden. Speichere das Ergebnis als x_f.
    • Initialisiere das Replikate-Array reps als leeres Array mit n_reps Einträgen.
    • Schreibe eine for-Schleife, die Folgendes n_reps-mal ausführt.
      • Ziehe n Stichproben aus f. Verwende auch hier *args im Funktionsaufruf. Speichere das Ergebnis in der Variablen x_samp.
      • Berechne die K-S-Statistik mit dcst.ks_stat(), also der Funktion, die du in der vorherigen Übung geschrieben hast und die praktisch im Modul dcst gespeichert ist. Speichere das Ergebnis im Array reps.
    • Gib das Array reps zurück.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

____ ____:
    # 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 bearbeiten und ausführen