如何用metafor包对model亚组进行mechanism调节变量分析?
在metafor中实现亚组内的调节变量分析
当然可行!完全不用折腾着拆分数据集,metafor 里有很方便的方法帮你实现这个需求,我给你一步步讲清楚:
直接用
subset参数+调节变量公式
你之前写的代码已经筛选出了model == "IR"的亚组,只要在rma()的mods参数里加入mechanism作为预测变量,就能直接在这个亚组内做以mechanism为调节变量的元回归了,代码如下:# 在model="IR"的亚组中,分析mechanism的调节效应 run.5 <- rma(yi = es, vi = var, mods = ~ mechanism, data = agg.es.mod, subset = model == "IR") # 查看详细结果 summary(run.5)运行后,结果里
mechanism的系数及其显著性,就代表在model=IR这个亚组内,不同mechanism水平对汇总效应的影响是否显著。批量处理所有model亚组(进阶技巧)
因为你的model有3个水平,手动写三次代码有点麻烦,可以用循环批量处理所有亚组,把结果存在列表里方便查看:# 获取model的所有独特水平 model_groups <- unique(agg.es.mod$model) # 创建空列表存储每个亚组的分析结果 subgroup_mechanism_results <- list() # 循环遍历每个model亚组 for (group in model_groups) { subgroup_mechanism_results[[group]] <- rma(yi = es, vi = var, mods = ~ mechanism, data = agg.es.mod, subset = model == group) } # 查看任意亚组的结果,比如查看"IR"组 summary(subgroup_mechanism_results[["IR"]]) # 查看另一个组,比如替换成你的实际水平名称 summary(subgroup_mechanism_results[["你的model水平名称"]])关于是否需要拆分数据集
完全不需要手动拆分数据集!用subset参数的方法更简洁,还能保持原始数据集的完整性,方便后续的结果对比和其他分析。当然如果你一定要拆分数据集也是可以的,但没必要,subset已经能完美解决问题。
内容的提问来源于stack exchange,提问作者D. Nguyen
相关产品推荐
相关产品推荐

