1

我正在通过调用拟合 gamlss 模型:

model <- gamlss(formula = formula("y_variable ~ image_name + random(biological_source_name) - 1"),
       sigma.formula = formula("~ biological_source_name - 1"),
       family = "NBI",
       data = na.omit(data))

但是,在尝试使用以下方法获取置信区间时出现错误broom::confint_tidy

confint_tidy(model)

消息是:

UseMethod("family") 中的错误:
  没有适用于“家庭”的方法应用于“NULL”类的对象
另外:警告信息:
在 vcov.gamlss(object, robust = robust) 中:
  mu 公式中存在加法项。
  线性项的标准误差可能不合适

但是,尝试使用时出现不同的错误broom::tidy

broom::tidy(model)

消息是:

data.frame(..., check.names = FALSE) 中的错误:
  参数暗示不同的行数:0、73

但是,当我在没有术语的情况下拟合此模型sigma.formula时,我能够获得置信区间。

model_no_sigma <- gamlss(formula = formula("y_variable ~ image_name + random(biological_source_name) - 1"),
       family = "NBI",
       data = na.omit(data))
broom::tidy(model_no_sigma) # Does produce CI output

可重现的例子

    library("gamlss")

example_data <- rbind(
  data.frame(
    y = rnbinom(200, mu = 10, size = 1),
    x = "var_1"
  ),
  data.frame(
    y = rnbinom(200, mu = 20, size = 10),
    x = "var_2"
  )
)

# No estimate sigma
model_1 <- gamlss(formula = formula("y ~ x - 1"),
                data = example_data,
                family = "NBI")
broom::tidy(model_1, conf.int = TRUE)


# Include intercept term for sigma
model_2 <- gamlss(formula = formula("y ~ x - 1"),
                  sigma.formula = formula("~ x"),
                data = example_data,
                family = "NBI")
broom::tidy(model_2, conf.int = TRUE)


# Remove intercept for sigma
model_3 <- gamlss(formula = formula("y ~ x - 1"),
                  sigma.formula = formula("~ x - 1"),
                data = example_data,
                family = "NBI")
broom::tidy(model_3, conf.int = TRUE)

示例输出

错误输出的屏幕截图

4

0 回答 0