数据
子组变量必须是类别变量。
图书馆(brms.mmrm)
图书馆(dplyr)
图书馆(magrittr)
设置种子(0升)
原始数据(_D)<- brm_simulate_outline(模拟输出)(
n组= 三,
n子组= 2,
n病人= 50,
n时间= 三,
费率_比例= 0,
速率_映射= 0
)|>
突变(响应= rnorm公司(n个= n个()))
原始数据(_D)
#>#A桥:900×6
#>患者时间分组缺少响应
#><chr><chr><chr><chr><lgl><dbl>
#>1名患者_001时间_1组_1亚组_1假1.26
#>2名患者_001时间_2组_1亚组_1假-0.326
#>3名患者_001时间_3组_1亚组_1假1.33
#>4名患者_002时间_1组_1子组_1假1.27
#>5名患者_002时间_2组_1亚组_1假0.415
#>6名患者_002时间_3组_1亚组_1假-1.54
#>7名患者_003时间_1组_1亚组_1假-0.929
#>8名患者_003时间_2组_1亚组_1假-0.295
#>9名患者_003时间_3组_1亚组_1假-0.00577
#>10名患者_004时间_1组_1子组_1假2.40
#> # ℹ 890多行
每个分类亚组级别应具有足够的代表性在所有离散时间点的所有治疗组之间。否则,一些边际利息可能无法估算。
计数(原始数据、组、子组、时间)
#>#A台:18×4
#>群子群时间n
#><chr><chr><chr><int>
#>1组_1子组_1时间_1 50
#>2组_1亚组_1时间_2 50
#>3组_1亚组_1时间_350
#>4组_1子组_2时间_150
#>5组_1亚组_2时间_2 50
#>6组_1子组_2时间_3 50
#>7组_2亚组_1时间_1 50
#>8组_2亚组_1时间_2 50
#>9组_2亚组_1时间_350
#>10组_2亚组_2时间_150
#>11组_2亚组_2时间_2 50
#>12组_2亚组_2时间_350
#>13组_3亚组_1时间_150
#>14组_3亚组_1时间_2 50
#>15组_3亚组_1时间_350
#>16组_3亚组_2时间_150
#>17组_3亚组_2时间_2 50
#>18组_3亚组_2时间_350
当您为创建特殊类数据集时brms.mmrm公司
使用brm_data()
,请提供子组变量和参考子组级别的名称。后处理功能将使用参考子组级别比较成对的亚组:例如子组2
减去参考的处理效果您选择的子组级别。
数据<- brm数据(
数据=原始数据,
结果= “响应”,
基线= 无效的,
组= “组”,
子群= “子组”,
时间= “时间”,
病人= “患者”,
reference_group(引用组)= “第1组”,
reference_子组= “子组_1”,
参考_时间= “时间_1”
)
字符串(数据)
#>brms_mm_[900×6](S3:brms_mmarm_data/tbl_df/tbl/data.frame)
#>$patient:chr[1:900]“patient_001”“patient_001”“patient_001”“patient_002”。。。
#>$时间:chr[1:900]“time_1”“time_2”“time_3”“time_1”。。。
#>$组:chr[1:900]“group_1”“group_1”“group_1”“group_3”。。。
#>$subgroup:chr[1:900]“subgroup_1”“subject_1”、“subgraw_1”。。。
#>$missing:logi[1:900]假假假假。。。
#>$回复:num[1:900]1.263-0.326 1.33 1.272 0.415。。。
#>-attr(*,“brm_output”)=chr“响应”
#>-attr(*,“brm_group”)=chr“group”
#>-attr(*,“brm_subgroup”)=chr“子组”
#>-attr(*,“brm_time”)=chr“时间”
#>-attr(*,“brm_pient”)=chr“patient”
#>-attr(*,“brm_covariates”)=chr(0)
#>-attr(*,“brm_reference_group”)=chr“group_1”
#>-attr(*,“brm_reference_subgroup”)=chr“subgroup_1”
#>-attr(*,“brm_reference_time”)=chr“time_1”
模型
要运行完整的子组和简化的非子组模型,请使用brm_model()
像往常一样。记住提供适当的每种情况下的公式。
模型_子组<- brm模型(
数据=数据,
公式=公式_子组,
刷新= 0
)
#>正在编译Stan程序。。。
#>开始采样
模型_简化<- brm模型(
数据=数据,
公式=公式简化,
刷新= 0
)
#>正在编译Stan程序。。。
#>开始采样
边缘
brm_marginal_draws()
自动生成特定于子组的边际平均值,如果brm_formula()
宣布亚组特定的固定效应。
draws_subgroup(图纸_子组)<- brm_边缘_图纸(
模型=模型_子组,
具有子组的平均值= 错误的
)
图纸_减少<- brm_边缘_图纸(
模型=模型诱导,
平均包含子组= 错误的
)
对于图纸_子组
时间差的边际(与基线的变化)和治疗差异现在特定于亚组。
易怒的::as_表格(图纸_子组$差异组)
#>#A台:4000×11
#>.chain.draw.interration`group_2|subgroup_1|time_2`group_2| subgroup_1|time…¹
#><int><int><int><dbl>
#> 1 1 1 1 -0.472 -0.534
#> 2 1 2 2 -0.0221 -0.335
#> 3 1 3 3 -0.222 -0.217
#> 4 1 4 4 0.199 -0.111
#> 5 1 5 5 0.0411 -0.165
#> 6 1 6 6 -0.215 -0.571
#> 7 1 7 7 0.0821 -0.163
#> 8 1 8 8 -0.167 -0.0113
#> 9 1 9 9 0.282 0.0544
#> 10 1 10 10 0.321 -0.322
#> # ℹ 3990多行
#> # ℹ 缩写名称:¹`group_2|subgroup_1|time_3`
#> # ℹ 还有6个变量:`group_2|subgroup_2|time_2`<dbl>,
#>#`group_2|subgroup_2|time_3`<dbl>,`group_3|subject_1|time_2`<dbl>,
#>#`group_3|subgroup_1|time_3`<dbl>,`group_3| subgroup_2|time_2`<dbl>,
#>#`group_3|subgroup_2|time_3`<dbl>
此外,还有一个新的差异_子组
表。后面的样本差异_子组
测量每个子组级别与参考子组级别之间的差异关于治疗效果差异组
.
易怒的::as_表格(图纸_子组$差异_子组)
#>#A台:4000×7
#>.chain.draw.interration`group_2|subgroup_2|time_2`group_2| subgroup_2 | time…¹
#><int><int><int><dbl>
#>1 1 1 1 5.55e-17 0
#>2 1 2 2 4.16e-17 0
#> 3 1 3 3 0 0
#>4 1 4-2.78e-17 0
#>5 1 5 5 2.78e-17 0
#> 6 1 6 6 0 0
#>7 1 7 7 5.55e-17 0
#>8 1 8 8 2.78e-17 0
#> 9 1 9 9 0 0
#> 10 1 10 10 0 0
#> # ℹ 3990多行
#> # ℹ 缩写名称:¹`group_2|subgroup_2|time_3`
#> # ℹ 还有2个变量:`group_3|subgroup_2|time_2`<dbl>,
#>#`group_3|subgroup_2|time_3`<dbl>
这个brm_marginal_summaries()
和brm_marginal_probabilities()
自动意识到子组特定边缘brm_marginal_draws()
.尤其是,brm_marginal_summaries()
总结子组在差异_子组
表来自brm_marginal_draws()
.
摘要_子组<- brm_marginal_摘要(
draws_subgroup(图纸_子组),
水平= 0.95
)
摘要_减少<- brm_marginal_摘要(
图纸_减少,
水平= 0.95
)
摘要_子组
#>#A台:340×7
#>边缘统计群子群时间值mcse
#><chr><chr><chr><chr>><chr><dbl>
#>1差异_组下部组_2亚组_1时间_2-0.300 0.00952
#>2差_组下组_2亚组_1时间_3-0.540 0.0137
#>3差_组下组_2亚组_2时间_2-0.300 0.00952
#>4差_组下部组_2亚组_2时间_3-0.540 0.0137
#>5差_组下组_3亚组_1时间_2-0.130 0.00873
#>6差_组下组_3亚组_1时间_3-0.286 0.00976
#>7差_组下组_3亚组_2时间_2-0.130 0.00873
#>8差_组下组_3亚组_2时间_3-0.286 0.00976
#>9差_组平均值组_2亚组_1时间_2 0.0913 0.00439
#>10差_组平均值组_2亚组_1时间_3-0.167 0.00403
#> # ℹ 330多行
brm_marginal_probabilities()
仍然专注于治疗影响,而不是对分组级别对之间的差异。
brm边缘概率(
绘制=draws_subgroup(图纸_子组),
阈值= c(c)(-0.1,0.1),
方向= c(c)(“更大”,“更少”)
)
#>#A台:16×6
#>方向阈值组子群时间值
#><chr><dbl><chr><chr><chr><dbl>
#>1大于0.1组_2子组_1时间_2 0.826
#>2大于-0.1组_2子组_1时间_3 0.362
#>3大于-0.1组_2子组_2时间_2 0.826
#>4大于-0.1组_2亚组_2时间_3 0.362
#>大于5-0.1组_3亚组_1时间_2 0.966
#>大于6-0.1组_3子组_1时间_3 0.846
#>7大于-0.1组_3亚组_2时间_2 0.966
#>大于8-0.1组_3子组_2时间_3 0.846
#>9减去0.1组_2子组_1时间_2 0.515
#>10减去0.1组_2子组_1时间_3 0.915
#>11减去0.1组_2亚组_2时间_2 0.515
#>12减去0.1组_2亚组_2时间_3 0.915
#>13减去0.1组_3子组_1时间_2 0.204
#>14减去0.1组_3亚组_1时间_3 0.498
#>15减去0.1组_3亚组_2时间_2 0.204
#>16减去0.1组_3亚组_2时间_3 0.498
brm_marignal_data()
可以生成任一特定于子组的或非分组特定的汇总统计。
摘要数据子组<- br边缘数据(
数据=数据,
水平= 0.95,
使用子组= 真的
)
摘要数据子组
#>#A台:126×5
#>统计分组时间值
#><chr><chr>
#>1低组_1亚组_1时间_1 0.170
#>2下组_1亚组_1时间_2 0.244
#>3下组_1亚组_1时间_3 0.169
#>4下组_1亚组_2时间_10.484
#>5下组_1亚组_2时间_2 0.364
#>6下组_1亚组_2时间_30.266
#>7下组_2亚组_1时间_1 0.421
#>8下组_2亚组_1时间_2 0.221
#>9下组_2子组_1时间_3 0.208
#>10低组_2亚组_2时间_10.220
#> # ℹ 116行
摘要_数据_简化<- brm_marginal_data(brm_marginal_data)(
数据=数据,
水平= 0.95,
使用子组= 错误的
)
摘要_数据_简化
#>#A台:63×4
#>统计组时间值
#><chr><chr><chr><dbl>
#>1个较低组_1时间_1 0.251
#>2下组_1时间_2 0.219
#>3下组_1时间_3 0.143
#>4下组_2时间_10.237
#>5下组_2时间_2 0.252
#>6下组_2时间_3-0.0331
#>7下组_3时间_10.104
#>8下组_3时间_2 0.332
#>9下组_3时间_3 0.110
#>10平均组_1时间_10.0632
#> # ℹ 还有53行
模型比较
指标来自业务风险管理系统
可以比较整个子组和简化非亚组模型评估亚组作为整体。我们可以很容易地计算出广泛适用的信息准则(WAIC)。
业务风险管理系统::waic公司(模型_子组)
#>
#>由4000乘以900对数似然矩阵计算得出。
#>
#>估计SE
#>elpd_waic-1275.8 19.9
#>p_waic 20.0 1.0页
#>海外货币2551.6 39.9
业务风险管理系统::waic公司(模型_简化)
#>
#>由4000乘以900对数似然矩阵计算得出。
#>
#>估计SE
#>elpd_waic-1273.9 20.0号
#>p_waic 17.1 0.9分
#>围2547.840.0
同样,我们可以根据预期的日志比较模型基于近似帕累托平滑的预测密度不参与交叉验证。
loo_子组<-业务风险管理系统::厕所(模型_子组)
loo_减少<-业务风险管理系统::厕所(模型_简化)
loo_子组
#>
#>由4000乘以900对数似然矩阵计算得出。
#>
#>估计SE
#>elpd_loo-1275.8 19.9
#>p_loo 20.1 1.0
#>卢尼克2551.6 39.9
#> ------
#>elpd_loo的MCSE为0.1。
#>MCSE和ESS估计假定MCMC提取(r_eff in[0.4,1.6])。
#>
#>所有Paretok估计值均良好(k<0.7)。
#>有关详细信息,请参阅帮助(“Preto-k-diagnostic”)。
loo_减少
#>
#>由4000乘以900对数似然矩阵计算得出。
#>
#>估计SE
#>elpd_loo-1274.0 20.0
#>p_loo 17.2 0.9
#>卢尼克2547.9 40.0
#> ------
#>elpd_loo的MCSE为0.1。
#>MCSE和ESS估计假定MCMC提取(r_eff in[0.4,1.8])。
#>
#>所有Paretok估计值均良好(k<0.7)。
#>有关详细信息,请参阅帮助(“pareto-k-diagnostic”)。
厕所::loo_compare(厕所对比)(loo_subgroup,loo_redired)
#>帮助差异se_diff
#>模型减少0.0 0.0
#>型号分组-1.9 1.6
可视化
brm_plot_draws()
了解任何特定于子组的边际平均值。
您可以调整视觉美学以同时比较子组级别side-if-subgroup级别是主要的兴趣比较。
brm绘制(
draws_subgroup(图纸_子组)$差异组,
轴= “子组”,
刻面= c(c)(“时间”,“组”)
)
以下函数调用比较子组模型结果根据子组数据。
brm _打印_比较(
数据=摘要数据子组,
模型=摘要_子组,
边缘的,边缘的= “响应”
)
您可以调整绘图美学以并排查看子组级别作为兴趣的主要比较。
brm _打印_比较(
数据=摘要数据子组,
模型=摘要_子组,
边缘的,边缘的= “响应”,
比较= “子组”,
轴线= “时间”,
刻面= c(c)(“组”,“源”)
)
我们还可以直观地比较一个亚组的治疗效果降低模型的边际处理效果。
brm_绘图比较(
子群= 滤波器(摘要_子组,子组== “子组2”),
减少=摘要_摘要,
边缘的,边缘的= “difference_group”
)
请记住按单个子组级别进行筛选。否则,brm_plot_compare()
抛出信息错误以防止过度绘制。
brm _打印_比较(
子群=摘要_子组,
减少=摘要_摘要,
边缘的,边缘的= “difference_group”
)
#>错误:
#> ! brm_plot_compare()省略了subgroup变量,因为不是所有的边际摘要都有它,但边际摘要“subgram”有多个子组级别。请在单个子组级别上进行筛选,或确保提供的所有边缘摘要都是特定于子组的。