我正在尝试使用R包R2BayesX来适应多状态模型。我怎么能这样做?手册中没有示例。这是我的尝试。
f <- activity ~ sx(time,bs="baseline")+sx(PatientId, bs="re")
b <- bayesx(f, family = "multistate", method = "MCMC", data=df)
注意:创建了新的输出目录
警告讯息:
在run.bayesx(file.path(res $ bayesx.prg $ file.dir,prg.name = res $ bayesx.prg $ prg.name)中,:
在BayesX运行期间发生错误,请检查BayesX 日志文件!
答案 0 :(得分:0)
我不确定您要指定的模型类型,但我尝试提供一个人为的非感知数据集,以使上述错误重现:
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软件包维护者。