Distribuição de Poisson
Os códigos desta página rodam no navegador, mas não sozinhos: clique em Run Code em cada bloco, de cima para baixo.
A ideia
Na Aula 12 apareceu um tipo de contagem diferente da binomial. Os slides trazem exemplos: aviões que decolam por hora, usuários conectados por minuto, acidentes a cada 100 km de rodovia, clientes que chegam à fila por minuto. Não há um número fixo de tentativas \(n\): o que existe é um intervalo contínuo e uma taxa média de ocorrências nele.
As suposições do modelo são:
- a probabilidade de uma ocorrência é a mesma em dois intervalos quaisquer de mesmo tamanho;
- o que acontece em um intervalo é independente do que acontece em outro.
Com \(\mu\) = número médio de ocorrências no intervalo considerado:
\[ P(X = x) = \frac{e^{-\mu}\,\mu^{x}}{x!}, \qquad x = 0, 1, 2, \dots \qquad\qquad E(X) = Var(X) = \mu. \]
Duas diferenças em relação à binomial: os valores possíveis não têm limite superior e a média é igual à variância.
O \(\mu\) acompanha o tamanho do intervalo
Se a taxa é de 4 ocorrências por minuto, em 2 minutos a média é \(2 \times 4 = 8\), e em 30 segundos é 2. Antes de calcular qualquer coisa, ajuste \(\mu\) para o intervalo da pergunta.
Exemplo resolvido: o chatbot
Conversas entre usuário e chatbot em um site começam a uma taxa média de 4 por minuto. Seja \(X\) o número de conversas iniciadas em um minuto, \(X \sim Poisson(4)\).
- Exatamente 3 conversas em um minuto: \(P(X = 3) = \dfrac{e^{-4}\,4^3}{3!} = 0{,}1954\).
- Menos de 3 conversas: \(P(X < 3) = P(X \le 2) = 0{,}2381\).
- Menos de 4, sabendo que houve pelo menos 1: \(P(X < 4 \mid X \ge 1) = \dfrac{P(1 \le X \le 3)}{P(X \ge 1)} = 0{,}4229\).
- Exatamente 3 conversas em dois minutos: agora \(W \sim Poisson(8)\) e \(P(W = 3) = 0{,}0286\).
No código
Em stats.poisson, o parâmetro é a média mu. A ordem é (valor, mu):
Mudar o intervalo desloca e espalha a distribuição:
Quando a Poisson aproxima a binomial
Se \(n\) é grande e \(p\) é pequeno, uma \(Bin(n;\ p)\) fica muito parecida com uma \(Poisson(\mu = np)\). Com \(n = 1000\) e \(p = 0{,}003\) (\(\mu = 3\)), a diferença aparece só na quarta casa decimal. Com \(n = 10\) e \(p = 0{,}3\) (também \(\mu = 3\)), a aproximação é ruim:
Por isso a Poisson é o modelo natural para eventos raros em muitas oportunidades: blocos de dados perdidos numa rede, defeitos de fabricação, erros de digitação em um livro.
Armadilhas comuns
- Não ajustar \(\mu\) ao intervalo. Taxa por minuto e pergunta sobre 2 minutos: multiplique \(\mu\) por 2. Não calcule a probabilidade de 1 minuto e multiplique probabilidades.
- Binomial ou Poisson? Há um número fixo de tentativas \(n\) e você conta sucessos entre elas: binomial. Há um intervalo contínuo e uma taxa média, sem \(n\): Poisson.
- “Pelo menos um” pela soma. Na Poisson não há último valor. Use o complemento: \(P(X \ge 1) = 1 - P(X = 0)\).
- Esquecer o zero. Zero ocorrências é um valor possível e costuma ter probabilidade relevante: com \(\mu = 4\), \(P(X = 0) = 0{,}0183\).
- Ignorar a pista da variância. Se nos dados a variância é bem maior ou bem menor que a média, a Poisson provavelmente não é um bom modelo. Veja Poisson com dados.
Exercícios aqui na página
Complete os ______ e clique em Run Code: a correção aparece logo abaixo. Use Show Hint para uma dica e Show Solution para ver uma resolução. O Python roda no seu navegador; na primeira vez ele leva alguns segundos para carregar.
Exercício 1
Chamados de suporte chegam a uma taxa média de 3 por hora. Seja \(X\) o número de chamados em uma hora, \(X \sim Poisson(3)\). Calcule \(P(X = 0)\).
stats.poisson.pmf(x, mu).
p_zero = stats.poisson.pmf(0, 3)
p_zeroExercício 2
Em meia hora, qual a probabilidade de chegarem pelo menos 2 chamados? Primeiro ajuste o \(\mu\) ao intervalo.
Meia hora tem metade da média de uma hora.
mu_meia_hora = 3 / 2
p_pelo_menos_2 = 1 - stats.poisson.cdf(1, mu_meia_hora)
p_pelo_menos_2Exercício 3
Se o intervalo observado dobra (de uma para duas horas), o que acontece com \(\mu\)? Responda 'dobra' ou 'fica igual'.
\(\mu\) é a média de ocorrências no intervalo.
resposta = 'dobra'
respostaComandos e documentação oficial
stats.poisson.pmf(x, mu)formuláriostats.poisson.cdf(x, mu)formuláriostats.poisson.mean(mu)formuláriostats.poisson.var(mu)formuláriostats.poisson.std(mu)formulário
formulário o comando está no formulário que você pode consultar na prova.
Pratique
As listas novas de revisão abrem no Google Colab (use Arquivo → Salvar uma cópia no Drive). As listas das aulas estão no Blackboard, na pasta de cada aula.
- Aula 12 · Exemplo: Poisson com o chatbot (itens a a c e extra)Blackboard · slides e exemplos da Aula 12
- Aula 12 · Exercícios: Poisson e binomial APS7 (Exercícios 1 a 4)Blackboard · conteúdo do curso
- Aula 13 · Atividade: Poisson com dados (erupções em Kabum Prime) (Exercícios 1 a 5)Blackboard · conteúdo do curso