Dra K-S-replikat
Nu behöver du en funktion som drar Kolmogorov-Smirnov-replikat från en målfördelning, f. Konstruera en funktion med signaturen draw_ks_reps(n, f, args=(), size=10000, n_reps=10000) för detta ändamål. Här är n antalet datapunkter och f den funktion du använder för att generera sampel från mål-CDF:en. Om du till exempel vill testa mot en exponentialfördelning skickar du np.random.exponential som f. Den här funktionen tar vanligtvis argument, som måste skickas som en tupel. Om du vill ta sampel från en exponentialfördelning med medelvärdet x_mean använder du nyckelordet args=(x_mean,). Nyckelordsargumenten size och n_reps anger respektive antalet sampel att ta från målfördelningen och antalet replikat att dra.
Den här övningen är en del av kursen
Fallstudier i statistiskt tänkande
Övningsinstruktioner
- Skriv en funktion med signaturen
draw_ks_reps(n, f, args=(), size=10000, n_reps=10000)som gör följande.- Generera
sizesampel från målfördelningenf. Kom ihåg att du ska använda konstruktionenf(*args, size=size)för att skicka medargstill samplingsfunktionen. Lagra resultatet ix_f. - Initialisera replikat-arrayen
repssom en tom array medn_repsposter. - Skriv en
for-slinga som utför följanden_repsgånger.- Dra
nsampel frånf. Använd återigen*argsi funktionsanropet. Lagra resultatet i variabelnx_samp. - Beräkna K-S-statistikan med hjälp av
dcst.ks_stat()– det vill säga den funktion du skrev i föregående övning, som finns lagrad i modulendcst. Lagra resultatet i arrayenreps.
- Dra
- Returnera arrayen
reps.
- Generera
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
____ ____:
# 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