Entendendo a distribuição de Poisson na prática
Estou acostumado a ver pessoas chegando com planilhas de milhões de linhas tentando ajustar uma distribuição normal a dados que gritam ser discretos. O problema não é a matemática em si. É que a gente tende a confundir o formato dos dados com a intenção da modelagem. A distribuição de poisson é uma das distribuições mais mal utilizadas que eu já vi no dia a dia. Não pela fórmula, mas pela aplicação. As pessoas pegam o e pronto, acham que entenderam algo. O negócio é muito mais fino do que isso.
a distribuição de poisson é uma das distribuições mais úteis quando você para de forçar a barra
O conceito básico é simples. Você tem eventos que acontecem de forma independente, a uma taxa média constante ao longo do tempo ou espaço, e quer saber a probabilidade de um certo número deles ocorrer. A fórmula é aquela clássica: P(X = k) = (e^(-) * ^k) / k!. O é a média, e aqui está o primeiro ponto que muita gente erra. Para a Poisson pura, média e variância precisam ser iguais. Se o seu conjunto de dados tem variância muito maior que a média, você já tá com overdispersion na cara e a Poisson padrão não vai servir. Eu trabalhava num projeto de manutenção preditiva há uns anos. Tínhamos dados de falhas em válvulas industriais. O engenheiro responsável calculou a taxa média de falha por mês e ajustou uma Poisson. Os resíduos mostravam um padrão claro de agrupamento que a distribuição não captava. Acontece que as válvulas não falhavam de forma totalmente independente. Havia um fator de envelhecimento compartilhado dentro de cada lote de fabricação que gerava dependência latente. O que eu fiz foi usar uma mistura de Poisson com um efeito aleatório, basicamente uma Poisson-Gama, que é a distribuição negativa binomial. Isso resolveu o overdispersion de forma elegante e o modelo ficou com performance preditiva bem superior. Custou duas semanas a mais de trabalho, mas salvou o resto do projeto.
Outro ponto que merece atenção é a relação com o processo de Poisson. A distribuição Poisson descreve o número de eventos em um intervalo fixo. Já o processo de Poisson é a evolução temporal desses eventos. Se você precisa modelar o tempo até o próximo evento, olhar para a exponencial, não para a Poisson. Confundir essas duas coisas gera modelos completamente equivocados, e eu vejo isso acontecer frequentemente em relatórios técnicos. A validação prática merece um parágrafo só. O primeiro teste que eu faço é sempre o gráfico de dispersão entre média e variância por grupo. Se os pontos se alinham numa linha de 45 graus, a Poisson pode funcionar. Se esparramarem, precisa pensar em generalizações. O segundo teste é o qui-quadrado de aderência com os bins agrupados, porque caudas raras com frequências esperadas menores que cinco distorcem o resultado. Terceiro, olhe os resíduos padronizados. Se mais de 5% deles ficam fora do intervalo -2 a +2, o modelo não está capturando a estrutura dos dados.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Existe uma armadilha comum com dados temporais. Quando você tem variações sazonais ou tendências, aplicar uma Poisson homogênea ignora completamente essa variação sistemática. O modelo vai parecer aceitável em métricas agregadas e fracassar nos detalhes. A solução passa por incluir offsets logarítmicos quando os tempos de observação variam, ou usar modelos GLM com link log e estrutura hierárqucia se a variabilidade mudar entre grupos. Um detalhe técnico que pouca gente menciona: a Poisson converge para a normal quando é suficientemente grande, mas "suficientemente grande" varia conforme a precisão que você precisa. Para simulações, acima de 20 já dá uma aproximação razoável. Para testes de hipóteses com caudas pequenas, você precisa de bem maior, coisa acima de 100, senão a aproximação normal subestima os valores-p de forma significativa.
A parte chata é que ferramentas como o R e o Python tratam a Poisson de forma quase excessivamente simples por padrão. Funções como poisson.test() ou statsmodels.glm com família poisson não alertam automaticamente sobre overdispersion. É responsabilidade do analista checar. Eu configurei uma rotina de diagnóstico que roda automaticamente em todos os modelos que eu produzo: calcula o índice de dispersão, gera resíduosPearson, roda um teste de extra-dispersão e compara com uma negativa binomial usando AIC. Se a negativa binomial tiver AIC pelo menos 10 pontos menor, eu descarto a Poisson sem pensar. Esse número de 10 vem da regra prática de Kass e Raftery, e funciona bem como threshold conservador. Há ainda situações onde a Poisson é forçada a servir onde não pertence. Contagens com muitos zeros, por exemplo, são frequentes em dados ecológicos ou de atendimento hospitalar. Aí uma Poisson simples simplesmente não consegue dar conta da massa de zeros. O caminho é usar modelos zero-inflados ou hurdle, que combinam uma componente logística para os zeros com uma contagem para o restante. Eu passei três meses ajustando um modelo de Poisson para dados de infecções hospitalares antes de perceber que 40% das unidades tinham apenas zeros. Trocar para zero-inflated Poisson reduziu o AIC em mais de 200 pontos. Fosse um erro grave deixar isso passar.
O que eu recomendo em resumo é simples, mas exige disciplina. Aprenda a distribuição, sim. Memorize as propriedades. Mas antes de ajustar qualquer modelo Poisson, responda três perguntas: os eventos são independentes? A taxa é constante no intervalo considerado? A variância é proporcional à média? Se alguma dessas respostas for não, pare e pense em outra coisa. A distribuição de Poisson não é bala de prata e tratá-la como tal é o erro mais caro que eu já vi cometer em projetos reais.