addpoly函数指定level=90后仍显示95%CI文本的问题求助
问题
我基于metafor包中的rma.mv对象创建了带亚组的森林图,使用forest()函数并设置level=90时,各研究效应量行旁的90%置信区间(CI)显示正常。代码如下:
res <- rma.mv(yi = g, V = V, random = ~ 1 | study / es_id, data = df, method = "REML", test = "t") forest(res, xlim = c(-16, 6.75), at = c(-4, -2, 0, 2, 4), alim = c(-4, 7.25), ylim = c(-2,18.5), ilab = cbind(df$measure, df$norm_delta_mean, df$norm_delta_sd, df$slow_delta_mean, df$slow_delta_sd), ilab.xpos = c(-11, -8.75, -7.5, -5.75, -4.5), slab = df$descriptor, order = training_status, mlab = summary_labs_str("RE Model for All Studies", res), rows = c(2:6, 10:14), header = "Author(s) and Year", cex = 0.95, addpred = TRUE, level = 90)
但使用addpoly()函数添加整体汇总效应标签时,设置level=90虽按预期改变了多边形及预测区间(PI),但文本部分(估计值+CI)仍显示为95%水平。代码如下:
addpoly(res, row= 9, level = 90, mlab=summary_labs("Subgroup RE Model", res), addpred = TRUE, cex = 0.875, annotate = TRUE)
请问我忽略了什么设置?
解决方法
问题根源在于summary_labs()函数是基于原模型对象res生成标注文本,而原模型默认采用95%置信水平,不会自动读取addpoly()中设置的level=90参数。
你需要在调用summary_labs()时手动传入level=90,让它计算并输出90%置信区间的文本内容。修改后的addpoly()代码如下:
addpoly(res, row= 9, level = 90, mlab=summary_labs("Subgroup RE Model", res, level=90), addpred = TRUE, cex = 0.875, annotate = TRUE)
本质上,addpoly()的level参数只控制图形元素(多边形、预测区间线),而标注文本的置信水平由生成它的函数单独决定,必须确保两者使用相同的置信水平参数。
内容的提问来源于stack exchange,提问作者AKing
相关产品推荐
相关产品推荐

