WFU

2018年11月17日 星期六

時間相依共變數之存活分析


文章作者:林星帆
重新編輯於 2013/3 發表在晨晰統計部落格的文章,這裡這裡這裡這裡



圖片來源在此


何謂時間相依共變數


筆者曾經介紹一系列關於存活分析(Survival analysis)的應用與原理,一共包括四篇,其中第四篇為最重要的 Cox regression,但是該篇文章所介紹的 Cox 模式都只涉及到最基礎(但也最常用)的模式。

但是其實 Cox model 本身有很多種延伸的模型,其中最為重要的一種就是「時間相依共變數」(Time-dependent covariate),又稱之為隨時間變動的共變數(Time-varying covariate)。

顧名思義,「時間相依」或「隨時間變動」表示某一個自變項(危險因子)可能是會隨著時間所變化的,但其實教科書上會告訴我們有好幾種定義,不過目前按照筆者目前的處理經驗,最常遭遇的是「研究追蹤期間會改變的治療或測量」。

在這裡筆者舉兩個實際的案例,以幫助大家瞭解什麼是 Time-dependent covariate,以及為什麼需要在統計模型對它作處理。


心臟繞道手術之例


第一個例子是心臟科的繞道手術(Coronary artery bypass graft, CABG)的術後病人存活狀況之研究。

在進行這個高危險性的手術之後,病人有可能會有血流感染(Bloodstream infection, BSI )的情形,而 BSI 可能會與病人的存活時間會有顯著相關,意即我們想要驗證 CABG 術後有 BSI 者的死亡風險會比較高。

但現在問題就來了, BSI 這個變項並不是研究一開始就存在的變項(例如性別、年齡、有無糖尿病),而是追蹤期間才可能會發生的變項。我們以下圖為例。




  • 第一位病人在 1 月的時候進行 CABG 手術,結果在 2 月時發生 BSI,最後在 5 月時死亡
  • 第二位病人在 2 月進行 CABG,而一直到研究截止收案的 11 月時都還沒死亡
  • 第三位病人在 3 月進行 CABG,到了 7 月時就轉院或失去追蹤(電話聯絡不上或是家屬拒訪),因此不知道 7 月之後是否仍存活
  • 第四位病人在 1 月進行 CABG,在 5 月時發生 BSI,而到結案時的 11 月都還沒死亡。

在這個例子當中,可能會有讀者提議一個作法,既然我們的研究問題是探討術後有無發生 BSI 對於死亡風險的影響,那麼還是維持原本的資料輸入方式,我們只要知道這位病人是否發生 BSI 就可以了。

例如以剛剛的例子來說,第一位與第四位病人都是有發生 BSI,那就在資料欄位「BSI」上面輸入「1」、而第二位與第三位病人沒有發生 BSI,那就輸入「0」。

這的確是一個替代作法,但是這種輸入方法是時間固定或時間獨立共變數(Time-fixed or time-independent covariate)的輸入方式,就好比糖尿病或性別這種基線變項(Baseline variable),變成我們是在檢驗「在 baseline 時,有無 BSI 對於死亡風險的影響」,可是 BSI 並不是在 baseline 發生的,此為不合理的原因之一。

再者,有 2 位病人發生 BSI,但是第一位是術後 1 個月(1 到 2 月)發生 BSI,而第四位是術後 4 個月才發生 BSI (1 到 5 月),兩位病人雖然都發生 BSI,但發生的時間不相同,維持原先的資料輸入方式並沒有辦法考慮這個問題,因此必須以 Time-dependent covariate 的方式來處理。


心房性頻脈與中風之例


第二個例子也是心臟科的例子,即心房性頻脈(Atrial tachyarrhythmia, AT)與中風的之研究或心房顫動(Atrial fibrillation, AF)與中風的之研究

無論是 AT 或 AF,都符合之前我們對 time-dependent covariate 的定義:「研究追蹤期間會改變的治療或測量」。

在這一類的研究中,AT/AF 的測量是固定一段期間測量一次,例如是每 3 個月測量一次病人的 AT/AF 的負荷量(AT/AF burden)有多少。假使有一位病人有 4 筆資料,那就代表這位病人剛好追蹤期為一年,假使有位病人只有追蹤 3 個月時就發生中風事件(Endpoint)或是失去追蹤,那麼這位病人只會有 1 筆資料。

在這種研究設計之下,我們如果要探討 AT/AF burden 與中風風險的關聯性,那麼我們應該如何量化 AT/AF burden 呢?

把每位病人的 AT/AF burden 加總起來好像是選擇之一,聽起來好像蠻簡單的,但是這種作法不合理,因為有的病人可能有30筆資料(代表追蹤90個月),但有的病人可能只有1筆資料(代表只有追蹤3個月),若我們貿然將 AT/AF burden 加總,資料筆數少的病人當然 AT/AF burden 就低,反之資料筆數多的病人當然 AT/AF burden 就高。

