通过meta中的metafor包进行对数变换模型的森林图

时间:2016-01-27 20:26:27

标签: r

我使用rma.glmm包中的metafor命令荟萃分析药物的流行程度。使用对数变换,因为它们遵循二项分布。

所以,我的模型是:

med_A<-rma.glmm(xi=A, ni=Sample_size, measure="PLO")

使用以下代码制作森林图,结果如下所示。

forest(med_A, atransf = transf.ilogit, ilab = cbind(A, Sample_size), 
       ilab.xpos = c(-7,-5), slab = Study, refine=1)

比例看起来很奇怪,因为1.00出现两次而且分配不均。我怎样才能改变规模并制作变换后的森林情节?

Forest plot of medication A

1 个答案:

答案 0 :(得分:1)

如果您在此处forest(med_A),您会看到默认的x轴刻度线是在-6, -4, ..., 6, 8处绘制的。因此,如果您使用atransf=transf.ilogit,则两个最高值为0.99752740.9996646(只需尝试:transf.ilogit(c(6,8))),当四舍五入到小数点后两位时变为1.00 。如果你做forest(med_A, atransf=transf.ilogit, digits=3),你会发现那些真的是两个不同的值。所以这不是函数中的错误。

在这里获得一个体面的森林情节有点棘手(也因为研究3,这实际上是一个异常值)。您可以做的一件事是手动设置刻度线。例如:

forest(med_A, atransf=transf.ilogit, at=transf.logit(c(.01, .1, .5, .8, .95, .99, .9999)))

请注意,您不能将1用作最高值,因为这将是Inf。四舍五入后,情节仍将显示1.00作为最高刻度标记,但这有点误导,因为“真实”1无法在对数刻度上显示。

您可能希望转换值本身,而不是转换x轴值。所以:

forest(med_A, transf=transf.ilogit, refline=.5)

然后,CI将是不对称的,但由于使用了非线性(后向)转换,这是正确的。