2017-01-17 45 views
1

我跑了零膨胀泊松回归与包pscl以及与此post如何解决与零膨胀泊松回归

但是跨相同的错误来了一个错误,因为我知道有过量零一个单独的进程由z表示,只需运行泊松作为解决方案(泊松结果很好)是否合理?有没有其他解决ZIP问题的方法?我也试过零膨胀负二项式回归,但它得到了同样的错误。谢谢。

Call: 
zeroinfl(formula = y ~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 | z, data = df) 

Pearson residuals: 
    Min  1Q Median  3Q  Max 
-2.48465 -0.06156 -0.06126 -0.06091 5.57840 

Count model coefficients (poisson with log link): 
       Estimate Std. Error z value Pr(>|z|) 
(Intercept)  3.547e+00   NA  NA  NA 
x1    -3.251e-02   NA  NA  NA 
x2    6.290e-03   NA  NA  NA 
x3    8.867e-01   NA  NA  NA 
x4    1.432e-01   NA  NA  NA 
x5    2.705e-01   NA  NA  NA 
x6    -8.223e-10   NA  NA  NA 
x7    -7.218e-02   NA  NA  NA 
x8    3.322e-02   NA  NA  NA 
x9    -2.072e-01   NA  NA  NA 

Zero-inflation model coefficients (binomial with logit link): 
      Estimate Std. Error z value Pr(>|z|) 
(Intercept) 5.531   NA  NA  NA 
z    158.108   NA  NA  NA 
Error in if (getOption("show.signif.stars") & any(rbind(x$coefficients$count, : 
    missing value where TRUE/FALSE needed 

回答

2

很难回答这个问题不重复的例子,但我会提供一些观察(太长的评论):

  • pscl的默认行为是使用相同的模型的零膨胀和计数(条件)部分的公式。除非你有一个非常大的数据集,否则你很可能无法将10参数模型(截距+9协变量)拟合到数据的计数和零通胀方面。 (一个合理的经验法则是,您应该有20倍的参数观察值,所以这至少有400个观察值 - 这个规则对于估计零通货膨胀可能是保守的。)
  • 您的一个参数估计值( x6)近似为零,表明您没有足够的数据变化来估计该参数(或者存在与此协变量有关的其他问题,例如您在此维度中存在极端异常值)。这可能很容易弄乱整个模型的标准错误等。

一般建议:

  • 情节数据
  • 找到了一个相当复杂的模型,你实际上可以适合通过分割,打破了过于复杂的模型和过于简化模型之间的区别在于错过重要的现象,如本图所示:

enter image description here

Uriarte和Yackulic,生态应用,19(3),2009年,第592-596页

+0

感谢Ben的好建议。我有2000观测值,所以样本量应该没问题。你是正确的发现x6。而实际上另一个变量x3导致了奇点问题。一旦我放弃了这两个,模型就很适合数据。附:我很欣赏这个漂亮的情节:) –