玩转森林图的n种方法,总有一种适合你!
孔乙己最得意的是他知道茴香豆的「茴」字的有四种写法。我想嘚瑟一下的是,森林图有几种画法!
神马?不知道森林图?先放一张PPT铺垫一下。
(一)森林图是啥?
↑森林图的非正式定义
不过上图说的是最传统的Meta分析里的森林图,而在学术论文里,经常会碰到亚组分析的森林图,这种森林图经常以基线信息分层,图形化展示各层的效应,但通常不像Meta分析那样有合并效应,异质性等内容。
↑亚组分析森林图
(二)森林图咋画?
据我个人的不完全调查,可以实现森林图的有:
Meta分析专用软件RevMan
通用统计软件SAS/Sata/R
专用绘图软件GraphPad Prism
大众情人Excel
对于传统的Meta分析里的森林图,在RevMan里填好数据就自动生成了,市面上汗牛充栋的Meta分析培训班也就专门教这个,在此不再赘述。当然,这种传统森林图用Stata的metan命令和R的Meta和Metafor包也能轻松搞定,不太了解的可以戳这篇文章,在此也不再赘述。
SAS其实通过GTL也能做出图文混排的森林图,不过比较复杂,我个人不推荐。但你就是好这口的话,我曾修过一个宏,这篇文章里,有过提及,也不再赘述。
都不再赘述?那今天述啥?今天给大家展示:
如何用大众情人EXCEL搞定期刊风格的亚组分析森林图!
(三)Excel开挂
比如说,顶级医学期刊NEJM的亚组分析森林图的风格如下:
↑NEJM亚组分析森林图的部分截图
分析:难点就在于如何画出HR及其95%CI,并整合到表格中去。
思路:
做好表格,空出Hazard Ratio(95%CI)栏的图的位置。
做好Hazard Ratio(95%CI)的图。
把Hazard Ratio(95%CI)的图贴到表格中去。
是的,这和把大象放进冰箱的思路是一样的。怎么做?转备好截图的疯狂轰炸!
1. 做好表格,留空位置;准备辅助数据,画图。
↑模板示例
辅助数据包括:
标明行号的id列(倒序,以后当做y轴数据用)
效应值及其95%CI(hr, lhr,uhr)
95%CI上下限距离点估计的距离(ler,uer)
无效线列(ref, 通常为0或1,看效应指标是差值还是比值)
2. 插入一个空的散点图。
↑空散点图
3. 右击空图,添加数据,把点估计的效应HR的散点画出来。
注意HR要作为X轴,ID作为y轴。
↑点估计效应的散点图
4. 单击散点,出现加号,仅勾选坐标轴,设置误差线。
注意:13版可能有所差别。
↑设置误差线
5. 用Uer和Ler列分别作为误差线的上限,下限值。
↑继续设置误差线
6. EXEL默认会自动添加固定的纵向误差线,删除他,并对点,线,坐标轴做些设置。
↑删除纵向误差线
↑设置横坐标轴
↑设置效应点,默认圆点,改为正方形
↑初具雏形
7. 添加无效线。右击图后选择数据,Ref列作为X轴,ID列作为Y轴。
↑添加无效线
但是不对啊?这是无效散点啊。
8. 格式化改点为线。
↑格式化无效线
9. 删除Y轴数字标签。调整大小,宽度,移到备用的表格中。
↑八九打扮,九分模样
等等,发现好像哪里不对?是的,要设置透明图片。
10. 设置图片透明。
↑貌似OK
好像还是不对,怎么还有两条竖线线?
11. 设置无边框图片。
(四)皆大欢喜
经过11步大法,成品如下!基本可以出手了。再截图,再导出矢量图片,等等。后续你爱怎么折腾就怎么折腾吧。
哎,等等,怎么又是个11步啊,难道还要过一个双十一啊。哎,……
↑可以出手了
(五)众口难调
不愿意码代码的童鞋,各位临床大大说,「太好了,EXCEL酷毙了,我要投NEJM!」
不愿动手的码农说,「太TMD的麻烦了吧,有没有简单的代码版的啊?」
其实,其实R的forestplot函数也是可以的。当然,其中也是有各种坑,各种小技巧,在此不再赘述。
R版的三行代码效果如下图:
(六)读者福利
最近事儿比较多,写得懒了,前几篇文章放水太多,今天给的这个干货你打几分?打几分?
关注StatsThinking,后台回复「ExlMeta」 我给你推送Excel模板。以后有图,你直接往模板里填数据就可以了。
时间紧了,写得少了,截图太累了,写完这篇我要休息几天。大家且看且珍惜吧!
版权说明:
感谢支持鼓励,形式包括不限于转发,转载,推荐,赞赏。
微信公众平台的非商业培训机构公众号,无需授权,可直接转载。
网站转载,不得省略作者信息,包括公众号二维码。