模拟

有多种方法可以使用业务风险管理系统brms.mmrm公司.

1简单

brm_simulate_simple()模拟先前的数据集MMRM的简单特殊情况的预测分布。1

图书馆(brms.mmrm)
设置种子(0)
模拟<- brm模拟简单(
  n组= ,
  n病人= 100,
  n时间= 4
)

这个数据元素有一个类易怒的可以直接供应给brm_formula()brm_model().

模拟$数据
#>#A桥:1200×4
#>反应组时间患者
#><dbl><chr><chr
#>1 1.11组_1时间_1患者_001
#>2 2.15组_1时间_2患者_001
#>3 2.54组_1时间_3患者_001
#>4-1.73组_1次_4患者_001
#>5 1.11组_1时间_1患者_002
#>6 2.64组_1时间_2患者_002
#>7 1.69组_1时间_3患者_002
#>8 0.783组_1时间_4患者_002
#>9 0.118组_1时间_1患者_003
#>10 2.48组_1时间_2患者_003
#> # 1190多行

这个参数元素具有相应的参数先前关节模拟的值。的参数brm_simulate_simple()控制超参数。

字符串(模拟$参数)
#>列表(共5个)
#>贝塔系数:数值[1:6]1.263-0.326 1.33 1.272 0.415。。。
#>$套:编号[1:4]-0.092857-0.029472-0.000577 0.240465
#>西格玛:数量[1:4]0.911 0.971 0.999 1.272
#>$lambda:num[1:4,1:4]1 0.415-0.818-0.282 0.415。。。
#>$协方差:num[1:4,1:4]0.831 0.368-0.745-0.326 0.368。。。

以及模型矩阵元素具有回归模型固定效应参数矩阵。

(模拟$模型矩阵)
#>groupgroup_1groupgroup_2 groupgroup_3time_2 timetime_3timetime_4
#> 1            1            0            0          0          0          0
#> 2            1            0            0          1          0          0
#> 3            1            0            0          0          1          0
#> 4            1            0            0          0          0          1
#> 5            1            0            0          0          0          0
#> 6            1            0            0          1          0          0

2更改自基线

brm_data_change()可以将结果变量从对基线变化的原始响应。这适用于实际数据集传递[brm_data()]以及来自例如[brm_simulate_simple()]。上面的数据集使用带有基线时间点“时间_1”

模拟$数据
#>#A桥:1200×4
#>反应组时间患者
#><dbl><chr><chr
#>1 1.11组_1时间_1患者_001
#>2 2.15组_1时间_2患者_001
#>3 2.54组_1时间_3患者_001
#>4-1.73组_1次_4患者_001
#>5 1.11组_1时间_1患者_002
#>6 2.64组_1时间_2患者_002
#>7 1.69组_1时间_3患者_002
#>8 0.783组_1时间_4患者_002
#>9 0.118组_1时间_1患者_003
#>10 2.48组_1时间_2患者_003
#> # 1190多行

brm_data_change()减去基线,替换原始对基线列进行新更改的响应列,添加新的列,并调整内部类对象的属性。

brm_data_更改(
  数据=模拟$数据,
  名称更改(_C)= “新建更改”,
  名称基线= “新基线”
)
#>#A桥:900×5
#>new_change new_baseline组时间患者
#><dbl><dbl><chr><chr><chr>
#>1 1.04 1.11组_1时间_2患者_001
#>2 1.43 1.11组_1时间_3患者_001
#>3-2.84 1.11组_1时间_4患者_001
#>4 1.53 1.11组_1时间_2患者_002
#>5 0.576 1.11组_1时间_3患者_002
#>6-0.328 1.11组1次4名患者_002
#>7 2.37 0.118组_1时间_2患者_003
#>8 3.07 0.118组_1时间_3患者_003
#>9-1.14 0.118组_1时间_4患者_003
#>10 1.57 1.29组_1时间_2患者_004
#> # 890多行

