Začněte nyníZačněte zdarma

Vztah mezi binomickým a Poissonovým rozdělením

Právě sis poslechl/a, že Poissonovo rozdělení je limitou binomického rozdělení pro vzácné události. Dává to smysl, když se zamyslíš nad příběhy. Představ si, že každou minutu po dobu hodiny provádíme Bernoulliho pokus s pravděpodobností úspěchu 0,1. Provedeme tak 60 pokusů a počet úspěchů se řídí binomickým rozdělením — očekáváme přibližně 6 úspěchů. To je přesně jako příběh s Poissonovým rozdělením z videa, kde dostaneme průměrně 6 návštěv webové stránky za hodinu. Poissonovo rozdělení s hodnotou \(np\) jako průměrnou četností tedy aproximuje binomické rozdělení pro \(n\) Bernoulliho pokusů s pravděpodobností úspěchu \(p\) (přičemž \(n\) je velké a \(p\) malé). Důležité je, že s Poissonovým rozdělením se často pracuje jednodušeji, protože má pouze jeden parametr místo dvou u binomického rozdělení.

Pojďme tato dvě rozdělení prozkoumat výpočetně. Vypočítáš průměr a směrodatnou odchylku vzorků z Poissonova rozdělení s průměrnou četností 10. Pak vypočítáš průměr a směrodatnou odchylku vzorků z binomického rozdělení s parametry \(n\) a \(p\) tak, aby platilo \(np = 10\).

Toto cvičení je součástí kurzu

Statistical Thinking in Python (Part 1)

Zobrazit kurz

Pokyny k cvičení

  • Pomocí funkce rng.poisson() vygeneruj 10000 vzorků z Poissonova rozdělení s průměrem 10.
  • Vytvoř seznam hodnot n a p pro binomické rozdělení. Zvol n = [20, 100, 1000] a p = [0.5, 0.1, 0.01] tak, aby součin \(np\) byl vždy roven 10.
  • Pomocí rng.binomial() uvnitř připraveného cyklu for vygeneruj 10000 vzorků z binomického rozdělení pro každou dvojici n, p a vypiš průměr a směrodatnou odchylku vzorků. Jsou tu 3 dvojice n, p: 20, 0.5, 100, 0.1 a 1000, 0.01. Uvnitř cyklu k nim přistupuješ jako n[i], p[i].

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# Draw 10,000 samples out of Poisson distribution: samples_poisson


# Print the mean and standard deviation
print('Poisson:     ', np.mean(samples_poisson),
                       np.std(samples_poisson))

# Specify values of n and p to consider for Binomial: n, p



# Draw 10,000 samples for each n,p pair: samples_binomial
for i in range(3):
    samples_binomial = ____

    # Print results
    print('n =', n[i], 'Binom:', np.mean(samples_binomial),
                                 np.std(samples_binomial))
Upravit a spustit kód