Como posso testar se amostras são retiradas de uma distribuição de Poisson?

41

Conheço os testes de normalidade, mas como faço para testar o "Poisson-ness"?

Eu tenho uma amostra de ~ 1000 números inteiros não negativos, que eu suspeito serem retirados de uma distribuição de Poisson, e eu gostaria de testar isso.

David B
fonte

Respostas:

18

Primeiro de tudo, meu conselho é que você deve se abster de experimentar uma distribuição de Poisson da mesma forma que para os dados. Sugiro que você primeiro faça uma teoria sobre por que a distribuição de Poisson se encaixa em um determinado conjunto de dados ou fenômeno.

Depois de estabelecer isso, a próxima pergunta é se a distribuição é homogênea ou não. Isso significa se todas as partes dos dados são tratadas pela mesma distribuição de poisson ou há uma variação nisso com base em algum aspecto como tempo ou espaço. Depois de se convencer desses aspectos, tente os três testes a seguir:

  1. teste de razão de verossimilhança usando uma variável qui-quadrado
  2. uso de estatística qui-quadrado condicional; também chamado teste de dispersão de poisson ou teste de variância
  3. uso da estatística neyman-scott, baseada em uma transformação estabilizadora de variância da variável de poisson

procure-os e você os encontrará facilmente na rede.

htrahdis
fonte
3
"se a distribuição é homogênea ou não ... Depois de se convencer desses aspectos" Você poderia comentar um pouco sobre como determinar isso?
significa significado
13

Aqui está uma sequência de comandos R que podem ser úteis. Sinta-se livre para comentar ou editar se detectar algum erro.

set.seed(1)
x.poi<-rpois(n=200,lambda=2.5) # a vector of random variables from the Poisson distr.

hist(x.poi,main="Poisson distribution")

lambda.est <- mean(x.poi) ## estimate of parameter lambda
(tab.os<-table(x.poi)) ## table with empirical frequencies


freq.os<-vector()
for(i in 1: length(tab.os)) freq.os[i]<-tab.os[[i]]  ## vector of emprical frequencies

freq.ex<-(dpois(0:max(x.poi),lambda=lambda.est)*200) ## vector of fitted (expected) frequencies

acc <- mean(abs(freq.os-trunc(freq.ex))) ## absolute goodness of fit index acc
acc/mean(freq.os)*100 ## relative (percent) goodness of fit index

h <- hist(x.poi ,breaks=length(tab.os))
xhist <- c(min(h$breaks),h$breaks)
yhist <- c(0,h$density,0)
xfit <- min(x.poi):max(x.poi)
yfit <- dpois(xfit,lambda=lambda.est)
plot(xhist,yhist,type="s",ylim=c(0,max(yhist,yfit)), main="Poison density and histogram")
lines(xfit,yfit, col="red")

#Perform the chi-square goodness of fit test 
#In case of count data we can use goodfit() included in vcd package
library(vcd) ## loading vcd package
gf <- goodfit(x.poi,type= "poisson",method= "MinChisq")
summary(gf)
plot(gf,main="Count data vs Poisson distribution")
George Dontas
fonte
3
Esta linha: freq.ex <- (dpois (0: max (x.poi), lambda = lambda.est) * 200) produz erros com alguns dados do mundo real, porque o comprimento do freq.ex não corresponde ao freq. obs nesta linha acc <- mean (abs (freq.os-trunc (freq.ex))). Eu adaptei essa linha ao freq.ex <- (dpois (seq (0, max (x.poi)) [seq (0: max (x.poi))% em% x.poi], lambda = lambda.est) * 200) mas algo ainda não está certo porque o goodfit produz avisos.
russellpierce
Usando seu código, recebo um índice de ajuste de 121. Mas é relativo, não é? Então deve estar entre 0 e 100, certo?
MERose
6

Suponho que a maneira mais fácil é fazer um teste de qualidade do ajuste do qui-quadrado .

De fato, aqui está um bom applet java que fará exatamente isso!

csgillespie
fonte
5

Você pode usar a dispersão (razão de variação para a média) como estatística de teste, pois o Poisson deve fornecer uma dispersão de 1. Aqui está um link para como usá-la como modelo de teste.

Eric Suh
fonte
+1 obrigado. frequentemente recebo alguns resultados "ocultos", por exemplo, uma distribuição normal obtém um valor-p mais alto que um poisson, onde lambda é relativamente pequeno (portanto, pelo que parece, apenas o normal e o poisson não são parecidos)
David B
6
404 NÃO ENCONTRADO!!
Rodrigo
5

Para uma distribuição de Poisson, a média é igual à variância. Se a média da amostra for muito diferente da variação da amostra, provavelmente você não possui dados de Poisson. O teste de dispersão também mencionado aqui é uma formalização dessa noção.

Se a sua variação for muito maior que a sua média, como geralmente é o caso, convém tentar uma distribuição binomial negativa a seguir.

John D. Cook
fonte
5
E assim, se a média é a mesma que a variância, você poderia concluir que os dados eram Poisson? Dificilmente!
precisa saber é o seguinte
Verdade. Necessário, mas não suficiente.
John D. Cook
2

Você pode desenhar uma única figura na qual as frequências observadas e esperadas são desenhadas lado a lado. Se as distribuições forem muito diferentes e você também tiver uma taxa de variação média maior que uma, um bom candidato será o binômio negativo. Leia a seção Distribuições de frequência de The R Book. Ele lida com um problema muito semelhante.

Brani
fonte
1

Eu acho que o ponto principal é o que o sidmaestro levanta ... a configuração experimental ou o mecanismo de geração de dados suportam a premissa de que os dados podem surgir de uma distribuição de Poisson.

Não sou muito fã de testes de suposições distributivas, pois esses testes geralmente não são muito úteis. O que me parece mais útil é fazer suposições distributivas ou de modelo flexíveis e razoavelmente robustas a desvios do modelo, normalmente para fins de inferência. Na minha experiência, não é tão comum ver média = variância; muitas vezes o modelo binomial negativo parece mais apropriado e inclui o Poisson como um caso especial.

Outro ponto importante para os testes de distribuição, se é isso que você quer fazer, é garantir que não haja estratos envolvidos que tornariam sua distribuição observada uma mistura de outras distribuições. Distribuições individuais específicas do estrato podem aparecer Poisson, mas a mistura observada pode não ser. Uma situação análoga a partir da regressão assume apenas que a distribuição condicional de Y | X é normalmente distribuída, e não realmente a distribuição de Y em si.

Abhijit
fonte
Seu último ponto sobre regressão só seria verdadeiro se X fosse aleatório. Se X for corrigido, Y também seria normal. não?
Sim, isso é verdade, mas para problemas gerais de regressão (ao contrário de anova ou problemas projetados), X realmente não é fixo, mas são observações do processo subjacente. No entanto, para o caso Poisson, o argumento ainda é válido, já que as misturas de Poissons não são necessariamente Poisson.
Abhijit
0

Ainda outra maneira de testar isso é com um gráfico quantil quantil. Em R, há qqplot. Isso representa diretamente seus valores contra uma distribuição normal com média e sd semelhantes

Peter Flom - Restabelece Monica
fonte