同時考慮某事件發生與否和發生該事件所經歷時長的數據稱為生存數據。由于多數生存資料分布不規則,生存分析常采用Kaplan-Meier法;但已發表研究通常僅報告Kaplan-Meier曲線和中位生存時間,無法直接提供原始生存數據,給后續二次研究帶來不便。本研究探討使用圖像處理軟件和R軟件對已有的Kaplan-Meier曲線進行處理并從中提取生存數據的系統化方法,并通過實例演示獲取生存數據的具體步驟,同時驗證該提取方法的準確性和可行性,為生存資料的有效二次利用提供參考。
引用本文: 趙恩慧, 黃麗紅. 根據Kaplan-Meier曲線提取生存數據的系統化方法. 中國循證醫學雜志, 2022, 22(11): 1358-1364. doi: 10.7507/1672-2531.202206117 復制
生存數據(survival data)是臨床隨訪研究中最常見的資料類型之一,其中患者生存時間為連續性變量,結局則為二分類變量,基本要素包含生存時間和結局事件發生與否[1]。由于失訪、意外死亡等原因,部分研究對象有時無法觀察到確切的生存時間,僅可獲得患者至少存活時間,這種現象稱為刪失(censoring)。對于生存資料需要同時考慮結局和生存時間,生存分析(survival analysis)則是對考慮了上述2種基本要素的生存資料的統計分析方法,并可充分利用刪失數據所提供的不完全信息[2]。生存分析廣泛用于研究各類影響因素與生存時間和結局的關系,不但分析影響因素是否與結局相關,也可分析影響因素與結局出現的時間關系[3]。
生存分析已形成了一套較為完善的理論體系。生存數據往往呈現非正態分布,因研究不同可呈指數分布、Weibull分布、對數正態分布、Gamma分布等一系列復雜情況。如果資料確實服從某種特定分布,采用參數法對資料進行分析會更加準確并有更高效能,但大多數生存資料分布是不規則的、不確定的或未知的,因此非參數分析法在生存率的估計中應用更為廣泛。對隨訪資料生存曲線進行描述時,常用到中位生存時間或某個時間點的生存率,但當失訪發生較早時,無法直接計算中位生存時間,常通過乘積-極限法(product-limit,PL)進行估計,又稱Kaplan-Meier法。采用該方法估計的生存率變化曲線呈階梯形,不受生存時間分布類型的限制,屬于非參數估計。在許多有關預后的研究中會提供Kaplan-Meier曲線圖,但生存資料的原始數據一般在論文中不會直接給出,但在對已發表的生存數據研究進行二次分析和開展統計方法學研究時,獲取每個患者的原始數據至關重要。例如,在Meta分析中,基于患者個體數據(individual patient data,IPD)的分析是保證準確性的基礎之一[4],也是研究Meta分析亞組分析的必備前提。將Meta分析結果應用于指導臨床決策時,基于IPD的分析結果尤其重要[5]。
既往研究者提出使用Engauge Digitizer軟件和Excel軟件完成生存曲線提取生存數據的方法[6],但需額外軟件操作進行圖片去色處理,在使用Excel程序計算補全IPD時還需填入未知參數(比如隨訪時間范圍),大大限制了該方法的推廣和應用。本研究針對實際應用問題,進一步探討從已有Kaplan-Meier曲線中提取原始生存數據的改進方法,結合實例展示具體實施步驟,并通過對比提取數據和原有數據的Kaplan-Meier曲線和統計量預測值,驗證數據提取方法的正確性和可行性,為生存資料的有效二次利用提供參考。
1 方法
1.1 從已發表的Kaplan-Meier曲線中提取數據
本研究選擇操作相對簡單,并可公開獲取的圖像編輯軟件GetData Graph Digitizer(https://getdata.com/)進行圖形數據的提取。原始生存曲線圖應當有足夠的清晰度以保證數據點的識別,建議圖片清晰度在300 dpi以上,推薦使用png或pdf格式。使用GetData Graph Digitizer軟件提取圖片信息時,按照以下步驟進行:
1.1.1 Kaplan-Meier曲線圖片導入及數據讀取范圍設定
將從文獻中獲得的Kaplan-Meier曲線圖導入GetData Graph Digitizer軟件,根據圖片確定坐標軸原點,以及橫、縱坐標軸的范圍。此步驟可在原圖基礎上重新構建二維坐標系,在新建二維坐標系中,通過(x,y)即坐標取值來表示原圖的各個數據點,從而模擬原始數據,重構原圖曲線。
1.1.2 生存數據提取和導出
選擇連續取點工具對原圖中的生存曲線進行連續取點,在GetData Graph Digitizer軟件中把鼠標移動到相應位置即可自動識別取點區域。若在原圖的同一個坐標系中有多條曲線,可設置不同線型或顏色加以區分。取點完成后獲得各點橫、縱坐標,可導出二列多行表,每一行代表一個數據點的時間(x)和生存率(y)。
1.1.3 生存數據的預處理
提取生存數據后,一般要對數據進行簡單的預處理,如將數據按照不同處理組的生存曲線分為不同文件等。另外,曲線后一個時間點的生存率應該小于或等于前一個時間點,但因軟件識別曲線進行數據自動提取時可能出現后一個時間點生存率略大于前一個時間點的情況,此時需要對數據進行合理整理,此步驟也可通過R軟件中的preprocess函數完成。
1.2 生存數據重構
一般情況下,研究對象的刪失數據無法從原始文獻中直接獲得,需通過已有數據進行估計。Kaplan-Meier曲線原始圖形下方通常會展示各時刻的風險人數,是估計刪失數據所需的重要信息。本研究使用Guyot等[7]提出的算法進行刪失數據的估計。此算法假設在理想情況下,每個時間間隔內刪失發生的速度是恒定的,使用原始文獻中提供的各時刻風險人數可估計每個時間間隔中刪失的個體數目,從而估計各個時間段中研究對象的刪失數量。
本文利用R軟件對由原圖提取出的數據進行生存資料和生存曲線的重構,主要使用R包IPDfromKM[8]中的函數:
① preprocess函數:使用preprocess函數將已提取出的原始坐標預處理為重建IPD的適當格式,如每兩個同一生存時間的數據點隨機保留其中一個、出現后一時間數據點生存率高于前者時均以前者生存率替代,從而獲得各個數據點時間和生存率,以及所設定時間間隔內的風險人數。
② getIPD函數:使用getIPD函數重建IPD,獲得從Kaplan-Meier曲線中估計出的個體患者數據,即時間、結局和處理組三列表,包括每個時間間隔內風險人數、估計的刪失人數及發生結局事件的人數表。對兩組分別進行Kolmogorov-Smirnov檢驗,同時可調用plot函數分別繪制兩組的重構IPD和原Kaplan-Meier曲線生存率和風險人數的比較圖,判斷兩組重建IPD繪制出的曲線和各自原Kaplan-Meier曲線是否可看成同一分布,從而驗證方法的準確性。
③ 其他函數:可借助survreport函數、ggsurvplot函數繪制包含兩組重構IPD的Kaplan-Meier曲線和累積危險曲線圖,并和原Kaplan-Meier曲線的生存率和各時間段風險人數進行比較,再次驗證重構方法的準確性。
運用上述R函數,可對生存曲線中提取出的數據及各時間段的風險人數進行計算,補全各個時間段的刪失數據,獲得IPD數據。并通過繪制重構生存曲線和累計危險度曲線,采用假設檢驗和圖形對比判斷重構IPD的準確性。
2 實例
本研究以2016年Reck等[9]發表的研究為例,該研究隨機抽樣305例晚期非小細胞肺癌患者并按1∶1比例隨機分配到帕博利珠單抗組(pembrolizumab group)或化療組(chemotherapy group),研究者分別隨訪了兩組治療后的生存情況。以下展示從Kaplan-Meier曲線中提取數據、重構IPD及繪制生存曲線并和原圖進行比較的具體過程。
2.1 從Kaplan-Meier曲線中提取數據
2.1.1 圖片導入、生存數據提取及導出
首先利用GetData Graph Digitizer軟件,設置合適的橫縱坐標軸間隔和范圍(圖1),獲取原始圖片中Kaplan-Meier曲線各個點的坐標(圖2),導出坐標數據并進行整理,控制生存率單調下降且時間和生存率都有合適的度量衡。


2.1.2 生存數據預處理
在對提取出的坐標數據進行重構前,首先對原始數據點進行適當的預處理。清理同一生存時間重疊的數據點及由于軟件取點時識別誤差導致后一個時間生存率高于前一個時間的數據點,使得清理后的數據生存率單調遞減,獲得各個數據點時間和生存率兩列表及每個時間間隔內風險人數表。數據預處理如下:
#使用preprocess函數將原始坐標預處理為重建IPD的適當格式#
? pre_radio<-preprocess(dat=df,trisk=radiationdata$trisk,nrisk=radiationdata$radio,totalpts=NULL,maxy=1)
? pre_radio_plus<-preprocess(dat=df1,trisk=radiationdata$trisk,nrisk=radiationdata$radioplus,totalpts=NULL,maxy=1)
dat:指定兩列數據集,此處定義為df、df1(df為帕博利珠單抗組,df1為化療組),是使用圖形處理軟件從兩條Kaplan-Meier曲線中提取的數據點坐標,第一列為生存時間,第二列為生存率;
trisk:原文獻中提供的報告風險人數的時間點,此處定義為radiationdata$trisk;
nrisk:各個時間點的風險人數,通常也是由原文獻提供,此處定義為radiationdata$radio;
totalpts:初始患者數,默認值為NULL;
maxy:生存概率度量衡,本例使用十進制故取1。
2.2 生存數據重構
2.2.1 刪失數據補全及重繪Kaplan-Meier曲線和原圖的比較
利用getIPD函數,使用上一步函數的輸出結果來重建帕博利珠單抗組和化療組的IPD,并展示兩組補全后的各個時間段的刪失情況(表1)。對兩組分別進行Kolmogorov-Smirnov檢驗,帕博利珠單抗組的D值為0.153,P值為0.232,化療組的D值為0.144,P值為0.305,兩組檢驗P值均大于0.1,可認為帕博利珠單抗組和化療組的重建IPD繪制的Kaplan-Meier曲線和原圖一致。使用plot函數分別繪制帕博利珠單抗組和化療組的重構IPD和原生存曲線[9]在生存率和各時間段的風險人數的比較圖(圖3),可見兩組均差別較小,說明數據重構方法具有較好的準確性。


a:帕博利珠單抗組;b:化療組。
#利用getIPD函數重建IPD并檢驗重構效果#
? est_radio<-getIPD(prep=pre_radio, armID=0,tot.event=NULL)
? est_radio_plus<-getIPD(prep=pre_radio_plus, armID=1,tot.event=NULL)
? print(est_radio)
? print(est_radio_plus)
prep:接受preprocess函數輸出的數據集,本例為pre_radio和pre_radio_plus,分別代表帕博利珠單抗組和化療組;
armID:設置重建IPD的各組標簽,此處將帕博利珠單抗組定義為0,化療組定義為1;
tot.event:事件總數,默認設置為NULL;
est_radio、est_radio_plus:getIPD函數返回的兩組IPD對象名,本例中分別代表帕博利珠單抗組和化療組。
#使用plot函數分別繪制兩組重構IPD和原Kaplan-Meier曲線的比較圖#
? plot(est_radio)
? plot(est_radio_plus)
除使用getIPD函數后調用plot函數之外,也可采用以下方式進行重構數據和原曲線對比。重新繪制包含帕博利珠單抗組和化療組的Kaplan-Meier曲線,設置曲線的各個參數,展示補全的各時間段的刪失人數及風險人數,并和原始生存曲線進行對比(圖4)。重構IPD和原圖的生存曲線對比同樣表明,重構的Kaplan-Meier曲線和風險人數表與原始數據非常相似,再次證明所述方法獲得的生存數據準確性較好。

a:原圖;b:重構IPD。
2.2.2 繪制累積風險曲線
運行survreport函數,將兩組的Kaplan-Meier曲線和累積風險都展示在圖中,并展示生存率為0.50、0.75、0.95時對應的生存時間。
#運行survreport函數繪制重建IPD的Kaplan-Meier曲線和累積風險曲線#
? survreport(ipd1=est_radio$IPD,ipd2=est_radio_plus$IPD,arms=2,interval=8,s=c(0.50,0.75,0.95))
ipd1、ipd2:定義繪制兩條曲線的數據,此處定義為兩組分別的重構IPD即est_radio$IPD、est_radio_plus$IPD;
arms:組數,本例設置為2;
interval:時間間隔數,本例設置為8;
s:對應生存時間的指定生存率,本例設置為0.50、0.75、0.95。
3 討論
準確完整的原始數據是各類統計分析的基礎,尤其在需要將多種來源的數據納入分析時,對IPD進行收集、重構、驗證和重新分析可提供較高水平的證據,因此獲得IPD至關重要[10]。臨床研究的研究者會利用生存分析來評價不同療法對患者的療效,但此時針對同一療法的不同研究多是在不同人群中開展的,而在療效評價上常需要綜合考慮多類不同的研究人群,所以獲得多個研究的IPD并對數據進行整合分析十分重要。但已發表的研究通常不會直接提供原始數據,所以需要利用各種軟件和方法對公開可得的圖片及曲線進行處理,以獲得相對準確的生存數據,從而方便重新進行數據整合和進一步分析。
目前已有許多研究者注意到IPD的重要性,曾有研究完成了生存曲線中IPD的提取、重構和合并,以進行生存數據的Meta分析[6],并取得了良好的效果,但是在圖片處理和數據重構的過程中操作較為繁瑣,而且可能需要研究者對一些未知參數進行估計,降低了重構數據的準確性。本文則提供了一系列操作步驟來實現如何從已有的Kaplan-Meier曲線中提取原始生存數據來重建IPD,并使用實例展示了各步操作。實例中利用假設檢驗和圖形對比分別比較了兩個處理組重構數據繪制的生存曲線和原圖生存曲線,并利用兩組重構數據繪制了包含兩組的Kaplan-Meier曲線,且重新繪制的曲線和原文獻提供的曲線圖也非常相似,從而驗證了本文使用的數據提取和重構方法有較好的可行性和準確性,可為需要生存數據的一系列研究提供獲取IPD的一種有效方法。
需要注意,本研究提供的方法要求生存曲線提供各個時間段的風險人數。雖然多數研究會在提供生存曲線的同時提供這類數據,但是也有部分研究不提供或缺失,此時如何計算生存分析中的刪失情況并重構數據有待進一步研究。另外,本研究在對刪失數據進行重構時,需首先假設生存研究中單個時間間隔內刪失情況的發生速度是均衡的,但該假設是建立在刪失情況的發生不受和時間有關的混雜因素影響的基礎上,實際情況下刪失的發生往往不能以隨機發生一概而論,因此對刪失數據的重構需要對研究中有關因素進行更多考慮。
生存數據(survival data)是臨床隨訪研究中最常見的資料類型之一,其中患者生存時間為連續性變量,結局則為二分類變量,基本要素包含生存時間和結局事件發生與否[1]。由于失訪、意外死亡等原因,部分研究對象有時無法觀察到確切的生存時間,僅可獲得患者至少存活時間,這種現象稱為刪失(censoring)。對于生存資料需要同時考慮結局和生存時間,生存分析(survival analysis)則是對考慮了上述2種基本要素的生存資料的統計分析方法,并可充分利用刪失數據所提供的不完全信息[2]。生存分析廣泛用于研究各類影響因素與生存時間和結局的關系,不但分析影響因素是否與結局相關,也可分析影響因素與結局出現的時間關系[3]。
生存分析已形成了一套較為完善的理論體系。生存數據往往呈現非正態分布,因研究不同可呈指數分布、Weibull分布、對數正態分布、Gamma分布等一系列復雜情況。如果資料確實服從某種特定分布,采用參數法對資料進行分析會更加準確并有更高效能,但大多數生存資料分布是不規則的、不確定的或未知的,因此非參數分析法在生存率的估計中應用更為廣泛。對隨訪資料生存曲線進行描述時,常用到中位生存時間或某個時間點的生存率,但當失訪發生較早時,無法直接計算中位生存時間,常通過乘積-極限法(product-limit,PL)進行估計,又稱Kaplan-Meier法。采用該方法估計的生存率變化曲線呈階梯形,不受生存時間分布類型的限制,屬于非參數估計。在許多有關預后的研究中會提供Kaplan-Meier曲線圖,但生存資料的原始數據一般在論文中不會直接給出,但在對已發表的生存數據研究進行二次分析和開展統計方法學研究時,獲取每個患者的原始數據至關重要。例如,在Meta分析中,基于患者個體數據(individual patient data,IPD)的分析是保證準確性的基礎之一[4],也是研究Meta分析亞組分析的必備前提。將Meta分析結果應用于指導臨床決策時,基于IPD的分析結果尤其重要[5]。
既往研究者提出使用Engauge Digitizer軟件和Excel軟件完成生存曲線提取生存數據的方法[6],但需額外軟件操作進行圖片去色處理,在使用Excel程序計算補全IPD時還需填入未知參數(比如隨訪時間范圍),大大限制了該方法的推廣和應用。本研究針對實際應用問題,進一步探討從已有Kaplan-Meier曲線中提取原始生存數據的改進方法,結合實例展示具體實施步驟,并通過對比提取數據和原有數據的Kaplan-Meier曲線和統計量預測值,驗證數據提取方法的正確性和可行性,為生存資料的有效二次利用提供參考。
1 方法
1.1 從已發表的Kaplan-Meier曲線中提取數據
本研究選擇操作相對簡單,并可公開獲取的圖像編輯軟件GetData Graph Digitizer(https://getdata.com/)進行圖形數據的提取。原始生存曲線圖應當有足夠的清晰度以保證數據點的識別,建議圖片清晰度在300 dpi以上,推薦使用png或pdf格式。使用GetData Graph Digitizer軟件提取圖片信息時,按照以下步驟進行:
1.1.1 Kaplan-Meier曲線圖片導入及數據讀取范圍設定
將從文獻中獲得的Kaplan-Meier曲線圖導入GetData Graph Digitizer軟件,根據圖片確定坐標軸原點,以及橫、縱坐標軸的范圍。此步驟可在原圖基礎上重新構建二維坐標系,在新建二維坐標系中,通過(x,y)即坐標取值來表示原圖的各個數據點,從而模擬原始數據,重構原圖曲線。
1.1.2 生存數據提取和導出
選擇連續取點工具對原圖中的生存曲線進行連續取點,在GetData Graph Digitizer軟件中把鼠標移動到相應位置即可自動識別取點區域。若在原圖的同一個坐標系中有多條曲線,可設置不同線型或顏色加以區分。取點完成后獲得各點橫、縱坐標,可導出二列多行表,每一行代表一個數據點的時間(x)和生存率(y)。
1.1.3 生存數據的預處理
提取生存數據后,一般要對數據進行簡單的預處理,如將數據按照不同處理組的生存曲線分為不同文件等。另外,曲線后一個時間點的生存率應該小于或等于前一個時間點,但因軟件識別曲線進行數據自動提取時可能出現后一個時間點生存率略大于前一個時間點的情況,此時需要對數據進行合理整理,此步驟也可通過R軟件中的preprocess函數完成。
1.2 生存數據重構
一般情況下,研究對象的刪失數據無法從原始文獻中直接獲得,需通過已有數據進行估計。Kaplan-Meier曲線原始圖形下方通常會展示各時刻的風險人數,是估計刪失數據所需的重要信息。本研究使用Guyot等[7]提出的算法進行刪失數據的估計。此算法假設在理想情況下,每個時間間隔內刪失發生的速度是恒定的,使用原始文獻中提供的各時刻風險人數可估計每個時間間隔中刪失的個體數目,從而估計各個時間段中研究對象的刪失數量。
本文利用R軟件對由原圖提取出的數據進行生存資料和生存曲線的重構,主要使用R包IPDfromKM[8]中的函數:
① preprocess函數:使用preprocess函數將已提取出的原始坐標預處理為重建IPD的適當格式,如每兩個同一生存時間的數據點隨機保留其中一個、出現后一時間數據點生存率高于前者時均以前者生存率替代,從而獲得各個數據點時間和生存率,以及所設定時間間隔內的風險人數。
② getIPD函數:使用getIPD函數重建IPD,獲得從Kaplan-Meier曲線中估計出的個體患者數據,即時間、結局和處理組三列表,包括每個時間間隔內風險人數、估計的刪失人數及發生結局事件的人數表。對兩組分別進行Kolmogorov-Smirnov檢驗,同時可調用plot函數分別繪制兩組的重構IPD和原Kaplan-Meier曲線生存率和風險人數的比較圖,判斷兩組重建IPD繪制出的曲線和各自原Kaplan-Meier曲線是否可看成同一分布,從而驗證方法的準確性。
③ 其他函數:可借助survreport函數、ggsurvplot函數繪制包含兩組重構IPD的Kaplan-Meier曲線和累積危險曲線圖,并和原Kaplan-Meier曲線的生存率和各時間段風險人數進行比較,再次驗證重構方法的準確性。
運用上述R函數,可對生存曲線中提取出的數據及各時間段的風險人數進行計算,補全各個時間段的刪失數據,獲得IPD數據。并通過繪制重構生存曲線和累計危險度曲線,采用假設檢驗和圖形對比判斷重構IPD的準確性。
2 實例
本研究以2016年Reck等[9]發表的研究為例,該研究隨機抽樣305例晚期非小細胞肺癌患者并按1∶1比例隨機分配到帕博利珠單抗組(pembrolizumab group)或化療組(chemotherapy group),研究者分別隨訪了兩組治療后的生存情況。以下展示從Kaplan-Meier曲線中提取數據、重構IPD及繪制生存曲線并和原圖進行比較的具體過程。
2.1 從Kaplan-Meier曲線中提取數據
2.1.1 圖片導入、生存數據提取及導出
首先利用GetData Graph Digitizer軟件,設置合適的橫縱坐標軸間隔和范圍(圖1),獲取原始圖片中Kaplan-Meier曲線各個點的坐標(圖2),導出坐標數據并進行整理,控制生存率單調下降且時間和生存率都有合適的度量衡。


2.1.2 生存數據預處理
在對提取出的坐標數據進行重構前,首先對原始數據點進行適當的預處理。清理同一生存時間重疊的數據點及由于軟件取點時識別誤差導致后一個時間生存率高于前一個時間的數據點,使得清理后的數據生存率單調遞減,獲得各個數據點時間和生存率兩列表及每個時間間隔內風險人數表。數據預處理如下:
#使用preprocess函數將原始坐標預處理為重建IPD的適當格式#
? pre_radio<-preprocess(dat=df,trisk=radiationdata$trisk,nrisk=radiationdata$radio,totalpts=NULL,maxy=1)
? pre_radio_plus<-preprocess(dat=df1,trisk=radiationdata$trisk,nrisk=radiationdata$radioplus,totalpts=NULL,maxy=1)
dat:指定兩列數據集,此處定義為df、df1(df為帕博利珠單抗組,df1為化療組),是使用圖形處理軟件從兩條Kaplan-Meier曲線中提取的數據點坐標,第一列為生存時間,第二列為生存率;
trisk:原文獻中提供的報告風險人數的時間點,此處定義為radiationdata$trisk;
nrisk:各個時間點的風險人數,通常也是由原文獻提供,此處定義為radiationdata$radio;
totalpts:初始患者數,默認值為NULL;
maxy:生存概率度量衡,本例使用十進制故取1。
2.2 生存數據重構
2.2.1 刪失數據補全及重繪Kaplan-Meier曲線和原圖的比較
利用getIPD函數,使用上一步函數的輸出結果來重建帕博利珠單抗組和化療組的IPD,并展示兩組補全后的各個時間段的刪失情況(表1)。對兩組分別進行Kolmogorov-Smirnov檢驗,帕博利珠單抗組的D值為0.153,P值為0.232,化療組的D值為0.144,P值為0.305,兩組檢驗P值均大于0.1,可認為帕博利珠單抗組和化療組的重建IPD繪制的Kaplan-Meier曲線和原圖一致。使用plot函數分別繪制帕博利珠單抗組和化療組的重構IPD和原生存曲線[9]在生存率和各時間段的風險人數的比較圖(圖3),可見兩組均差別較小,說明數據重構方法具有較好的準確性。


a:帕博利珠單抗組;b:化療組。
#利用getIPD函數重建IPD并檢驗重構效果#
? est_radio<-getIPD(prep=pre_radio, armID=0,tot.event=NULL)
? est_radio_plus<-getIPD(prep=pre_radio_plus, armID=1,tot.event=NULL)
? print(est_radio)
? print(est_radio_plus)
prep:接受preprocess函數輸出的數據集,本例為pre_radio和pre_radio_plus,分別代表帕博利珠單抗組和化療組;
armID:設置重建IPD的各組標簽,此處將帕博利珠單抗組定義為0,化療組定義為1;
tot.event:事件總數,默認設置為NULL;
est_radio、est_radio_plus:getIPD函數返回的兩組IPD對象名,本例中分別代表帕博利珠單抗組和化療組。
#使用plot函數分別繪制兩組重構IPD和原Kaplan-Meier曲線的比較圖#
? plot(est_radio)
? plot(est_radio_plus)
除使用getIPD函數后調用plot函數之外,也可采用以下方式進行重構數據和原曲線對比。重新繪制包含帕博利珠單抗組和化療組的Kaplan-Meier曲線,設置曲線的各個參數,展示補全的各時間段的刪失人數及風險人數,并和原始生存曲線進行對比(圖4)。重構IPD和原圖的生存曲線對比同樣表明,重構的Kaplan-Meier曲線和風險人數表與原始數據非常相似,再次證明所述方法獲得的生存數據準確性較好。

a:原圖;b:重構IPD。
2.2.2 繪制累積風險曲線
運行survreport函數,將兩組的Kaplan-Meier曲線和累積風險都展示在圖中,并展示生存率為0.50、0.75、0.95時對應的生存時間。
#運行survreport函數繪制重建IPD的Kaplan-Meier曲線和累積風險曲線#
? survreport(ipd1=est_radio$IPD,ipd2=est_radio_plus$IPD,arms=2,interval=8,s=c(0.50,0.75,0.95))
ipd1、ipd2:定義繪制兩條曲線的數據,此處定義為兩組分別的重構IPD即est_radio$IPD、est_radio_plus$IPD;
arms:組數,本例設置為2;
interval:時間間隔數,本例設置為8;
s:對應生存時間的指定生存率,本例設置為0.50、0.75、0.95。
3 討論
準確完整的原始數據是各類統計分析的基礎,尤其在需要將多種來源的數據納入分析時,對IPD進行收集、重構、驗證和重新分析可提供較高水平的證據,因此獲得IPD至關重要[10]。臨床研究的研究者會利用生存分析來評價不同療法對患者的療效,但此時針對同一療法的不同研究多是在不同人群中開展的,而在療效評價上常需要綜合考慮多類不同的研究人群,所以獲得多個研究的IPD并對數據進行整合分析十分重要。但已發表的研究通常不會直接提供原始數據,所以需要利用各種軟件和方法對公開可得的圖片及曲線進行處理,以獲得相對準確的生存數據,從而方便重新進行數據整合和進一步分析。
目前已有許多研究者注意到IPD的重要性,曾有研究完成了生存曲線中IPD的提取、重構和合并,以進行生存數據的Meta分析[6],并取得了良好的效果,但是在圖片處理和數據重構的過程中操作較為繁瑣,而且可能需要研究者對一些未知參數進行估計,降低了重構數據的準確性。本文則提供了一系列操作步驟來實現如何從已有的Kaplan-Meier曲線中提取原始生存數據來重建IPD,并使用實例展示了各步操作。實例中利用假設檢驗和圖形對比分別比較了兩個處理組重構數據繪制的生存曲線和原圖生存曲線,并利用兩組重構數據繪制了包含兩組的Kaplan-Meier曲線,且重新繪制的曲線和原文獻提供的曲線圖也非常相似,從而驗證了本文使用的數據提取和重構方法有較好的可行性和準確性,可為需要生存數據的一系列研究提供獲取IPD的一種有效方法。
需要注意,本研究提供的方法要求生存曲線提供各個時間段的風險人數。雖然多數研究會在提供生存曲線的同時提供這類數據,但是也有部分研究不提供或缺失,此時如何計算生存分析中的刪失情況并重構數據有待進一步研究。另外,本研究在對刪失數據進行重構時,需首先假設生存研究中單個時間間隔內刪失情況的發生速度是均衡的,但該假設是建立在刪失情況的發生不受和時間有關的混雜因素影響的基礎上,實際情況下刪失的發生往往不能以隨機發生一概而論,因此對刪失數據的重構需要對研究中有關因素進行更多考慮。