如何使用零膨胀泊松回归来修复错误

时间:2017-01-17 16:37:13

标签: r

我使用包pscl运行零膨胀泊松回归,并且遇到与此post相同的错误

但是,由于我知道z表示存在过量零的单独过程,所以将Poisson作为解决方案运行是否仍然有意义(泊松结果很好)?有没有其他方法来解决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

1 个答案:

答案 0 :(得分:2)

如果没有可重复的例子,很难回答这个问题,但我会提供一些观察结果(评论时间太长):

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

一般建议:

  • 绘制数据
  • 找到一个相当复杂的模型,你可以通过分割过度复杂的模型和错过重要现象的过度简化模型之间的差异来实际拟合,如下图所示:

enter image description here

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