我正在尝试使用以下代码使用包来拟合一个膨胀的 Beta 回归混合模型:gamlss
# Minimal reproducible example:
efficiency <- rbeta(n = 85, shape1 = 2, shape2 = 2, ncp = 2) # My actual variable contains several "ones", but it does not matter here
distance <- rpois(n = 85, lambda = 4)
manager_id <- c(rep(1, 10), rep(2, 2), 3:75)
manager_id <- as.factor(manager_id)
eff <- data.frame(efficiency, distance, manager_id)
mod1 <- gamlss::gamlss(efficiency~distance + gamlss::re(random = ~1|manager_id, method = "ML"),
data = eff, family = gamlss.dist::BEOI())
但是我收到以下错误:
Error in as.data.frame.default(x[[i]], optional = TRUE) :
cannot coerce class ‘"function"’ to a data.frame
我相信错误来自nlme::lme()
被调用gamlss::re()
以适应随机效应的函数,因为当我不包含这部分代码时它可以正常工作。我也许可以使用gamlss::random()
而不是gamlss::re()
来拟合随机效应,但是这些函数的帮助页面指出,当响应变量的正态假设不能满足re()
时应该使用这些函数。
有人可以帮我弄清楚如何解决这个问题吗?