O que fazer quando os dados da contagem não se ajustam a uma distribuição Poisson

7

Eu sou um estudante de estatística de doutorado. Estou trabalhando com um conjunto de dados de contagem. É a contagem de usuários envolvidos em uma conversa de bate-papo em tempo real. O número de usuários varia de 1 a 6 e existem aproximadamente 300 dados no conjunto.

Minha motivação inicial era entender se os dados se encaixariam em uma distribuição de Poisson, pensando que, se um bom ajuste fosse encontrado, eu poderia usar esse resultado para obter mais inferência.

Para resumir uma longa história, tentei ajustar os dados e o ajuste falha em um nível de significância de 0,05. Assim, posso rejeitar minha hipótese (que uma distribuição de Poisson pode ser usada para aproximar o conjunto de dados).

Quando olho para um gráfico de densidade, acredito que a razão pela qual existe um ajuste tão ruim é que existem "valores registrados demais para 2 usuários. Uma distribuição Poisson se ajustaria melhor com menos valores nesse escaninho. No entanto, como compilei o eu mesmo não tenho motivos para acreditar que existem discrepâncias (ou seja, conversas com 2 usuários que seriam atribuídas a uma posição superior ou inferior)

users <- c(1, 2, 2, 1, 1, 1, 1, 2, 2, 3, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 4, 3, 3, 3, 1,
        2, 1, 1, 2, 4, 3, 2, 2, 1, 2, 3, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 3,
        2, 1, 2, 3, 2, 1, 2, 1, 2, 1, 1, 3, 1, 1, 1, 2, 2, 2, 3, 1, 2, 1, 2, 4, 4,
        3, 2, 2, 3, 4, 3, 3, 3, 1, 2, 4, 2, 3, 3, 2, 4, 3, 1, 2, 4, 1, 2, 2, 2, 1,
        1, 1, 2, 3, 2, 4, 5, 2, 2, 4, 2, 2, 3, 3, 3, 2, 2, 3, 1, 3, 1, 1, 1, 2, 3,
        6, 3, 3, 4, 2, 2, 2, 3, 1, 1, 1, 2, 2, 3, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2,
        3, 3, 3, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 4, 3, 3, 2, 1, 2, 4, 1, 2, 1, 2, 2,
        2, 3, 2, 2, 2, 2, 2, 3, 2, 2, 1, 1, 3, 1, 2, 1, 2, 3, 4, 2, 4, 3, 2, 2, 1,
        4, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 3, 3, 1, 1, 2, 1, 2, 1, 3, 3, 3, 3,
        4, 6, 6, 5, 5, 2, 2, 3, 3, 3, 2, 3, 3, 4, 2, 3, 1, 3, 3, 1, 3, 2, 1, 3, 3,
        2, 1, 3, 1, 3, 2, 1, 1, 1, 1, 3, 1, 3, 4, 1, 4, 1, 3, 2, 3, 6, 2, 2, 3, 2,
        1, 2, 2, 2, 2, 2, 1, 2, 3, 2, 2, 4, 2, 2, 2, 3, 2, 2, 5, 3, 2, 2, 3, 2, 2,
        2, 5, 2, 1, 4, 1, 2, 2, 6, 1, 3, 2)


tu.fit <- goodfit(users,type="poisson", method = "MinChisq")
summary(tu.fit)
 Goodness-of-fit test for poisson distribution

             X^2 df     P(> X^2)
Pearson 69.37891  5 1.379945e-13

Nas estatísticas do nível de graduação, aprendi que os dados de contagem podem ser modelados por uma distribuição de Poisson, mas eles nunca ensinaram o que fazer quando os dados de contagem não se encaixam.

Não estou vinculado à premissa de que meus dados de contagem devem caber em Poisson (ou em qualquer outra distribuição). No entanto, eu queria explorar a eficácia de transformar meu conjunto de dados e ajustá-lo a outra distribuição discreta ou tentar outra abordagem (KDE). Ou devo simplesmente concluir que meus dados não são adequados para Poisson (ou qualquer outra distribuição) e deixá-los assim?

Jonathan Dunne
fonte
(1) Zero como valor pareceria a priori impossível, excluindo assim o Poisson como modelo. Mas por que é um valor possível? O que significa apenas uma pessoa se envolver em uma "conversa" unidirecional? (2) O que você espera conseguir ajustando qualquer distribuição a esse conjunto de dados univariado? Como isso ajudaria na "inferência futura"? Inferência sobre o que exatamente? (3) Você percebeu que é consistente com uma distribuição de Poisson? 1users-1
whuber
11
(1) É um valor possível na seguinte instância: Um usuário envia uma mensagem de linha única (por qualquer motivo) Ninguém responde à mensagem / se envolve em uma discussão mais aprofundada. Nesse caso, é um "chat em grupo" de usuário único (2) Se um Poisson couber, sempre que possível, posso fazer perguntas como qual é a probabilidade do próximo chat conter exatamente 2,3,4,5 usuários, etc. (3) ) Admito que não localizei os usuários-1 era consistente com uma distribuição de Poisson. Isso parece interessante, vou precisar considerar isso ainda mais #
Jonathan Dunne
Eu acho que você pode tentar distribuição binomial negativa ou algo mais discutido neste post relacionado stats.stackexchange.com/questions/67385/...
wonghang
Então, eu dei uma olhada na taxa de dispersão e com um valor de 0,36 calculado usando a função de teste de dispersão do pacote AER. Olhando para isso da perspectiva de um conjunto de dados sub-disperso, alguns comentários na seção 67385 discutiram a remoção de uma lixeira específica com alta frequência. Outros comentários sugerem alguma forma de re-mediação de obstáculos. whubers comenta que, users-1quando instalado, é um bom ajuste para uma distribuição de Poisson (que é uma forma de barreira). Suspeito que uma abordagem de bom senso precise ser aplicada ao lidar com dados sub-dispersos.
Jonathan Dunne
11
@whuber, ficaria feliz em aceitar seus comentários como resposta a esta pergunta.
Jonathan Dunne

