У меня есть набор данных о паразитах с нулевым завышением (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)
По сути, каждая строка представляет собой особь хозяина, которая принадлежит к виду хозяина (hostsp) с его рационом (hostdiet, nested), размером (sl) и количеством паразитов, заражающих его (nrparas).
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 (особенно виды хозяев, что является для меня самой интересной частью!)Почему я получаю это сообщение об ошибке?Как я могу решить это?Большое спасибо!