r - Metafor 森林图显示优势比的置信区间不正确
问题描述
我正在尝试绘制优势比和相应的 90% 置信区间,这是我之前使用包 brms 从比例优势模型中获得的。我制作了包含从模型中获得的优势比的向量(后验样本的中位数;x),以及下(ci.lb)和上(ci.ub)置信区间界限,并使用以下代码制作森林图:
x <- c(6.587028, 10.67589, 1.578881, 1.396755, 5.447785, 1.852427, 1.828179, 1.725313, 1.526206, 1.993046, 1.191804, 0.7648945)
ci.lb <- c(2.682959, 4.196124, 0.6783311, 0.547960, 2.011936, 0.7649611, 0.7492622, 0.6538183, 0.5299715, 0.8348141, 0.4814904, 0.2945799)
ci.ub <- c(17.843931, 29.200081, 3.7121095, 3.612463, 15.466248, 4.6075681, 4.3162345, 4.3404646, 4.3962568, 4.7397496, 2.9739579, 1.9560032)
forest(x, ci.lb, ci.ub, annotate=TRUE, showweights=FALSE,
header=headers, top=3, steps=5,
refline=0, digits=2L, xlab="Odds ratios",
slab=labels, efac=1, pch=15, col)
但是,我的森林图上的置信区间与我的 ci.lb 和 ci.ub 向量中给出的置信区间不对应。这是我得到的情节:
有人可以告诉我我做错了什么吗?
解决方案
OP 显示的森林图来自metafor
包,而不是meta
包。后者加载metafor
并且运行时使用的函数forest(x, ci.lb, ci.ub)
是metafor::forest.default()
. 如果您查看此函数的文档(https://wviechtb.github.io/metafor/reference/forest.default.html),您会看到前五个参数是forest(x, vi, sei, ci.lb, ci.ub, ...)
. 因此,您将ci.lb
andci.ub
向量传递给参数vi
and sei
,这是没有意义的。所以使用forest(x, ci.lb=ci.lb, ci.ub=ci.ub)
来确保这些向量被传递给正确的参数。这里的总体教训是不要依赖参数的位置匹配。
推荐阅读
- kotlin - 如何创建基于类型或类对象生成对象的工厂?
- javascript - 在javascript中使用for-each进行数组迭代
- aspnetboilerplate - 它们是如何连接的?Abp、AbpZero、AbpZero 模板
- c# - 强制异步并行循环立即停止 - C#
- amazon-web-services - AWS SES Configset - 无法使用 AWS 云形成堆栈创建到 SNS 的事件目标
- json - Azure ARM 复制索引在 Json 中不起作用
- javascript - Angular 4中如何区分鼠标“单击”和“拖动”div表列?
- python - Python 和数论:我们如何创建 q(n) 的生成函数(将 n 划分为不同部分的数量)?
- python - 在 conda 中安装 fancyimpute,得到“PackageNotFoundError: Packages missing in current channels”
- android - Google 奖励视频广告适用于测试广告单元 id,但不适用于实时广告单元 id