-3

我正在尝试使用 R 包 R2BayesX 来拟合多状态模型。我怎样才能正确地做到这一点?手册中没有示例。这是我的尝试。

  • 活动是 1/0 即状态
  • 时间就是时间
  • 患者 id 是我想要的随机效应
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 日志文件!

4

1 回答 1

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 软件包维护者,提出更具体的问题和可重现的示例。

于 2015-04-26T09:17:45.640 回答