在R中拟合零膨胀泊松分布

Lau*_*ura 11 r distribution

我有一个计数数据向量强烈过度分散和零膨胀.

矢量看起来像这样:

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
Run Code Online (Sandbox Code Playgroud)

我想为此分配一个,我强烈怀疑这将是一个零膨胀的泊松(ZIP).但是我需要进行显着性测试来证明ZIP分布符合数据.

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

Ram*_*ath 17

这是一种方法

# 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)
Run Code Online (Sandbox Code Playgroud)

基于此,它看起来不像ZIP是一个很好的选择.

  • +1; 但是对于负二项拟合,它看起来确实可以接受:fit_zip2 < - fitdist(i.vec,'nbinom',start = list(mu = 3,size = 0.1)) (7认同)
  • 它确实很好看.我还会尝试零膨胀的负二项分布,它可以在`VGAM`包中作为`zinegbin`使用. (4认同)
  • 它们只是我任意填充的优化算法的起始值.相反,你可以使用`mu = mean(i.vec [i.vec> 0])`和`p`等于样本中零的比例作为起点.是的我的意思是写'print.test = T` (4认同)
  • 非常感谢!你是如何选择你的mu和sigma的? (3认同)