我正在尝试运行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
答案 0 :(得分:3)
很难根据所提供的信息确切说明发生了什么。但是,我怀疑某些地区的数据不允许符合指定的模型。例如,可能存在某些区域,其中某些因子水平(品种或Farming.Practise或Lambin.Management或Thristles)仅具有零值(或者仅为非零但在实践中不那么频繁)。然后系数估计经常退化,以便相关的零膨胀概率变为1,并且无法估计计数系数。
通过使用障碍而不是零膨胀模型来分离这些效果通常更容易。然后,模型的两个部分也可以由glm(factor(y > 0) ~ ..., ..., family = binomial)
和zerotrunc(y ~ ..., ..., subset = y > 0)
单独拟合。后一个函数与pscl
使用的代码基本相同,但已被考虑到R-Forge上的包countreg中的独立函数(尚未在CRAN上)。