Variabilita vzorkových statistik
Pokud vytvoříme jeden vzorek o velikosti size=1000 tak, že z populace náhodně vybereme tolik bodů, a pak vypočítáme vzorkovou statistiku – například průměr – dostaneme jednu hodnotu, která celý vzorek shrnuje.
Pokud tento proces vzorkování zopakujeme num_samples=100 krát, získáme 100 vzorků. Výpočet vzorkové statistiky, například průměru, pro každý z těchto vzorků nám pak dá rozdělení hodnot průměru. Cílem je vypočítat průměr průměrů a směrodatnou odchylku průměrů.
V tomto cvičení využiješ předem načtené proměnné population, num_samples a num_pts. Pole means a deviations jsou inicializována na nulu – slouží jako kontejnery pro cyklus for.
Toto cvičení je součástí kurzu
Úvod do lineárního modelování v Pythonu
Pokyny k cvičení
- Pro každý z
num_samples=100vzorků vygeneruj vzorek a vypočítej a ulož vzorkové statistiky. - V každé iteraci vytvoř
samplepomocínp.random.choice()tak, že z populace náhodně vybereme1000bodů. - V každé iteraci vypočítej a ulož výsledky metod
sample.mean()asample.std()pro průměr a směrodatnou odchylku vzorku. - Pro pole
meansi poledeviationsvypočítej průměr a směrodatnou odchylku každého z nich a výsledky vypiš.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Initialize two arrays of zeros to be used as containers
means = np.zeros(num_samples)
stdevs = np.zeros(num_samples)
# For each iteration, compute and store the sample mean and sample stdev
for ns in range(num_samples):
sample = np.____.choice(population, num_pts)
means[ns] = sample.____()
stdevs[ns] = sample.____()
# Compute and print the mean() and std() for the sample statistic distributions
print("Means: center={:>6.2f}, spread={:>6.2f}".format(means.mean(), means.std()))
print("Stdevs: center={:>6.2f}, spread={:>6.2f}".format(stdevs.____(), stdevs.____()))