我不确定您要指定哪种模型,但我尝试提供一个人工的无意义数据集以使上述错误可重现:
set.seed(1)
df <- data.frame(
activity = rbinom(1000, prob = 0.5, size = 1),
time = rep(1:50, 20),
id = rep(1:20, each = 50)
)
可能,您可以提供一个改进的示例。然后我可以运行你的代码:
library("R2BayesX")
f <- activity ~ sx(time, bs = "baseline") + sx(id, bs = "re")
b <- bayesx(f, family = "multistate", method = "MCMC", data = df)
这会导致上面的警告,您可以通过以下方式检查 BayesX 的日志文件:
bayesx_logfile(b)
它告诉您(除其他信息外):
ERROR: family multistate is not allowed for method regress
所以这里似乎只支持 REML 估计,但是:
b <- bayesx(f, family = "multistate", method = "REML", data = df)
也会导致错误,日志文件说:
ERROR: Variable state has to be specified as a global option!
因此,必须以不同的方式提供状态。我猜你试图通过二进制响应来做到这一点,但似乎响应应该是时间变量(如在生存模型中),然后需要以某种方式提供额外的状态指示器。不过,我在 BayesX 手册中找不到这方面的示例。我建议您联系 BayesX 邮件列表和/或 R2BayesX 软件包维护者,提出更具体的问题和可重现的示例。