r - ZIP 和 ZINB 模型在对数据进行子集化和分解时出现错误

标签 r

我正在尝试运行 ZIP 和 ZINB 模型来尝试研究一些可能有助于解释 8 个地理区域内疾病 (orf) 分布的因素。这些模型适用于某些地区,但不适用于其他地区。然而,在 R 中分解和运行模型时,我收到错误消息。

我该如何解决这个问题,或者是否有一个模型可以更好地处理该子集,因为只有当所有区域都统一时,分析才有意义。

zinb3 = zeroinfl(Cases2012 ~ Precip+ Altitude +factor(Breed)+ factor(Farming.Practise)+factor(Lambing.Management)+ factor(Thistles)  ,data=orf3, dist="negbin",link="logit")
Error in solve.default(as.matrix(fit$hessian)) : 
  system is computationally singular: reciprocal condition number = 2.99934e-24

Results after fitting zerotrunc & glm as suggested by @Achim Zeileis. How do i interprete zerotruc output given that no p values. Also how can I correct the error with glm?

    zerotrunc(Cases2012 ~ Flock2012+Stocking.Density2012+ Precip+ Altitude +factor(Breed)+ factor(Farming.Practise)+factor(Lambing.Management)+ factor(Thistles),data=orf1, subset = Cases2012> 0)

    Call:
    zerotrunc(formula = Cases2012 ~ Flock2012 + Stocking.Density2012 + Precip + Altitude + 
        factor(Breed) + factor(Farming.Practise) + factor(Lambing.Management) + factor(Thistles), 
        data = orf1, subset = Cases2012 > 0)

    Coefficients (truncated poisson with log link):
                    (Intercept)                    Flock2012         Stocking.Density2012  
                     14.1427130                   -0.0001318                   -0.0871504  
                         Precip                     Altitude               factor(Breed)2  
                     -0.1467075                   -0.0115919                   -3.2138767  
      factor(Farming.Practise)2  factor(Lambing.Management)2            factor(Thistles)3  
                      1.3699477                   -2.9790725                    2.0403543  
              factor(Thistles)4  
                      0.8685876  

    glm(factor(Cases2012 ~ 0) ~ Precip+ Altitude +factor(Breed)+ factor(Farming.Practise)+factor(Lambing.Management)+ factor(Thistles) +Flock2012+Stocking.Density2012 ,data=orf1, family = binomial)
    Error in unique.default(x, nmax = nmax) : 
      unique() applies only to vectors

最佳答案

根据所提供的信息很难确切地说出发生了什么。但是,我怀疑某些地区的数据不允许符合指定的模型。例如,可能在某些区域中,某些因子水平(“品种”或“农业”、“实践”、“兰宾”、“管理”或“蓟马”)仅具有零值(或仅非零值,但在实践中不太常见)。那么系数估计通常会退化,导致相关的零膨胀概率变为 1,并且无法估计计数系数。

使用障碍而不是零通胀模型通常更容易区分这些影响。那么模型的两部分也可以分别通过 glm(factor(y > 0) ~ ..., ..., family = binomial) 进行拟合和zerotrunc(y ~ ..., ..., subset = y > 0) 。后一个函数本质上与 pscl 的代码相同。使用但已被分解为包 countreg 中的独立函数在 R-Forge 上(尚未在 CRAN 上)。

关于r - ZIP 和 ZINB 模型在对数据进行子集化和分解时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31631690/

相关文章:

r - 如何使用 dplyr 查找前一行中的唯一条目

r - 计算数据框中的唯一项

r - 使用基础 R 分组和堆叠的条形图

r - 在 R 中排列 4 个 plotly 饼图

当我添加 create_dir : true 时,R 包中的 rmarkdown 模板失败

r - 如何使用通配符按日期进行子集化?

r - 在 Shiny 的仪表板中调整信息框的高度

R错误allocMatrix

r - 如何合并不同大小的数据框并添加空白数据?

python - 如何使用wxpython和rpy2显示图像?