2011-08-23 20 views
9

Tengo un vector de datos de recuento muy disperso y cero inflado.Ajuste de una distribución de poisson inflada cero en R

El vector tiene el siguiente aspecto:

i.vec=c(0,63,1,4,1,44,2,2,1,0,1,0,0,0,0,1,0,0,3,0,0,2,0,0,0,0,0,2,0,0,0,0, 
0,0,0,0,0,0,0,0,6,1,11,1,1,0,0,0,2) 
m=mean(i.vec) 
# 3.040816 
sig=sd(i.vec) 
# 10.86078 

me gustaría ajustar una distribución a esto, que tengo la fuerte sospecha será un cero Poisson inflado (ZIP). Pero necesito realizar una prueba de significancia para demostrar que una distribución ZIP se ajusta a los datos.

Si tuviera una distribución normal, podría hacer una prueba de bondad de ajuste de chi cuadrado usando la función goodfit() en el paquete vcd, pero no conozco ninguna prueba que pueda realizar para cero datos inflados.

+0

pertenece a stats.stackexchange.com tal vez? – Spacedman

Respuesta

15

Aquí es uno de los enfoques

# LOAD LIBRARIES 
library(fitdistrplus) # fits distributions using maximum likelihood 
library(gamlss)   # defines pdf, cdf of ZIP 


# FIT DISTRIBUTION (mu = mean of poisson, sigma = P(X = 0) 
fit_zip = fitdist(i.vec, 'ZIP', start = list(mu = 2, sigma = 0.5)) 

# VISUALIZE TEST AND COMPUTE GOODNESS OF FIT  
plot(fit_zip) 
gofstat(fit_zip, print.test = T) 

base a esto, no se ve como ZIP es un buen ajuste.

+7

+1; Pero se ve razonablemente aceptable con un ajuste binomial negativo: fit_zip2 <- fitdist (i.vec, 'nbinom', start = list (mu = 3, size = 0.1)) –

+4

se ve bien. También probaría la distribución binomial negativa inflada cero que está disponible como 'zinegbin' en el paquete' VGAM'. – Ramnath

+2

¡Muchas gracias! ¿Cómo seleccionó su mu y sigma? – Laura

Cuestiones relacionadas