Sambandet mellan binomial- och Poissonfördelningen
Du hörde nyss att Poissonfördelningen är en gräns för binomialfördelningen vid sällsynta händelser. Det är logiskt om man tänker på de bakomliggande berättelserna. Säg att vi utför ett Bernoulli-försök varje minut under en timme, varje gång med sannolikheten 0,1 för framgång. Vi genomför då 60 försök, och antalet lyckade försök följer en binomialfördelning – vi förväntar oss ungefär 6 lyckade försök. Det påminner om Poisson-berättelsen från videon, där vi i genomsnitt får 6 besök på en webbplats per timme. Poissonfördelningen med ankomstfrekvens \(np\) approximerar alltså en binomialfördelning med \(n\) Bernoulli-försök och framgångssannolikheten \(p\) (när \(n\) är stort och \(p\) är litet). En viktig fördel med Poissonfördelningen är att den ofta är enklare att arbeta med, eftersom den bara har en parameter jämfört med binomialfördelningens två.
Låt oss utforska de två fördelningarna beräkningsmässigt. Du beräknar medelvärdet och standardavvikelsen för sampel från en Poissonfördelning med ankomstfrekvensen 10. Sedan beräknar du medelvärdet och standardavvikelsen för sampel från en binomialfördelning med parametrarna \(n\) och \(p\) sådana att \(np = 10\).
Den här övningen är en del av kursen
Statistiskt tänkande i Python (del 1)
Övningsinstruktioner
- Använd funktionen
rng.poisson()för att dra10000sampel från en Poissonfördelning med medelvärdet10. - Skapa en lista med de
n- ochp-värden som ska användas för binomialfördelningen. Väljn = [20, 100, 1000]ochp = [0.5, 0.1, 0.01]så att \(np\) alltid är 10. - Använd
rng.binomial()inuti den angivnafor-loopen för att dra10000sampel från en binomialfördelning för varjen, p-par, och skriv ut medelvärdet och standardavvikelsen för samplen. Det finns 3n, p-par:20, 0.5,100, 0.1och1000, 0.01. Dessa nås inuti loopen somn[i], p[i].
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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))