試驗序貫分析(TSA)不僅可以應用TSA軟件進行操作,也可以在Stata軟件中實現。Stata軟件實現TSA的過程中,需要Stata軟件的“metacumbounds”命令結合R軟件的“foreign”和“ldbounds”程序包。本文簡要介紹了如何使用Stata軟件進行TSA操作。
引用本文: 翁鴻, 李勝, 何發智, 楊林, 劉同族, 曾憲濤. 試驗序貫分析在Stata軟件中的實現. 中國循證醫學雜志, 2016, 16(12): 1472-1476. doi: 10.7507/1672-2531.20160220 復制
試驗序貫分析(trial sequential analysis,TSA)是近二十年發展起來的一種統計方法,最初起源于Pogue等 [1]將Lan-DeMets界值引入累積Meta分析,后由丹麥哥本哈根臨床試驗中心的科研團隊提出完整的TSA方法 [2-6],并開發了相關的TSA軟件 [7]。當前實現TSA操作的軟件主要是哥本哈根臨床試驗中心為首的科研團隊開發的TSA軟件,本團隊已對其操作進行了講解 [8]。除了TSA軟件可實現TSA外,Stata軟件也可實現。美國南佛羅里達大學循證醫學與健康實效研究中心的Miladinovic教授等 [9]開發了Stata的“metacumbounds”命令,用于實現TSA。本文主要介紹如何使用Stata軟件來實現TSA。
1 命令安裝及準備工作
本文使用Stata 12.0軟件,“metacumbounds”命令需要讀者自行安裝,在Stata命令窗口鍵入“findit metacumbounds”,在新彈出的界面中點擊“st0284 from http://www.stata-journal.com/software/sj13-1”,然后在描述“st0284”軟件包的界面中點擊“click here to install”,然后就會安裝“metacumbounds”的三個文件:ado、sthlp、和dlg。其中“st0284/metacumbounds.dlg”文件是對話框文件,即菜單操作文件,將其放置在Stata激活目錄下即可;此外,還可在Stata命令窗口鍵入以下命令來將其添加到菜單欄:
window menu append item "Meta-Analysis" "Cumulative MA with bounds (metacumbounds)" "db metacumbounds"
window menu refresh
然后點擊“User→Meta-Analysis”,在最后一行我們發現“Cumulative MA with bounds (metacumbounds)”已添加到Meta分析菜單,如圖 1所示。

