我有一个寄生虫计数的零膨胀数据集(零的47%),我想使用零膨胀模型进行分析。
这是数据框的伪造的简短版本。
hostsp <- sample(LETTERS[1:4], 100, replace=TRUE)
hostdiet <- sample(letters[24:26], 100, replace=TRUE, prob=c(0.5, 0.2, 0.3) )
sl <- runif(100, min=10, max=120)
nrparas <- sample(0:9, 100, replace=TRUE, prob=c(0.47,0.25,0.15,0.05,0.03,0.02,0.01,0.01,0.005,0.005) )
DF <- data.frame(hostsp, hostdiet, sl, nrparas, stringsAsFactors=T)
基本上,每行都是一个宿主个体,该宿主个体具有其饮食(hostdiet,嵌套),大小(sl)和感染它的寄生虫数量(nrparas)的宿主物种(hostsp)。
hostsp hostdiet sl nrparas
1 A x 86.62092 0
2 A y 92.23788 0
3 C z 44.67148 2
4 D x 41.82872 1
5 C z 104.24964 0
6 D x 117.51238 2
这是零膨胀模型:
zip1 <- zeroinfl(nrparas ~ hostsp*sl+hostdiet | hostsp*sl+hostdiet, data=DF)
summary(zip1)
但是当我运行模型时,我收到一条错误消息,并且模型没有运行。
Error in solve.default(as.matrix(fit$hessian)) :
system is computationally singular: reciprocal condition number = 1.03323e-36
在我的原始数据框中,如果我从ZI公式中删除了一些变量(尤其是宿主物种,这对我来说是最有趣的部分!),该错误就会消失
为什么我收到此错误消息?我该怎么解决?
非常感谢!