而且一般來說,資料筆數少的病人通常發生中風的機會比較高(因為發生中風之後,我們就不繼續追蹤這個病人),反之資料筆數多的病人通常發生中風的機會比較低(因為如果病人一直沒有發生中風,我們會一直追蹤下去)。

大家試想一下,若我們把 AT/AF burden 加總之後作分析,可能會得到相反的結論,為什麼?因為資料筆數少則 AT/AF burden 的加總就會低,資料筆數少則中風的機會比較高,那不就變得 AT/AF burden 越低則病人的中風的機會越高?那真的是嚇死人的詭異結論,

因此不能以傳統的方法作分析,必須以 time-dependent covariate 方式來處理這個問題。

另外除了 AT/AF burden 的問題之外,用藥對於中風的發生也是非常有影響的,例如中風的最重要藥物就是阿斯匹靈(Aspirin),如果有一位病人有 5 次資料(就是追蹤 5 次,共 15 個月),但他/她可能前 6 個月有服用藥物,但最後 9 個月並沒有服藥,但是傳統的 Cox regression 只能考慮「Baseline 用藥跟未來中風發生是否有關係」,因此未能有效的考慮藥物對於 Outcome 的影響,因此這個問題也必須透過 time-dependent covariate 方式來處理。

接下來,我們即將說明在 Cox model 對於 time-dependent covariate 的處理方式,以及資料格式(data layout)該如何擺放。


資料的擺列


前文我們已經介紹 time-dependent covariate 的使用時機,現在我們就開始示範資料的輸入方式,仍以 CABG 手術為例子,下圖列出四位病人的資料輸入方式。





可以注意到第一位病人的資料筆數有兩筆,第一筆資料是從 CABG 術後(1 月)到發生 BSI 日期(2 月),第二筆資料是從發生 BSI 日期(2 月)到病人死亡日期(5 月)。

首先,先關注第一筆資料,由於第一筆資料的「終點」是發生 BSI 的 2 月,因此在這一筆資料上面所輸入的變項應該要算是「起點」的變項,也就是 CABG 術後(1 月)時的變項,既然如此,由於第一筆資料尚未發生 BSI 感染,因此 BSI 這個變項就要輸入「0」,因為病人沒有死亡因此 Death 也為「0」。

到了第二筆資料時,病人有發生 BSI 感染了,而且病人最後死亡,因此 BSI 輸入「1」且 Death 也為「1」。此時我們可注意到,BSI 這個變項是自變項,但是它在兩筆資料的數值是會改變的(第一次是 0,第二次是 1),因此這就算一種「time-dependent covariate」的形式。

接著檢視第二位及第三位病人的資料,我們發現沒有特別之處,因為由於此兩位病人皆沒有發生過 BSI 感染,因此資料筆數都只有一筆,既然資料只有一筆,那也就沒有所謂的「會隨時間變化的變項」的存在了。

最後檢視第四位病人的資料,他/她也有兩筆資料,第一筆資料是尚未發生 BSI 感染的資料,從 1 月到 5 月;第二筆資料是已經發生 BSI 之後的那一次資料,從 5 月到 11 月,不過由於此位病人在研究截止的 11 月份時仍然安好無恙,因此兩筆資料的 Outcome(death)皆為「0」。

目前為止我們已經很清楚像 BSI 感染這種 time-dependent covariate 要怎麼在資料裡輸入,不過這種狀況的「Survival time」(存活時間)的輸入方式也與傳統方式有所不同,一般大家所知的存活時間就是一個欄位,定義為「從追蹤到發生事件或最後一次追蹤的時間」,而在 time-dependent covariate 的狀況下,存活時間的定義仍然沒有改變,但是卻是「需要兩個欄位來定義存活時間」。

存活時間分別為 Start and Stop(或 TL and TR,分別表示 time of left, time of right),不管是如何稱呼,左邊的欄位定義為「這一筆資料的起始時間」,右邊的欄位定義為「這一筆資料的結束時間」。以上圖的病人 1 為例,第一筆資料是 1 月到 2 月(尚未發生 BSI 那一次),TL 跟 TR 分別為 0 到 1,而 1 減 0 則是一個月,代表從 1 月到 2 月。

第二筆資料則是 2 月到 5 月(已經發生 BSI 那一次),此時的 TL 跟 TR 分別為 1 到 4,TL 是 1 是因為第二筆資料的起點是第一筆資料的終點,TR 是 4 則是因為 4 減 1 是三個月,代表從 2 月到 5 月。

至於其他三位病人的 TL 及 TR 就依此類推,不過要注意到每一個人的第一筆資料的 TL 一定是從零開始,也就是說,無論每一個人第一筆資料的起始日期是幾月,TL 都是零。

附帶一提的是,圖中的最後面有兩個變項,都是有無使用抗生素(Antibiotics),TIC 指的是 time-independent covariate,可注意到同一位病人的所有資料一定都相同;反之 TDC 指的是 time-dependent covariate,跟 BSI 一樣可允許同一位病人的多次資料是可以改變的(有時候是 1,有時候又是 0)。


