Kom igångKom igång gratis

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)

Visa kurs

Övningsinstruktioner

  • Använd funktionen rng.poisson() för att dra 10000 sampel från en Poissonfördelning med medelvärdet 10.
  • Skapa en lista med de n- och p-värden som ska användas för binomialfördelningen. Välj n = [20, 100, 1000] och p = [0.5, 0.1, 0.01] så att \(np\) alltid är 10.
  • Använd rng.binomial() inuti den angivna for-loopen för att dra 10000 sampel från en binomialfördelning för varje n, p-par, och skriv ut medelvärdet och standardavvikelsen för samplen. Det finns 3 n, p-par: 20, 0.5, 100, 0.1 och 1000, 0.01. Dessa nås inuti loopen som n[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))
Redigera och kör kod