此外,“metacumbounds”命令需要Stata軟件的“metan”命令來計算Meta分析的統計量(Z值);此外,還需要結合R軟件的“foreign”和“ldbounds”程序包,其中“foreign”包用來讀寫Stata數據文件,“ldbounds”包用來計算TSA界值,計算方法有O’Brien-Fleming和Pocock損耗函數。在R軟件中安裝程序包的方法詳見《R與Meta分析》 [10]。采用Stata實現TSA時,雖然需要R軟件來輔助計算TSA界值,但不需要讀者打開R軟件,Stata軟件運用“rsource”命令在Stata內部來調用運行R軟件,通過Rterm.exe程序實現。因此,需要在Stata中安裝“rsource”命令,通過鍵入“ssc install rsource”命令實現。
2 “metacumbounds”菜單及命令格式
“metacumbounds”命令格式為:
metacumbounds varlist [if] [in],data(count|loghr) effect(f|r) spending(string) rdir(string) is(ais|apis|lbis|lbhis) [id(strvar) surv(#) loss(#) lbid(varname) stat(rr|or|rd) wkdir(string) kprsrce(string) alpha(#) beta(#) graph rrr(#) listRout listRin keepR graph_options]
其中varlist包括計數數據或logHR,及其標準誤和試驗樣本量;data(count|loghr)定義分析的數據類型是二分類數據(count)還是時間-事件數據(logHR),二分類數據選項下的效應量有RR、OR、RD,該選項是必須項;effect(f|r)定義估算模型:固定效應模型(f)和隨機效應模型(r),當異質性I2>30%時采用固定效應模型,合并方法采用的是“metan命令的倒方差法”(fixedi和randomi),該選項是必須項;spending(string)定義R軟件“ldbounds”程序包計算TSA界值所采用的損耗函數方法,有O’Brien-Fleming函數(spending(1) )、Pocock函數(spending(2) )、αt函數(spending(3) )、αt1.5函數(spending(4) )、αt2函數(spending(5) ),該項是必選項;rdir(string)列出R軟件的路徑,該項是必須項;is(ais|apis|lbis|lbhis)定義信息量的計算,有累積信息量(ais)、先驗信息量(apis)、低偏倚信息量及低偏倚校正信息量,該項是必須項;id(strvar)是用來標簽納入研究的字符型變量;surv(#)定義時間-事件數據的總體平均生存率,范圍為[0,1);loss(#)定義時間-事件數據的失訪比例,范圍為[0,1);lbid(varname)定義低偏倚風險研究,在is(lbis)或is(lbhis)選項下使用;stat(rr|or|rd)定義二分類變量數據的合并效應量(RR、OR、RD);wkdir(string)定義文件的保存目錄;kprsrce(string)程序完成后保存R源文件;alpha(#)定義Ⅰ型錯誤;beta(#)定義Ⅱ型錯誤;graph為繪圖參數;rrr(#)定義計算先驗信息量(apis)的先驗干預效應(RRR);listRout將R軟件輸出的結果展示在Stata軟件;listRin將R軟件源文件展示在Stata軟件;keepR保留R源文件;graph_options是總體繪圖選項,其中shRRR和pos( )定義RRR、α、β在圖形中的位置,xtitle(string)和ytitle(string)分別添加x軸和y軸的標簽;titile(string)和subtitle(string)添加圖形的標題和亞標題。
當然,我們也可以采用菜單操作來,點擊“Cumulative MA with bounds (metacumbounds)”,如圖 2所示。除需要定義圖 2所示的“Main”欄外,還需要定義“Directories and graphing option”欄(圖 3)。


3 實例分析
本文采用“metacumbounds”命令附帶的樣本數據進行分析 [9](表 1),在Stata命令窗口鍵入“use example1”命令即可獲得該數據。該數據為二分類數據,其中,study表示納入研究名稱,a、b分別表示試驗組事件發生數、未發生數,c、d分別表示對照組事件發生數、未發生數,lbid表示納入研究的風險偏倚情況(0為高風險、1為低風險)。

然后在Stata命令窗口鍵入以下命令:
metacumbounds a b c d,data(count) effect(f) id(study) alpha(0.05) beta(0.20) is(AIS) stat(rr) graph spending(1) rrr(.15) listRin keepR kprsrce(StataR_source.R) rdir(C:\Program Files\R\R-2.12.2\bin\i386\) listRout shwRRR pos(12) xtitle(Information size)
采用的效應模型為固定效應模型,α和β分別定義的為0.05和0.2,信息量采用的是累積信息量(AIS),合并效應量采用的是相對危險度(RR),損耗函數為O’Brien-Fleming函數,RRR定義為15%。以上命令運行后,繪制出的TSA界值圖如圖 4所示,Stata輸出結果見表 2。


圖 4為基于累積信息量(AIS)的TSA界值圖,圖中顯示AIS=1 569,統計效能為56%,累積Z曲線已越過傳統Z=1.96界值線以及TSA界值線,表明試驗組干預措施優于對照組干預措施。此外,我們還繪制出基于APIS、LBIS的TSA界值圖進行比較。
APIS界值圖的繪制只需將AIS界值圖繪制的命令中is(AIS)參數改為is(APIS)即可,基于RRR=15%,α=0.05,β=0.2下,APIS=2 743。從圖 5中我們看到,累積Z曲線未達到APIS,但已穿過傳統界值線(Z=1.96)和TSA界值線。

LBIS界值圖的繪制除將AIS界值圖繪制命令中is(AIS)參數改為is(LBIS)外,還需定義低偏倚風險研究,添加lbid(lbid)參數,命令格式如下:
metacumbounds a b c d,data(count) effect(f) id(study) alpha(0.05) beta(0.20) is(LBIS) lbid(lbid) stat(rr) graph spending(1) rrr(.15) listRin keepR kprsrce(StataR_source.R) rdir(C:\Program Files\R\R-2.12.2\bin\i386\) listRout shwRRR pos(2) xtitle(Information size)
LBIS界值圖如圖 6所示,基于低偏倚風險研究的結果顯示,RRR=40%,LBIS=470,累積Z曲線穿過了LBIS線,穿過了傳統界值線(Z=19.6)和TSA界值線。由于本例的LBHIS界值圖與LBIS界值圖的結果相同,因此未展示LBHIS界值圖。從上述三種界值圖可發現,其結論均相同,即試驗組干預措施優于對照組干預措施。

4 小結
如果研究做Meta分析時沒有采用RevMan軟件(RevMan數據可直接導入TSA軟件),那么使用TSA軟件做TSA時,就會面臨更新輸入數據的問題。與Stata軟件的“metacumbounds”命令比較,TSA軟件需要定義的選項也較為繁瑣,Stata軟件顯得更為清晰、明了,輸入數據也方便快捷。TSA軟件中計算TSA界值的方法僅有O’Brien-Fleming損耗函數,而Stata軟件“metacumbounds”命令中提供了五種損耗函數方法。
但TSA軟件除了提供有效界值外,還提供了無效界值(futility boundary),而這一點是Stata軟件“metacumbounds”命令所不能實現的。此外,TSA軟件還提供了校正可信區間,這一點Stata軟件的“metacumbounds”命令也不能提供。但我們相信,隨著方法學的發展,無效界值也能被整合到Stata軟件的命令中,豐富Stata軟件的操作,使其更為完善和便捷。
試驗序貫分析(trial sequential analysis,TSA)是近二十年發展起來的一種統計方法,最初起源于Pogue等 [1]將Lan-DeMets界值引入累積Meta分析,后由丹麥哥本哈根臨床試驗中心的科研團隊提出完整的TSA方法 [2-6],并開發了相關的TSA軟件 [7]。當前實現TSA操作的軟件主要是哥本哈根臨床試驗中心為首的科研團隊開發的TSA軟件,本團隊已對其操作進行了講解 [8]。除了TSA軟件可實現TSA外,Stata軟件也可實現。美國南佛羅里達大學循證醫學與健康實效研究中心的Miladinovic教授等 [9]開發了Stata的“metacumbounds”命令,用于實現TSA。本文主要介紹如何使用Stata軟件來實現TSA。
1 命令安裝及準備工作
本文使用Stata 12.0軟件,“metacumbounds”命令需要讀者自行安裝,在Stata命令窗口鍵入“findit metacumbounds”,在新彈出的界面中點擊“st0284 from http://www.stata-journal.com/software/sj13-1”,然后在描述“st0284”軟件包的界面中點擊“click here to install”,然后就會安裝“metacumbounds”的三個文件:ado、sthlp、和dlg。其中“st0284/metacumbounds.dlg”文件是對話框文件,即菜單操作文件,將其放置在Stata激活目錄下即可;此外,還可在Stata命令窗口鍵入以下命令來將其添加到菜單欄:
window menu append item "Meta-Analysis" "Cumulative MA with bounds (metacumbounds)" "db metacumbounds"
window menu refresh
然后點擊“User→Meta-Analysis”,在最后一行我們發現“Cumulative MA with bounds (metacumbounds)”已添加到Meta分析菜單,如圖 1所示。

此外,“metacumbounds”命令需要Stata軟件的“metan”命令來計算Meta分析的統計量(Z值);此外,還需要結合R軟件的“foreign”和“ldbounds”程序包,其中“foreign”包用來讀寫Stata數據文件,“ldbounds”包用來計算TSA界值,計算方法有O’Brien-Fleming和Pocock損耗函數。在R軟件中安裝程序包的方法詳見《R與Meta分析》 [10]。采用Stata實現TSA時,雖然需要R軟件來輔助計算TSA界值,但不需要讀者打開R軟件,Stata軟件運用“rsource”命令在Stata內部來調用運行R軟件,通過Rterm.exe程序實現。因此,需要在Stata中安裝“rsource”命令,通過鍵入“ssc install rsource”命令實現。
2 “metacumbounds”菜單及命令格式
“metacumbounds”命令格式為:
metacumbounds varlist [if] [in],data(count|loghr) effect(f|r) spending(string) rdir(string) is(ais|apis|lbis|lbhis) [id(strvar) surv(#) loss(#) lbid(varname) stat(rr|or|rd) wkdir(string) kprsrce(string) alpha(#) beta(#) graph rrr(#) listRout listRin keepR graph_options]
其中varlist包括計數數據或logHR,及其標準誤和試驗樣本量;data(count|loghr)定義分析的數據類型是二分類數據(count)還是時間-事件數據(logHR),二分類數據選項下的效應量有RR、OR、RD,該選項是必須項;effect(f|r)定義估算模型:固定效應模型(f)和隨機效應模型(r),當異質性I2>30%時采用固定效應模型,合并方法采用的是“metan命令的倒方差法”(fixedi和randomi),該選項是必須項;spending(string)定義R軟件“ldbounds”程序包計算TSA界值所采用的損耗函數方法,有O’Brien-Fleming函數(spending(1) )、Pocock函數(spending(2) )、αt函數(spending(3) )、αt1.5函數(spending(4) )、αt2函數(spending(5) ),該項是必選項;rdir(string)列出R軟件的路徑,該項是必須項;is(ais|apis|lbis|lbhis)定義信息量的計算,有累積信息量(ais)、先驗信息量(apis)、低偏倚信息量及低偏倚校正信息量,該項是必須項;id(strvar)是用來標簽納入研究的字符型變量;surv(#)定義時間-事件數據的總體平均生存率,范圍為[0,1);loss(#)定義時間-事件數據的失訪比例,范圍為[0,1);lbid(varname)定義低偏倚風險研究,在is(lbis)或is(lbhis)選項下使用;stat(rr|or|rd)定義二分類變量數據的合并效應量(RR、OR、RD);wkdir(string)定義文件的保存目錄;kprsrce(string)程序完成后保存R源文件;alpha(#)定義Ⅰ型錯誤;beta(#)定義Ⅱ型錯誤;graph為繪圖參數;rrr(#)定義計算先驗信息量(apis)的先驗干預效應(RRR);listRout將R軟件輸出的結果展示在Stata軟件;listRin將R軟件源文件展示在Stata軟件;keepR保留R源文件;graph_options是總體繪圖選項,其中shRRR和pos( )定義RRR、α、β在圖形中的位置,xtitle(string)和ytitle(string)分別添加x軸和y軸的標簽;titile(string)和subtitle(string)添加圖形的標題和亞標題。
當然,我們也可以采用菜單操作來,點擊“Cumulative MA with bounds (metacumbounds)”,如圖 2所示。除需要定義圖 2所示的“Main”欄外,還需要定義“Directories and graphing option”欄(圖 3)。


3 實例分析
本文采用“metacumbounds”命令附帶的樣本數據進行分析 [9](表 1),在Stata命令窗口鍵入“use example1”命令即可獲得該數據。該數據為二分類數據,其中,study表示納入研究名稱,a、b分別表示試驗組事件發生數、未發生數,c、d分別表示對照組事件發生數、未發生數,lbid表示納入研究的風險偏倚情況(0為高風險、1為低風險)。

然后在Stata命令窗口鍵入以下命令:
metacumbounds a b c d,data(count) effect(f) id(study) alpha(0.05) beta(0.20) is(AIS) stat(rr) graph spending(1) rrr(.15) listRin keepR kprsrce(StataR_source.R) rdir(C:\Program Files\R\R-2.12.2\bin\i386\) listRout shwRRR pos(12) xtitle(Information size)
采用的效應模型為固定效應模型,α和β分別定義的為0.05和0.2,信息量采用的是累積信息量(AIS),合并效應量采用的是相對危險度(RR),損耗函數為O’Brien-Fleming函數,RRR定義為15%。以上命令運行后,繪制出的TSA界值圖如圖 4所示,Stata輸出結果見表 2。


圖 4為基于累積信息量(AIS)的TSA界值圖,圖中顯示AIS=1 569,統計效能為56%,累積Z曲線已越過傳統Z=1.96界值線以及TSA界值線,表明試驗組干預措施優于對照組干預措施。此外,我們還繪制出基于APIS、LBIS的TSA界值圖進行比較。
APIS界值圖的繪制只需將AIS界值圖繪制的命令中is(AIS)參數改為is(APIS)即可,基于RRR=15%,α=0.05,β=0.2下,APIS=2 743。從圖 5中我們看到,累積Z曲線未達到APIS,但已穿過傳統界值線(Z=1.96)和TSA界值線。

LBIS界值圖的繪制除將AIS界值圖繪制命令中is(AIS)參數改為is(LBIS)外,還需定義低偏倚風險研究,添加lbid(lbid)參數,命令格式如下:
metacumbounds a b c d,data(count) effect(f) id(study) alpha(0.05) beta(0.20) is(LBIS) lbid(lbid) stat(rr) graph spending(1) rrr(.15) listRin keepR kprsrce(StataR_source.R) rdir(C:\Program Files\R\R-2.12.2\bin\i386\) listRout shwRRR pos(2) xtitle(Information size)
LBIS界值圖如圖 6所示,基于低偏倚風險研究的結果顯示,RRR=40%,LBIS=470,累積Z曲線穿過了LBIS線,穿過了傳統界值線(Z=19.6)和TSA界值線。由于本例的LBHIS界值圖與LBIS界值圖的結果相同,因此未展示LBHIS界值圖。從上述三種界值圖可發現,其結論均相同,即試驗組干預措施優于對照組干預措施。

4 小結
如果研究做Meta分析時沒有采用RevMan軟件(RevMan數據可直接導入TSA軟件),那么使用TSA軟件做TSA時,就會面臨更新輸入數據的問題。與Stata軟件的“metacumbounds”命令比較,TSA軟件需要定義的選項也較為繁瑣,Stata軟件顯得更為清晰、明了,輸入數據也方便快捷。TSA軟件中計算TSA界值的方法僅有O’Brien-Fleming損耗函數,而Stata軟件“metacumbounds”命令中提供了五種損耗函數方法。
但TSA軟件除了提供有效界值外,還提供了無效界值(futility boundary),而這一點是Stata軟件“metacumbounds”命令所不能實現的。此外,TSA軟件還提供了校正可信區間,這一點Stata軟件的“metacumbounds”命令也不能提供。但我們相信,隨著方法學的發展,無效界值也能被整合到Stata軟件的命令中,豐富Stata軟件的操作,使其更為完善和便捷。