以SPSS執行時間相依存活分析的資料擺列


目前為止我們已經知道要如何輸入資料,接著我們就要以 SPSS 為例,讓大家知道如何在 SPSS 裡頭分析 time-dependent covariate 的 Cox regression。

我們延續之前另外一個例子,即心房性頻脈的負荷(Burden of atrial tachyarrhythmia, AT burden)與中風(Stroke)的關係之研究。

在這個研究中,當病人首次安裝心跳節律器(Pacemaker)之後,每一年測量一次病人在這一年之間發生心房性頻脈的時間,因此如果病人的追蹤期有幾年就會有幾筆的資料。

下圖列出其中兩位病人的資料,可注意到編號 5 號的病人資料筆數多達 8 筆,這是因為他的追蹤期長達八年;反之編號 6 號的病人就只有一年追蹤期,因此只有 1 筆資料。

另外可觀察到而且這位 5 號病人在植入 Pacemaker 後的第八年發生中風,因此第八筆資料(第 7 年到第 8 年)的「Stroke」為 1,不過要注意前七筆資料(一開始到第 7 年)的「Stroke」皆為 0,因為前七年都沒有發生中風。





此時有兩個變項是屬於 time-dependent covariate,第一個就是「Aspirin_TDC」,定義為在這一年期間病人是否有服用阿斯匹靈,5 號病人在前四年都有服用,但在後四年就沒有繼續服用了。

第二個就是「AT_burden」,定義為在這一年期間病人發生心房性頻脈的比例,數字介於 0 到 100%,每 1% 表示為 3.65 天,5 號病人在前六年都有發生心房性頻脈,但在最後兩年就沒有發生了(因為數值為 0 表示完全沒有 AT burden)。


語法與報表


接著我們就以 SPSS 的語法來示範如何執行 time-dependent covariate 的 Cox regression model

(1) TIME PROGRAM.
(2) COMPUTE T_COV_ = T_ > TL.
(3) COXREG TR
(4) /STATUS=Stroke(1)
(5) /METHOD=ENTER T_COV_ Aspirin_TDC AT_burden
(6) /PRINT=CI(95)
(7) /CRITERIA=PIN(.05) POUT(.10) ITERATE(200).

以上即為 SPSS 的語法,以下逐點做說明,一共七點。

(1) TIME PROGRAM.

宣告這不是一個普通的 Cox model,而是需要定義時間的模式

(2) COMPUTE T_COV_ = T_ > TL.

定義 time-dependent covariate 的「時間」,因為其實真正在統計模型裡頭只有一個關於時間的自變項,即「T_COV_」,被定義為「T_ > TL」,其中的 T_ 其實就是「右側的時間點」(這一筆資料的結束時間,即 TR)。而 TL 就是「左側的時間點」(這一筆資料的起始時間),而由我們之前所示範的資料皆可知,在同一筆資料中 TR 一定會大於 TL,因此才以「T_ > TL」來表示。

(3) COXREG TR

宣告「右側的時間點」等於 TR。

(4) /STATUS=Stroke(1)

宣告 Event 的定義,即如果 Stroke 等於 1 就等於發生中風

(5) /METHOD=ENTER T_COV_ Aspirin_TDC AT_burden

宣告自變項包括三個,分別為不存在於資料中的「T_COV_」以及在資料中的 Aspirin_TDC 及 AT_burden。不過要提醒大家,在我們這個例子是只有放 time-dependent covariate,如果有一些不隨時間變化的變項(例如性別、年齡)也是可以放到模型裡頭

(6) /PRINT=CI(95)

宣告輸出要有 95% 的信賴區間

(7) /CRITERIA=PIN(.05) POUT(.10) ITERATE(200).

一些關於疊代等設定,一般來說不需要特別設定,保持預設即可。

經過以上語法的設定,我們就可以跑出輸出了,大家對於輸出中「T_COV_」的結果可以完全忽略,它只是方程式必要的存在,但是沒有解釋的必要;此外,由下圖可知 Aspirin_TDC 及 AT_burden 的結果並不顯著,表示是否服用阿斯匹靈與心房性頻脈的程度與中風並沒有顯著的關係。





參考文獻


本系列四篇文章只介紹了 time-dependent covariate 的某一種應用,若讀者想一窺全貌,可再延伸閱讀以下文獻。

  1. Klein JP, Moeschberger ML. Survival analysis: techniques for censored and truncated data. 2nd ed. New York: Springer; 2003.
  2. Kleinbaum DG, Klein M. Survival analysis: a self-learning text. 2nd ed. New York: Springer; 2005.
  3. Lee ET, Wang JW. Statistical methods for survival data analysis. 3rd ed. Hoboken, New Jersey: John Wiley & Sons; 2003.