r语言把多个图合并在一张图_SAS 绘制亚组分析森林图
背景介紹
隨著循證醫學(evidence-based medicine)的興起,森林圖(forest plot)已經為人所廣泛認識。當前,幾乎所有的臨床工作者都知道什么是森林圖以及如何解讀森林圖的含義。
Richard Peto曾以玩笑的口吻提及森林圖命名的來歷是因為有一位乳腺癌研究者叫做Pat Forrest,所以森林圖亦被稱為Forrest plot。但事實上,森林圖命名的真正來源還是因其能夠在一張圖片中同時展示多個或多組數據的宏觀情況(the wood and the trees),避免“一葉障目”、“只見樹木,不見森林”。
最初森林圖的雛形可追溯到1978年,Freiman JA等人在當時的醫學頂級期刊《新英格蘭醫學雜志》上發表了一篇研究論文,該論文調查了71項陰性研究的結果,并將其在一張圖片上利用水平柱狀圖來展示這些研究的置信區間(confidence interval)以及其對應的點估計值,可被視為森林圖的雛形,但當時并未對這些納入研究進行數據合并。
森林圖的應用場景很廣泛,除了最初的發表時用于展示調查結果數據外,幾乎所有的Meta分析都以這種方式呈現單個研究的數據和合并后的結果。著名的Cochrane協作組織的標志中即含有森林圖的元素。Cochrane標志中紫色的部分即為森林圖,該森林圖來源于一個真實的Meta分析,共納入了7個隨機對照試驗(Randomized Controlled Trial, RCT),比較對于過早分娩的女性給予皮質類固醇(corticosteroid)和安慰劑(placebo)的治療結果,結果顯示皮質類固醇對于減少早產兒死亡率非常有效。
除了Meta分析外,越來越多的臨床研究開始在亞組分析(Subgroup analysis)的部分引入森林圖,以此來呈現亞組分析的結果(不同人群之間,如年齡,性別,疾病分期等亞組)。
也有的研究在敏感性分析(Sensitivity analysis)的部分以森林圖的形式呈現敏感性分析的結果(對缺失數據進行不同的填補方式,如末次結轉,多重填補等)。還有的研究在展示趨勢變化時也會采用森林圖的形式呈現。
SAS實現
SAS實現森林圖的方式目前稍微有些復雜,主要原因在于:
需要對數據進行手動錄入處理;
尚無過程步能夠“快速”繪制森林圖(怎么定義快速?
三行代碼吧)
由于 SAS 9.4M3 以前的版本的 styleattrs 語句因為沒有 axisextent 選項,yaxistable 語句沒有 indentweight 和 pad 選項,所以 9.4M3 之前的版本無法對文本進行縮進。但即使無縮進,也并非不可接受。細節中有魔鬼,對文本縮進固然顯得更加清楚,但森林圖的重點還是在于圖,而不是文字。如果是9.4M3之前的版本,把縮進相關選項刪除即可,可以先大概了解一下SAS森林圖的作圖風格。
方法1
利用proc sgplot逐一調整橫縱坐標,繪制參考線,繪制置信區間和點估計,填充色塊,添加文字和箭頭等。
方法2
通過proc iml調用R語言中的forestplot包。但是仍然需要先手動錄入數據,建議采用proc SQL錄入數據,這樣可以在錄入數據的同時對變量進行縮進。而且利用proc SQL在指定變量長度的時候也更為靈活。再次強調R語言對于大小寫敏感,所以務必注意在調用R語言時,R代碼中的變量名稱需要與SAS中的變量名稱“完全一致”。
上圖可以繼續通過在R的代碼中增加選項(如底部文字說明,色塊突出等)進一步潤色可視化的細節,具體的方法可以通過help(forestplot)了解或者其他R語言的資料。
參考文獻:
1.JA Freiman, et al. The importance of beta, the type II error and sample size in the design and interpretation of the randomized control trial-survey of 71 negative trials.
2.S Lewis. Forest plots: trying to see the wood and the trees.
3.JR O’Leary, et al. How to create a journal quality forest plot with SAS 9.4.
4.谷鴻秋《SAS編程演義》
5.谷鴻秋《那就再講講三行R代碼搞定的森林圖吧》
作者簡介
秦宗實,香港大學李嘉誠醫學院中藥學專業在讀博士,研究方向為天然藥物與神經疾病的轉化醫學研究。曾參與“十二五”國家科技支撐計劃項目、國家重點研發計劃“中醫藥現代化研究”重點專項等臨床研究,參與研究方案及統計分析計劃制定。在J Urol、Am J Med、Mayo Clinic Proc、Brain Behav Immun等期刊發表論文20多篇。
谷子歌總結
森林圖,其實細究起來,大致有三種:
meta分析森林圖、回歸分析森林圖以及亞組分析森林圖
SAS 繪制森林圖,最核心的其實就是highlow 語句 (繪制 95% CI )和 yaxistable 語句(繪制文字)
繪制回歸分析和亞組分析森林圖的數據,還是建議直接在前面的過程中抓取,不要用dataline輸入。至于meta分析森林圖,還是用 R 吧
非常感謝秦同學投稿,原文代碼較多,就不貼出來了。但估計還是有些同學想要具體代碼,那就點原文鏈接,可方便地獲取Sanjay Matange 博客中的代碼
總結
以上是生活随笔為你收集整理的r语言把多个图合并在一张图_SAS 绘制亚组分析森林图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java redis hscan_red
- 下一篇: Python时钟代码——利用python