2011-08-23 326 views
9

我有一个计数数据的矢量,它强烈地位于分散和零膨胀的位置。在R中拟合零膨胀泊松分布

的载体是这样的:

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 

我想以适应分配到这一点,这我强烈怀疑将是零膨胀泊松(ZIP)。但是我需要进行重要性测试来证明ZIP分配适合数据。

如果我有一个正态分布,我可以使用包vcd中的函数goodfit()进行卡方检验,但我不知道可以对零膨胀数据执行任何测试。

+0

属于stats.stackexchange.com也许? – Spacedman

回答

15

这是一种方法

# 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) 

在此基础上,它看起来并不像ZIP是一个不错的选择。

+7

+1;但它看起来合理可接受负二项拟合:fit_zip2 < - fitdist(i.vec,'nbinom',start = list(mu = 3,size = 0.1)) –

+4

它看起来不错。我也会尝试零增长的负二项式分布,这个分布在'VGAM'包中可以作为'zinegbin'使用。 – Ramnath

+2

非常感谢!你是如何选择mu和sigma的? – Laura