R資料分析:網狀meta分析的理解與實操

Codewar發表於2024-04-10

meta分析之前有給大家寫過,但是meta分析只能比較兩個方法。經常是被用來證明在現有研究中顯示矛盾結果的干預方法到底有沒有效的時候使用,透過證據綜合得到某種干預到底有沒有用的結論。但是如果我要證明好幾種方法到底哪個最優,這個時候meta分析就不行了,我們得使用網狀meta。

The conventional meta-analysis approach is useful, but is limited in that it can only compare two interventions at a time, and only those evaluated directly in head-to-head trials

網狀meta的原理和meta沒有區別,精髓在於其利用了間接證據,可以進行多個干預的同時分析。一個研究直接對A、B兩種干預進行比較,這個叫做直接證據;所謂的間接證據的意思是,我們有研究比較了A和C、有研究比較了B和C,此時可以構建一個證據鏈(forming an A-B-C “loop” of evidence)進行AB之間的比較,這個就叫做間接證據。

在臨床實踐中,若有一系列的藥物可以治療某種疾病,但文獻報導的RCT均是藥物與安慰劑的對照,而藥物互相之間的RCT都沒有進行或很少,那麼在這種情況下,想要進行藥物間效應的比較就需要將間接比較和直接比較的證據進行合併,就可以用網狀Meta分析。下面一張圖就可以較為清楚地說明網狀meta到底在幹什麼:

R資料分析:網狀meta分析的理解與實操

在最簡單的適用網狀meta的情況下給大家一個例子:我們要比較3種方法ABC的有效性,比如我們要比較BC,有研究比較了BA得到MD= -2.3,還有個研究比較了CA得到MD=-4,那麼我們透過間接比較就可以得到BC相比的MD為-1.7如下圖:

R資料分析:網狀meta分析的理解與實操

因為有了共同的比較物件A,所以能夠間接得到BC的比較結果。能這麼比是有一個顯而易見的假設需要滿足的:所提到的RCT的研究人群得來源於同一個總體,從而我們可以將BA和CA的關係推出BC,這個也叫transitivity。是網狀meta可以站得住腳的基礎。

The core tenet of the transitivity assumption is that we can combine direct evidence (e.g. from comparisons A −− B and C −− B) to create indirect evidence about a related comparison (e.g. A −− C)

這個假設保證了間接效應是可以成立的,但是研究的協變數不一致的情況下這個假設很容易不滿足,所以我們做文獻篩選的時候就要將人群儘可能相似的研究納入,當然時候我們還可以比較直接效應和間接證據的一致性來反映這個假設是否成立。這個時候在統計上又叫做比較consistency或者Incoherence。可以看的統計指標包括I方,包括異質性檢驗的p值,包括圖形熱點等。

we can see that the heterogeneity/inconsistency in our network model is very high, with I2= 89.6%. This indicates that selecting a fixed-effect model was probably not appropriate (we will get back to this point later).

瞭解了這些之後我們給出網狀meta的定義:

Network meta-analysis (NMA), also termed multiple treatment meta-analysis or mixed treatment comparisons, was developed as an extension of pairwise meta-analysis to allow comparisons of more than two interventions in a single, coherent analysis of all the relevant RCTs

網狀meta最大優勢就是可以對治療同類疾病的不同干預措施進行量化比較,並按照某一結果指標效果進行排序。

The most interesting question we can answer in network meta-analysis is which treatment has the highest effects.

而且最終呈現的圖片結果較一般 Meta 分析高階,目前應用越來越多。下表對傳統meta分析的步驟進行了總結並且提出了網狀meta在相應步驟上的注意事項。

R資料分析:網狀meta分析的理解與實操

總體來說網狀meta要做好其實是非常不容易的,從立題到分析到文獻篩選到資料提取到各種偏倚評估再到具體分析操作到最後結果報告都有很多要注意的地方,本文主要聚焦分析實操和結果報告,希望對大家有幫助。

網狀meta的結果呈現

在網狀meta的文章中都會出一張如下圖所示的網叫做Network diagrams:

R資料分析:網狀meta分析的理解與實操

上面的圖展示的各個干預措施的比較情況,哪些是直接比較哪些是間接比較。圖中可以看出來Timolol是被比較最多的干預措施。上面這個線的粗細表示研究的數量,點的大小表示用藥的人數(研究中的樣本量),這些也可以根據需要對映別的指標,比如研究的精準度。

The network geometry shows which interventions have been compared directly in RCTs, and which can only be informed indirectly.

當然我們光看圖,視覺上較為直觀但是能獲取到的資訊較少,一般我們還會出一個表作為這個圖的補充,這個表就叫做league table或者triangle table:

R資料分析:網狀meta分析的理解與實操

這個圖展示了網狀meta的結果,包括了所有可能的兩兩比較的結果,比如圖中左上角的2.52就表示apraclonidine這個藥相對於安慰劑來講就能顯著有利於結局。