高级

要进行更精细的模拟,请逐层构建数据集。从开始brm_simulate_outline()创建首字母结构和随机缺失模式。brm_simulate_outline(),缺少的响应可能来自短暂的并发事件或辍学。这个丢失的列指示将使用的结果值缺少(NA_批准_)在随后的步骤中。这个响应列暂时完全缺失,将稍后进行模拟。

数据<- brm_simulate_outline(模拟输出)(
  n组= 2,
  n病人= 100,
  n时间= 4,
  费率_比例= 0.3
)

数据
#>#A桥:800×5
#>反应缺失组时间患者
#><dbl><lgl><chr><chr
#>1 NA假group_1 time_1 patient_001
#>2 NA真组_1时间_2患者_001
#>3 NA TRUE组_1时间_3患者_001
#>4 NA TRUE组_1 time_4 patient_001
#>5 NA假group_1 time_1 patient_002
#>6 NA错误组_1 time_2 patient_002
#>7 NA真组_1时间_3患者_002
#>8 NA TRUE组_1 time_4 patient_002
#>9 NA假group_1 time_1 patient_003
#>10 NA假group_1 time_2 patient_003
#> # 还有790行

可选添加随机连续协变量brm_simulate_continuous()和随机分类协变量使用brm _模拟_类别()在每种情况下协变量是非时间变量,这意味着每个患者只能得到一个独特的价值。

数据<-数据|>
  brm模拟连续(姓名= c(c)(“生物标志物1”,“生物标志物2”))|>
  brm模拟分类(
    姓名= c(c)(“状态1”,“状态2”),
    水平= c(c)(“存在”,“缺席”)
)

数据
#>#A桥:800×9
#>响应缺失组时间患者生物标记1生物标记2状态1状态2
#><dbl><lgl><chr><chr><dbl><dbl><chr><chr
#>1 NA FALSE group_1 time_1患者…0.328-0.655存在缺失
#>2 NA TRUE组_1 time_2患者…0.328-0.655不存在
#>3 NA TRUE组_1时间_3患者…0.328-0.655不存在
#>4 NA TRUE组_1时间_4患者…0.328-0.655存在-不存在
#>5 NA FALSE group_1 time_1患者…1.04-0.779缺席
#>6 NA FALSE group_1 time_2患者…1.04-0.779缺席
#>7 NA TRUE组_1 time_3患者…1.04-0.779缺失
#>8 NA TRUE组_1 time_4患者…1.04-0.779缺失
#>9 NA FALSE group_1 time_1患者…0.717-0.954存在缺失
#>10 NA FALSE group_1 time_2患者…0.717-0.954不存在
#> # 还有790行

如下一节所述,brms.mmrm公司有一个方便的功能brm_simulate_prior()以模拟结果变量响应使用上面的数据框架和先验预测分布。但是,如果您喜欢全定制方法,您可能需要有关参数化的详细信息,这需要模型矩阵。幸运的是,业务风险管理系统支架make_standata()函数,在给定数据集的情况下提供和一个公式。您可能需要临时将响应变量设置为没有遗漏,您可能希望在前面指定自定义。

图书馆(brms)
公式<- brm公式(数据=数据)
#>警告:包含NA的行已从模型中排除。
#>错误:数据中的所有观察值都可能因NA值而被删除。
公式
#>反应~组+组:时间+时间+unsr(时间=时间,gr=患者)
#>sigma~0+时间

标准数据<- make_standata品牌(
  公式=公式,
  数据= 突变(数据,响应= 0)
)
模型矩阵<-标准数据$X
(模型矩阵)
#>拦截组group_2 timetime_2 timetime_3 timetime_4
#> 1         1            0          0          0          0
#> 2         1            0          1          0          0
#> 3         1            0          0          1          0
#> 4         1            0          0          0          1
#> 5         1            0          0          0          0
#> 6         1            0          1          0          0
#>组2:timetime_2组2:timetime_3组2:timetime_4
#> 1                       0                       0                       0
#> 2                       0                       0                       0
#> 3                       0                       0                       0
#> 4                       0                       0                       0
#> 5                       0                       0                       0
#> 6                       0                       0                       0

