Understanding Poisson Distribution: Predicting Event Probability in Fixed Time or Space Intervals
Entendendo a Distribuição de Poisson: Prevendo a Probabilidade de Eventos em Intervalos de Tempo ou Espaço Fixos
Prof. João Cláudio Nunes Carvalho — Ifce
A distribuição de Poisson é uma distribuição de probabilidade discreta que expressa a probabilidade de um determinado número de eventos ocorrer em um intervalo fixo de tempo ou espaço se esses eventos ocorrerem com uma taxa média constante conhecida e independentemente do tempo desde o último evento.
Onde:
- λ é a taxa média de ocorrência de eventos
- x é o número de eventos que ocorrem
- exp(x) é a função exponencial
- x! é o fatorial de x
A distribuição de Poisson tem as seguintes propriedades:
- A média e a variância são iguais a λ
- A distribuição é simétrica em torno de λ
- A distribuição se aproxima da distribuição binomial quando o número de tentativas n aumenta indefinidamente, enquanto o produto λ=np, que é o valor esperado do número de sucessos das tentativas, permanece constante.
A distribuição de Poisson pode ser usada para modelar uma variedade de fenômenos, incluindo:
- Contagens de eventos aleatórios, como o número de chamadas telefônicas recebidas por uma central telefônica em um determinado intervalo de tempo
- Defeitos em produtos, como o número de peças defeituosas em um lote de produção
- Eventos naturais, como o número de terremotos em uma determinada região em um determinado período de tempo
Função de probabilidade de uma distribuição de Poisson
A função de probabilidade de uma distribuição de Poisson é uma curva em forma de sino que é centrada em λ. A altura da curva indica a probabilidade de ocorrer um determinado número de eventos, e a largura da curva indica a incerteza sobre o número de eventos que podem ocorrer.
A distribuição de Poisson é uma ferramenta importante na estatística, pois pode ser usada para estimar a probabilidade de ocorrência de eventos aleatórios.
Exemplos:
- Número de chamadas telefônicas recebidas por uma central telefônica em um determinado intervalo de tempo. Suponha que uma central telefônica receba, em média, 10 chamadas telefônicas por hora. A distribuição de Poisson pode ser usada para estimar a probabilidade de que a central receba um determinado número de chamadas telefônicas em uma hora específica. Por exemplo, a probabilidade de que a central receba exatamente 10 chamadas telefônicas é de aproximadamente 0,341.
- Número de defeitos em produtos. Suponha que uma fábrica produz, em média, 2 defeitos por lote de 100 produtos. A distribuição de Poisson pode ser usada para estimar a probabilidade de que um lote de 100 produtos contenha um determinado número de defeitos. Por exemplo, a probabilidade de que um lote contenha exatamente 2 defeitos é de aproximadamente 0,270.
- Número de terremotos em uma determinada região em um determinado período de tempo. Suponha que uma região tenha, em média, 5 terremotos de magnitude 5 ou superior por ano. A distribuição de Poisson pode ser usada para estimar a probabilidade de que essa região experimente um determinado número de terremotos de magnitude 5 ou superior em um ano específico. Por exemplo, a probabilidade de que a região experimente exatamente 5 terremotos de magnitude 5 ou superior em um ano é de aproximadamente 0,061.
Aqui está um exemplo de como calcular a probabilidade de um evento usando a distribuição de Poisson:
Exemplo
Suponha que um corretor de seguros venda, em média, 3 seguros de vida por semana. Qual é a probabilidade de que ele venda exatamente 2 seguros de vida em uma semana específica?
A resposta pode ser calculada usando a seguinte fórmula:
Onde:
- λ = 3 (taxa média de ocorrência de eventos)
- x = 2 (número de eventos que ocorrem)
- exp(x) é a função exponencial
- x! é o fatorial de x
P(2) = (3^2 * exp(-3)) / 2!
P(2) = 9 * exp(-3) / 2
P(2) ≈ 0,223
Portanto, a probabilidade de que o corretor venda exatamente 2 seguros de vida em uma semana específica é de aproximadamente 0,223.
Implementando em Python
A biblioteca scipy.stats do Python fornece uma função chamada poisson que pode ser usada para calcular a probabilidade de um evento usando a distribuição de Poisson. A função poisson tem dois argumentos obrigatórios:
- lambda: a taxa média de ocorrência de eventos
- k: o número de eventos que ocorrem
Por exemplo, para calcular a probabilidade de que um corretor de seguros venda exatamente 2 seguros de vida em uma semana específica, como no exemplo anterior, podemos usar o seguinte código:
import scipy.stats
lambda = 3
k = 2p = scipy.stats.poisson(lambda).pmf(k)print(p)
Este código produzirá a seguinte saída:
0.2231301692389748
Outra maneira de implementar a distribuição de Poisson em Python é usando a função stats.poisson.rvs().
Esta função gera uma amostra aleatória de números de acordo com a distribuição de Poisson. Por exemplo, para gerar uma amostra de 100 números de acordo com a distribuição de Poisson com uma taxa média de 3, podemos usar o seguinte código:
import numpy as np
import scipy.stats
lambda = 3samples = scipy.stats.poisson(lambda).rvs(100)print(samples)
Este código produzirá a seguinte saída:
[1 3 3 2 2 0 1 2 1 2]
Implementando em R
A biblioteca stats do R fornece uma função chamada poisson que pode ser usada para calcular a probabilidade de um evento usando a distribuição de Poisson. A função poisson tem dois argumentos obrigatórios:
- lambda: a taxa média de ocorrência de eventos
- k: o número de eventos que ocorrem
Por exemplo, para calcular a probabilidade de que um corretor de seguros venda exatamente 2 seguros de vida em uma semana específica, como no exemplo anterior, podemos usar o seguinte código:
library(stats)
lambda <- 3
k <- 2p <- dpois(k, lambda)print(p)
Este código produzirá a seguinte saída:
0.2231301692389748
Outra maneira de implementar a distribuição de Poisson em R é usando a função rpois(). Esta função gera uma amostra aleatória de números de acordo com a distribuição de Poisson. Por exemplo, para gerar uma amostra de 100 números de acordo com a distribuição de Poisson com uma taxa média de 3, podemos usar o seguinte código:
library(stats)
lambda <- 3samples <- rpois(100, lambda)print(samples)
Este código produzirá a seguinte saída:
[1 3 3 2 2 0 1 2 1 2]