來自于SCI666? Stata是一款非常強大的統(tǒng)計和作圖軟件,本文中用的版本是Stata14.2。網(wǎng)上目前存在的教程多半是用mvmeta包來做網(wǎng)狀Meta,但mvmeta相對繁瑣,需要打不少的代碼去轉(zhuǎn)換數(shù)據(jù)格式,Network包本質(zhì)上是mvmeta,不過對用戶更加友好,只需要執(zhí)行簡單的代碼就可以數(shù)據(jù)處理。本文將介紹用Stata的Network包實現(xiàn)連續(xù)性變量的網(wǎng)狀Meta分析。 1. 假設我們已經(jīng)安裝好了Stata,在命令欄敲入:net from http://www.mtm.,然后點擊network_graphs,下載network包。 2. 將要處理的數(shù)據(jù)在Excel中整理成下圖所示: 其中id代表研究,t代表治療,r是反應數(shù)(本例中是每組因副作用脫落的數(shù)目),n是樣本量;注意每一行代表一個研究的一個臂(組),如果一個研究有三臂,那么就占三行。分析時需將id以數(shù)字來依次編號Study。同樣,依次以數(shù)字來編號t。特別注意的是,同一研究中從上到下,治療的編碼只能增大,不能降低。一般來說,將安慰劑編碼為1。 3. 點擊Stata菜單欄Data->Data Editor-> Data Editor(Edit),將整理好的數(shù)據(jù)直接拷貝到里面,注意拷貝的時候選擇首行為變量名;Excel中第1列Study不用拷貝;如下圖所示: 4. 返回Stata的首界面,在命令欄敲入: network setup r n, studyvar(id) trtvar(t) format(augment) or 以上代碼效應量為OR,如果是用RR作為效應量,則敲入: network setup r n, studyvar(id) trtvar(t) format(augment) rr 結(jié)果如下圖所示: 繼續(xù)點擊Stata菜單欄Data->Data Editor-> Data Editor(Edit),發(fā)現(xiàn)數(shù)據(jù)變成如下模樣: 右邊還有很長,實在截圖不下了。 現(xiàn)在我們的數(shù)據(jù)就準備成可以進行網(wǎng)狀Meta分析的格式了。 5. 制作網(wǎng)狀圖,在命令欄敲入: network map 就會跳出如下圖形: 或者敲入: network map, improve 線條以及節(jié)點的顏色、比例、以及將數(shù)字換成治療名稱,均可以在圖形上點擊右鍵,開啟start graph editor后進一步編輯;或者以命令行的形式編輯;留給讀者探索,在此不再贅述。 6. 首先用不一致性模型進行檢驗,在命令欄敲入: network meta i 成功的話會看到: 前面一堆東西不重要,主要是看紅色方框里面的P值是否大于0.05;若小于0.05,則不一致性模型顯著;對于這批數(shù)據(jù)不能直接用接下來的一致性模型分析。在本例中不一致性檢驗不顯著,說明可以使用一致性模型進行分析。 7. 用一致性模型進行分析,在命令欄敲入: network meta c 結(jié)果如下所示: B,C,D,E,F,G分別對應編碼為2,3,4,5,6,7的干預,Coef就是這些干預與1(安慰劑)對比的效應量,最后三列是P值以及95%可信區(qū)間。 8. 至此,一致性模型與不一致性模型的結(jié)果均已算出,在命令欄敲入: network forest 出現(xiàn)如下所示的森林圖,最底部是不一致性檢驗: 9. 上面進行的不一致性檢驗是Global inconsistency;對于網(wǎng)狀Meta,光做Global是不夠的,還有Local inconsistency;為了做局部不一致檢驗,我們通常使用節(jié)點劈裂法(node-splitting method);在命令欄敲入如下代碼: network sidesplit all, tau 結(jié)果如下所示: 若P小于0.05,則認為局部存在不一致性。 10. 在這一步,命令欄敲入clear;然后重復第3、4、7步;為了計算每個干預的SUCRA,在命令欄敲入以下代碼: network rank min, all zero reps(5000) gen(prob) 注意,在本例中MD越小說明排名越靠前,所以這里用min,如果效應量越大排名越靠前,那么代碼應該改成“network rank max, all zero reps(5000) gen(prob)”。出現(xiàn)如下結(jié)果: 這個圖表示每個治療排行第幾的概率。如編碼為1的治療(安慰劑)排行第2的概率最大(35.1%),以此類推。 接下來計算我們通常比較關(guān)心的SUCRA,以及順便把編碼還原為我們的治療名稱,敲入以下代碼: sucra prob*, lab(Placebo Aripiprazole Risperidone Quetiapine Olanzapine Haloperidol Paliperidone) 這里lab是label(標簽)的意思,括號里按照1234567編碼的順序把治療名稱寫出,以空格相隔。結(jié)果如下所示: SUCRA值越高的排名越靠前,同時可以跳出SUCRA的圖: 11. 制作文獻中常見的聯(lián)賽表,敲入以下代碼: netleague, lab(Placebo Aripiprazole Risperidone Quetiapine Olanzapine Haloperidol Paliperidone) sort(Placebo Haloperidol Risperidone Aripiprazole Olanzapine Quetiapine Paliperidone) export ("D:\network.xlsx") eform 其中l(wèi)ab還是按照1234567的順序依次寫上治療的名稱;sort是按照SUCRA的大小排序,排行第一的寫在最前面;export可要可不要,它的作用是將聯(lián)賽表導出到指定的路徑。eform很重要,因STATA默認對分類變量的輸出為對數(shù)形式,eform的作用就是把它還原為OR或者RR。 注意如果沒有export的話,這個聯(lián)賽表是個臨時文件,必須再次復制保存;最后一句話提示聯(lián)賽表在數(shù)據(jù)視圖的最末尾,也就是最右邊。即點擊Stata菜單欄Data->Data Editor-> Data Editor(Edit),將下面的滾動條拉至最右邊,就可以看到蜷縮在角落里瑟瑟發(fā)抖的聯(lián)賽表。 將結(jié)果復制到Excel里面,盡情美化吧騷年! 12. 制作兩兩比較的森林圖,在命令欄敲入以下代碼: intervalplot, null(1) lab(PLA ARI RIS QUE OLA HAL PAL) eform eform很重要;其中,null(1)設置無效線為1,還可以加入pred可以輸出預測區(qū)間,留給讀者自行嘗試;本例跳出如下森林圖: 13. 制作漏斗圖,首先將數(shù)據(jù)格式轉(zhuǎn)換,敲入如下代碼: network convert pairs 可將數(shù)據(jù)轉(zhuǎn)換成如下格式(瞬間感覺清爽了許多) 然后敲入如下代碼: netfunnel _y _stderr _t1 _t2 , random bycomp add(lfit _stderr _ES_CEN) noalpha 結(jié)果如圖所示: 其實不用敲入這么多代碼,你只敲入“netfunnel _y _stderr _t1 _t2”一樣可以出結(jié)果;Stata里DIY的地方很多,讀者可以敲入“help netfunnel”自行查閱幫助文檔;對于其他的任何命令,都可以help一下。 14. 環(huán)不一致性檢測(loop inconsistency),所謂的環(huán)就是指治療與治療之間構(gòu)成了封閉的環(huán)形。運行以下命令同樣需要先將數(shù)據(jù)格式轉(zhuǎn)換為清爽的格式(network convert pairs): ifplot _y _stderr _t1 _t2 id, tau2(loop) 結(jié)果如下所示: 如果可信區(qū)間包括0,說明環(huán)不一致性不顯著,但如果IF很大,說明直接比較結(jié)果和間接比較結(jié)果相差有點大……結(jié)果解釋需謹慎,或者做亞組分析和回歸分析找異質(zhì)性來源,或者做敏感性分析等等。 15. 貢獻圖(即觀察直接比較與間接比較對最終估計結(jié)果的貢獻)的制作,在命令欄敲入以下命令(需要清爽格式): netweight _y _stderr _t1 _t2 結(jié)果如圖所示:
祝大家數(shù)據(jù)處理順利。 私信作者可獲得本例中所使用數(shù)據(jù)的Excel文件。 |
|
來自: 創(chuàng)客小組 > 《sci666》