首页 > 解决方案 > 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 向量中给出的置信区间不对应。这是我得到的情节:

有人可以告诉我我做错了什么吗?

标签: rconfidence-intervalforestplotmetafor

解决方案


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.lbandci.ub向量传递给参数viand sei,这是没有意义的。所以使用forest(x, ci.lb=ci.lb, ci.ub=ci.ub)来确保这些向量被传递给正确的参数。这里的总体教训是不要依赖参数的位置匹配。


推荐阅读