不同干預方法相互比較的結果出來之後,要指導臨床決策我們還需要報告到底哪種方法更好,這個時候我們可以給出一個排序圖叫做rankograms,用這個圖來展示各個方案成為第幾優方案的機率的曲線,如下圖:

R資料分析:網狀meta分析的理解與實操

其餘的還有和傳統meta分析一樣的異質性檢驗的結果,森林圖等。總結起來,一個網狀meta的分析部分特別的就包括網狀圖Network diagrams,三角表league table,累計排序曲線cumulative ranking curve (SUCRA)。

在擬合網狀meta的時候我們依然可以選擇固定效應模型或者隨機效應模型,這個主要從研究異質性考慮,可以看的統計指標包括I方,包括異質性檢驗的p值,包括圖形熱點,具體我們在實操中講解:

A further assumption of NMA is consistency, the statistical agreement between the direct and indirect comparisons. Consistency is the statistical manifestation of transitivity to the data. The approaches for checking inconsistency can be classified in two categories: the global approaches and the local approaches.

For the global approaches, inconsistency is evaluated in the entire network by modifying the NMA model to account for potential inconsistency, whereas the local approaches detect potential “hot spots” of inconsistency in the network, such as by examining individual loops of evidence separately. It is generally recommended to use both types of methods for inconsistency.

例項操練

比如我現在從文獻種收集了如下資料:

R資料分析:網狀meta分析的理解與實操

上面資料中第一列是研究的標籤,TE為方法比較的效應值,seTE為對應的標準誤,treat1和treat2為對比的組別。

有了上面的資料我們就可以適用netmeta函式做網狀meta了,程式碼如下,需要注意sm為效應量可以為RD,OR,RR,HR,SMD,MD等,要根據實際選擇:

m.netmeta <- netmeta(TE = TE,
                     seTE = seTE,
                     treat1 = treat1,
                     treat2 = treat2,
                     studlab = author,
                     data = mydta,
                     sm = "SMD",
                     fixed = TRUE,
                     random = FALSE,
                     reference.group = "cau",
                     details.chkmultiarm = TRUE,
                     sep.trts = " vs ")
summary(m.netmeta)

執行後得到對比的效應值及其置信區間和Q值,結果如下:

R資料分析:網狀meta分析的理解與實操

還有每個治療和參考治療對比的效應值以及I方:

R資料分析:網狀meta分析的理解與實操

上圖顯示我們的I方是很大的,用固定效應模型就不合適,需要用隨機效應模型(從I方和異質性檢驗的結果都可以說明)。

我們也可用Net Heat Plot來檢視到底異質性來源是哪一個:

netheat(m.netmeta)

R資料分析:網狀meta分析的理解與實操

上面圖中灰色色塊越大表示該效應越重要,有色色塊表示橫軸效應的異質性可以歸因於縱軸效應的比例,色塊越紅比例越高,色塊越藍比例越低。

假設上面的結果做對了,我們可以接著往下出Network diagrams,簡單程式碼示例如下,這個函式有很多引數可以調整的,可以把圖做的非常漂亮,大家自己嘗試:

netgraph(m.netmeta, 
         labels = long.labels)
R資料分析:網狀meta分析的理解與實操

從這個圖中可以直觀的看出比較的情況了,當然了我們還需要數值型的結果表達,我們可以做一個league table出來,程式碼和對應輸出如下:

netleague <- netleague(m.netmeta, 
                       bracket = "(", # use round brackets
                       digits=2)  
R資料分析:網狀meta分析的理解與實操

最能體現網狀meta的優勢的地方就是各個干預方法的比較了,透過干預方法排序,回答哪種干預最優,透過下面程式碼得到每種干預的排序:

netrank(m.netmeta, small.values = "good")
R資料分析:網狀meta分析的理解與實操

執行結果中會輸出一個p值,表示的是該方法比其餘方法好的機率,這個值越大越好,當然光看p值也不行我們要考慮穩定性,還得看置信區間,這個時候我們可以做一個森林圖來展示各個干預相對於參考方案的效應分佈。

forest(m.netmeta, 
       reference.group = "cau",
       sortvar = TE,
       xlim = c(-1.3, 0.5),
       smlab = paste("Therapy Formats vs. Care As Usual \n",
                     "(Depressive Symptoms)"),
       drop.reference.group = TRUE,
       label.left = "Favors Intervention",
       label.right = "Favors Care As Usual",
       labels = long.labels)

R資料分析:網狀meta分析的理解與實操

從上面結果可以看出,相對於參考組,ind的效果是最好的。對於這個結果排序,我們也可以用下面程式碼出排序曲線:

plot(rankogram(m.netmeta, nsim = 100),type = "line")

R資料分析:網狀meta分析的理解與實操

依然可以得到ind排在第一。

到這兒網狀meta分析涉及的網狀圖Network diagrams,三角表league table,累計排序曲線cumulative ranking curve (SUCRA)就都介紹完了。

相關文章