Respostas:

8

Vamos considerar, de maneira um tanto simplista, a história natural de uma conversa:

  1. Uma pessoa inicia uma conversa enviando uma mensagem para o éter.

  2. As pessoas respondem. Cada novo (exclusivo) respondente adiciona um à contagem.

  3. As respostas a qualquer mensagem são aleatórias: se um indivíduo responde depende se

    • Eles estão cientes da mensagem
    • Atualmente tem a oportunidade de responder
    • Está interessado em responder.
  4. Comparado ao número de pessoas que poderiam receber mensagens, o número de mensagens iniciadas é relativamente baixo. portanto

    • Quase todos os indivíduos responderão a um ou a um pequeno número gerenciável de mensagens a qualquer momento.

As características (3) e (4) sugerem que uma distribuição de Poisson pode ser um bom modelo para o número de pessoas que respondem a qualquer mensagem a qualquer momento: ou seja, a contagem menos uma. O que não sabemos e podemos não estar seguros assumindo é se todas as mensagens têm aproximadamente o mesmo parâmetro de Poisson ou se esses parâmetros variam consideravelmente.

Um bom ponto de partida, então, seria testar se as contagens menos uma se encaixam em uma distribuição de Poisson. Como alternativa, eles podem se encaixar em uma distribuição super dispersa, composta por uma mistura de Poissons.

A estimativa de máxima verossimilhança do parâmetro Poisson é a média das contagens (menos uma), igual a . (É importante usar a estimativa ML para esse cálculo, em vez da estimativa "MinChisq" calculada por : consulte https://stats.stackexchange.com/a/17148/919 .) Multiplicando as probabilidades de Poisson pelo número total de usuários fornece os números esperados de contagens de usuários. Aqui eles são comparados com as contagens reais:λ1.20vcd::goodfit

          0   1  2  3 4 5
Expected 94 113 68 27 8 2
Actual   85 127 68 22 5 5

O ajuste parece próximo. Pode ser medido com a estatística qui-quadrado,

χ2=(8594)294+(127113)2113++(52)22=9.61.

Os seis termos nesta soma medem as discrepâncias de contagem individuais. Eles são

     0    1    2    3    4    5 
  0.88 1.79 0.00 0.93 1.18 4.82  

Valores próximos a significam boa concordância. Somente o último valor, , é grande. Isso se deve ao pequeno valor esperado de para uma contagem de . Normalmente, acredita-se que valores esperados menores que levam a alguma confiabilidade no tradicional : aqui, devemos considerar que a estatística talvez esteja um pouco inflada devido ao pequeno número esperado de conversas. 14.82255χ2χ2

No entanto, essa estatística não é terrivelmente alta: sob a hipótese da distribuição de Poisson invariável, essa estatística seguiria aproximadamente uma . Essa distribuição nos diz que um valor tão alto ocorre quase nove por cento das vezes. Concluímos que há pouca evidência de afastamento de uma distribuição constante de Poisson.χ2χ2(5)

Aliás, um gráfico dos dados - na sequência dada - sugere uma variação nas contagens. Em média, eles aumentam um pouco do começo ao fim, como sugere o Lowess nesta trama:

Enredo

Assim, o teste do qui-quadrado da distribuição de Poisson não deve ser a última palavra: deve ser considerado apenas o início de uma análise mais detalhada.


Aqui está o Rcódigo usado para executar os cálculos e criar a figura.

counts <- table(users-1)
mu <- mean(users-1)
expected <- dpois(as.numeric(names(counts)), mu) * length(users)
x <- (counts - expected)^2 / expected
print(round(x, 2)) # Terms in the chi-squared statistic
print(rbind(Expected = round(expected, 0), Actual=counts)) # Compare expected to actual

library(ggplot2)
X <- data.frame(Index=1:length(users), Count=users)
g <- ggplot(X, aes(Index, Count)) + geom_smooth(size=2) + geom_point(size=2, alpha=1/2)
print(g)
whuber
fonte
O que fez você pensar no user-1"truque"?
Antoni Parellada
@Antoni A linha de raciocínio se reflete no meu primeiro comentário à pergunta. Entre as partes escritas (1) e (2) desse comentário, ocorreu-me um modelo como o descrito nesta resposta; portanto, rapidamente executei o teste do qui-quadrado nos dados e incluí a parte (3) do comentário.
whuber