-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 に答える