4之前

功能brm_simulate_prior()模拟之前的预测分布。它需要数据集和公式接受之前使用构造的自定义brms::设置优先级().

公式<- brm公式(数据=数据)
#>错误:数据中的所有观察值都可能因NA值而被删除。

图书馆(brms)
先前的<- 设置优先级(“学生_(3,0,1.3)”,类= “拦截”)+
  设置优先级(“学生_(3,0,1.2)”,类= “b”)+
  设置优先级(“学生_(3,0,1.1)”,类= “b”,数据保护器= “西格玛”)+
  设置优先级(“lkj(1)”,类= “科蒂姆”)

先前的
#>上等coef组resp dpar nlpar lb ub源
#>student_t(3,0,1.3)拦截<NA><NA>用户
#>student_t(3,0,1.2)b<NA><NA>用户
#>学生_(3,0,1.1)bσ<NA><NA>用户
#>lkj(1)cortime<NA><NA>用户

模拟<- brm _模拟_之前(
  数据=数据,
  公式=公式,
  先前=之前,
  刷新= 0
)

输出对象模拟从上一个抽签预测分布。sim$结果有结果抽奖,并且sim$参数具有参数绘制。模拟$模型矩阵具有模型矩阵,并且sim$模型已满业务风险管理系统模型拟合对象。你可以通过sim$模型到来自的函数业务风险管理系统贝叶斯图例如pp_检查().

姓名(模拟)
#>[1]“data”“model”“model_matrix”“outcome”“parameters”

此外,sim$数据有原件的副本数据集,但结果变量取自先验预测分布。此外,缺失模式自动应用,以便sim$data$响应NA_批准_无论何时缺少sim$data$等于真的.

模拟$数据
#>#A桥:800×9
#>响应缺失组时间患者生物标记1生物标记2状态1状态2
#><dbl><lgl><chr><chr><dbl><dbl><chr><chr
#>1-0.0490 FALSE group_1 time_1患者…0.328-0.655存在缺失
#>2 NA TRUE组_1 time_2患者…0.328-0.655不存在
#>3 NA TRUE组_1时间_3患者…0.328-0.655不存在
#>4 NA TRUE group_1 time_4患者…0.328-0.655不存在
#>5 7.19 FALSE group_1 time_1患者…1.04-0.779缺席
#>6 3.18 FALSE group_1 time_2患者…1.04-0.779缺席
#>7 NA TRUE组_1 time_3患者…1.04-0.779缺失
#>8 NA TRUE组_1 time_4患者…1.04-0.779缺失
#>9 15.6 FALSE group_1 time_1患者…0.717-0.954不存在
#>10 0.203假组_1时间_2患者…0.717-0.954存在-不存在
#> # 还有790行

5后面的

业务风险管理系统支持后验预测模拟和检查功能后期或预测(),后_epred()、和pp_检查()。这些可以业务风险管理系统模型拟合对象brm_model()或来自brm_simulate_prior().

数据<-模拟$数据
公式<- brm公式(数据=数据)
模型<- brm模型(数据=数据,公式=公式,刷新= 0)
输出_绘图<- 后预测(对象=型号)

返回的结果_图纸对象是一个数字数组后验预测绘制,每次绘制一行,每次绘制一列原始数据中未缺失的观测值(行)。

字符串(结果_图纸)
#>编号[1:4000,1:659]11.742 0.536 0.686-8.36-6.803。。。

昏暗的(数据)
#> [1] 800   9

总和(!国际标准编号(数据$响应))
#> [1] 659

  1. 函数帮助文件解释了有关模型参数化。↩︎