Generarea replicatelor K-S
Acum ai nevoie de o funcție care să genereze replicate Kolmogorov-Smirnov dintr-o distribuție țintă, f. Construiește o funcție cu semnătura draw_ks_reps(n, f, args=(), size=10000, n_reps=10000) în acest scop. Aici, n reprezintă numărul de puncte de date, iar f este funcția pe care o vei folosi pentru a genera eșantioane din CDF-ul țintă. De exemplu, pentru a testa față de o distribuție exponențială, ai transmite np.random.exponential ca f. Această funcție primește de obicei argumente, care trebuie transmise ca un tuplu. Astfel, dacă vrei să preiei eșantioane dintr-o distribuție exponențială cu media x_mean, folosești argumentul cheie args=(x_mean,). Argumentele cheie size și n_reps reprezintă, respectiv, numărul de eșantioane extrase din distribuția țintă și numărul de replicate generate.
Acest exercițiu face parte din cursul
Studii de caz în gândirea statistică
Instrucțiuni pentru exercițiu
- Scrie o funcție cu semnătura
draw_ks_reps(n, f, args=(), size=10000, n_reps=10000)care face următoarele:- Generează
sizeeșantioane din distribuția țintăf. Reține că, pentru a transmiteargsfuncției de eșantionare, trebuie să folosești construcțiaf(*args, size=size). Stochează rezultatul înx_f. - Inițializează array-ul de replicate,
reps, ca un array gol cun_repsintrări. - Scrie o buclă
forcare execută den_repsori următoarele:- Extrage
neșantioane dinf. Folosește din nou*argsîn apelul funcției. Stochează rezultatul în variabilax_samp. - Calculează statistica K-S folosind
dcst.ks_stat(), funcția pe care ai scris-o în exercițiul anterior, stocată convenabil în modululdcst. Stochează rezultatul în array-ulreps.
- Extrage
- Returnează array-ul
reps.
- Generează
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
____ ____:
# 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