Relatie tussen Binomiale en Poissonverdelingen
Je hebt net gehoord dat de Poissonverdeling de limiet is van de Binomiale verdeling voor zeldzame gebeurtenissen. Dat is logisch als je aan de verhalen denkt. Stel dat we elk minuut een Bernoulli-proef doen gedurende een uur, steeds met een succeskans van 0,1. We doen dan 60 proeven; het aantal successen is binomiaal verdeeld en we verwachten ongeveer 6 successen. Dit lijkt op het Poissonverhaal uit de video, waarin we gemiddeld 6 hits per uur op een website krijgen. De Poissonverdeling met aankomsttempo gelijk aan \(np\) benadert dus een Binomiale verdeling voor \(n\) Bernoulli-proeven met succeskans \(p\) (met groot \(n\) en klein \(p\)). Belangrijk is dat de Poissonverdeling vaak eenvoudiger is om mee te werken, omdat ze maar één parameter heeft in plaats van twee bij de Binomiale verdeling.
Laten we deze twee verdelingen computationeel verkennen. Je berekent het gemiddelde en de standaardafwijking van steekproeven uit een Poissonverdeling met een aankomsttempo van 10. Daarna bereken je het gemiddelde en de standaardafwijking van steekproeven uit een Binomiale verdeling met parameters \(n\) en \(p\) zodanig dat \(np = 10\).
Deze oefening maakt deel uit van de cursus
Statistisch denken in Python (deel 1)
Oefeninstructies
- Gebruik de functie
rng.poisson()om10000steekproeven te trekken uit een Poissonverdeling met een gemiddelde van10. - Maak een lijst met de
n- enp-waarden voor de Binomiale verdeling. Kiesn = [20, 100, 1000]enp = [0.5, 0.1, 0.01]zodat \(np\) steeds 10 is. - Gebruik
rng.binomial()binnen de gegevenfor-lus om10000steekproeven te trekken uit een Binomiale verdeling voor elkn, p-paar en print het gemiddelde en de standaardafwijking van de steekproeven. Er zijn 3n, p-paren:20, 0.5,100, 0.1en1000, 0.01. Je kunt deze binnen de lus benaderen alsn[i], p[i].
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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))