Bird
Raised Fist0
SciPydata~5 mins

Poisson distribution in SciPy

Choose your learning style10 modes available
Introduction

The Poisson distribution helps us find the chance of a number of events happening in a fixed time or space when these events happen independently and at a constant rate.

Counting how many emails you get in an hour.
Finding the number of cars passing a checkpoint in 10 minutes.
Estimating how many calls a call center receives per day.
Counting the number of typos on a page of a book.
Predicting how many customers arrive at a store in an hour.
Syntax
SciPy
from scipy.stats import poisson

# Create a Poisson distribution with mean (lambda) = mu
poisson_dist = poisson(mu)

# Probability of exactly k events
prob_k = poisson_dist.pmf(k)

# Probability of k or fewer events
prob_up_to_k = poisson_dist.cdf(k)

# Generate random samples
samples = poisson_dist.rvs(size=n)

mu is the average number of events in the interval.

pmf(k) gives the probability of exactly k events.

Examples
This calculates the chance of getting exactly 2 emails when the average is 3 per hour.
SciPy
from scipy.stats import poisson

# Average 3 emails per hour
mu = 3
poisson_dist = poisson(mu)

# Probability of exactly 2 emails
prob_2 = poisson_dist.pmf(2)
print(prob_2)
This finds the chance of having 3 or fewer events when the average is 5.
SciPy
from scipy.stats import poisson

mu = 5
poisson_dist = poisson(mu)

# Probability of 0 to 3 events
prob_up_to_3 = poisson_dist.cdf(3)
print(prob_up_to_3)
This creates 5 random numbers following the Poisson distribution with mean 4.
SciPy
from scipy.stats import poisson

mu = 4
poisson_dist = poisson(mu)

# Generate 5 random samples
samples = poisson_dist.rvs(size=5)
print(samples)
Sample Program

This program calculates the chance of exactly 3 cars passing and up to 3 cars passing in one minute, assuming an average of 2 cars per minute. It also shows 10 random samples of cars passing following this distribution.

SciPy
from scipy.stats import poisson

# Suppose on average 2 cars pass a checkpoint per minute
mu = 2
poisson_dist = poisson(mu)

# Probability of exactly 3 cars passing in a minute
prob_3_cars = poisson_dist.pmf(3)

# Probability of 0 to 3 cars passing
prob_up_to_3_cars = poisson_dist.cdf(3)

# Generate 10 random samples of cars passing
samples = poisson_dist.rvs(size=10)

print(f"Probability of exactly 3 cars: {prob_3_cars:.4f}")
print(f"Probability of up to 3 cars: {prob_up_to_3_cars:.4f}")
print(f"Random samples of cars passing: {samples}")
OutputSuccess
Important Notes

The Poisson distribution assumes events happen independently and at a constant average rate.

Use pmf(k) for exact counts and cdf(k) for cumulative counts up to k.

Random samples help simulate real-world scenarios following this distribution.

Summary

Poisson distribution models counts of events in fixed intervals.

Use pmf to find the chance of exactly k events.

Use cdf to find the chance of up to k events.

Practice

(1/5)
1. What does the Poisson distribution model in data science?
easy
A. The probability of a variable being normally distributed
B. The average value of a continuous variable
C. The relationship between two categorical variables
D. The number of events happening in a fixed interval of time or space

Solution

  1. Step 1: Understand the Poisson distribution concept

    The Poisson distribution is used to model counts of events that happen independently in a fixed interval of time or space.
  2. Step 2: Match the concept to the options

    The number of events happening in a fixed interval of time or space correctly describes this as the number of events in a fixed interval, while others describe unrelated concepts.
  3. Final Answer:

    The number of events happening in a fixed interval of time or space -> Option D
  4. Quick Check:

    Poisson models event counts in intervals = A [OK]
Hint: Poisson counts events in fixed intervals, not averages or categories [OK]
Common Mistakes:
  • Confusing Poisson with normal distribution
  • Thinking Poisson models averages instead of counts
  • Mixing Poisson with categorical data analysis
2. Which of the following is the correct way to import the Poisson distribution from scipy.stats?
easy
A. from scipy.stats import poisson
B. import poisson from scipy.stats
C. from scipy import poisson.stats
D. import scipy.poisson

Solution

  1. Step 1: Recall correct Python import syntax

    Python imports use 'from module import object' format. The Poisson distribution is in scipy.stats as 'poisson'.
  2. Step 2: Check each option's syntax

    from scipy.stats import poisson uses correct syntax. Options A, B, and C have incorrect import statements.
  3. Final Answer:

    from scipy.stats import poisson -> Option A
  4. Quick Check:

    Correct import syntax = D [OK]
Hint: Use 'from scipy.stats import poisson' to import Poisson [OK]
Common Mistakes:
  • Using wrong import order or keywords
  • Trying to import from wrong submodules
  • Using 'import' instead of 'from ... import ...'
3. What is the output of this code?
from scipy.stats import poisson
rv = poisson(mu=3)
prob = rv.pmf(2)
print(round(prob, 3))
medium
A. 0.2240
B. 0.224
C. 0.149
D. 0.050

Solution

  1. Step 1: Understand the pmf function with mu=3 and k=2

    The pmf gives the probability of exactly k=2 events when the average rate mu=3.
  2. Step 2: Calculate the Poisson pmf for k=2, mu=3

    Using formula: P(k=2) = (3^2 * e^-3) / 2! ≈ 0.224
  3. Final Answer:

    0.224 -> Option B
  4. Quick Check:

    Poisson pmf(2,3) ≈ 0.224 [OK]
Hint: Use pmf(k) with mu to get exact event probability [OK]
Common Mistakes:
  • Confusing pmf with cdf
  • Rounding incorrectly
  • Using wrong mu or k values
4. Identify the error in this code snippet:
from scipy.stats import poisson
rv = poisson(4)
prob = rv.pmf(3)
print(prob)
medium
A. poisson is not imported correctly
B. pmf cannot be called on rv object
C. No error, code runs correctly
D. The parameter should be named mu=4, not just 4

Solution

  1. Step 1: Check the poisson object creation

    poisson(4) creates a frozen distribution with mean 4. The parameter can be passed positionally.
  2. Step 2: Verify pmf method usage

    Calling pmf(3) on the frozen distribution is correct and prints the probability of 3 events.
  3. Final Answer:

    No error, code runs correctly -> Option C
  4. Quick Check:

    Frozen distribution with positional mu works = A [OK]
Hint: Frozen distribution accepts positional mu parameter [OK]
Common Mistakes:
  • Thinking mu must be named explicitly
  • Assuming pmf is not a method of frozen distribution
  • Believing import is incorrect without error
5. You want to find the probability of observing at most 2 events when the average rate is 1.5. Which scipy code correctly calculates this?
hard
A. poisson.cdf(2, mu=1.5)
B. poisson.pmf(2, mu=1.5)
C. poisson.sf(2, mu=1.5)
D. poisson.cdf(1.5, mu=2)

Solution

  1. Step 1: Understand the problem requirement

    We want the probability of at most 2 events, which means P(X ≤ 2).
  2. Step 2: Identify the correct scipy function

    poisson.cdf(k, mu) gives P(X ≤ k). So poisson.cdf(2, mu=1.5) is correct.
  3. Final Answer:

    poisson.cdf(2, mu=1.5) -> Option A
  4. Quick Check:

    At most k events = cdf(k) [OK]
Hint: Use cdf(k) for probability of up to k events [OK]
Common Mistakes:
  • Using pmf instead of cdf for cumulative probability
  • Confusing survival function (sf) with cdf
  • Swapping mu and k parameters
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard