LoslegenKostenlos starten

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

<Kurs>Fallstudien zum statistischen Denken</Kurs>
Kurs ansehen

Übungsanweisungen

  • 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 praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

____ ____:
    # 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