變化的分析游琇婷(Hsiu-Ting Yu)社會科學的縱貫、密集縱貫與動態資料分析

第 29 章

存活分析與事件史分析

到目前為止各章建的模型,講的都是一個連續屬性如何隨時間起落。但推動縱貫研究的許多問題問的根本不是水準(level),而是時刻:一位病人何時復發、一名學生何時第一次被當、一對伴侶何時分手、一位員工何時離職、一個戒了菸的人何時點起第一根菸。這些是時機(timing)問題,而它們擊潰前面各章的做法,靠的是一個很頑固的理由。研究結束時,有些人已經發生事件、有些人還沒有;對還沒發生的那些人,真正的事件時間(event time)不是一般意義下的遺漏,而是「已知它落在觀察窗(observation window)之外」。這就是設限(censoring)。把設限個案丟掉再算平均數,或假裝「最後一次觀察就是事件」再算平均數,都不只是不精確,而是有偏誤(biased)的,有時偏得很嚴重。存活分析(survival analysis)又叫事件史分析(event-history analysis),這一族方法建起來就是為了把設限個案以它們完整的訊息價值留在分析裡,既不丟掉也不捏造。本章走的是心理學家進入這一族的那條路。起點是離散時間(discrete time)存活:資料改寫成個人期間檔(person-period file),模型就是第 15 章那個羅吉斯迴歸(logistic regression)換上新的解讀,因為多數心理學事件記在週、學期或波次上,不是記到瞬間。接著發展連續時間(continuous time)的那一套:Kaplan-Meier 估計式與 Cox 比例危險(proportional-hazards)模型,以及它們的優雅所要求的紀律。審稿人最常抓到的那幾個錯誤,不朽時間(immortal time)、從錯誤的曲線上讀競爭風險(competing risks)、把危險比(hazard ratio)誤讀成風險比(risk ratio),本章當成要精熟的內容處理,不是塞在註腳裡。最後把存活次模型與第 13、14 章的成長次模型接起來,好讓依賴結果的退出(outcome-dependent dropout),也就是第 6 章承諾過的非隨機遺漏(missing not at random)機制,被建模而不是被假設掉。

學習目標

讀完本章之後,你應該能夠:(1) 在離散與連續時間裡定義存活函數(survivor function)、危險(hazard)與累積危險(cumulative hazard),並在三者之間轉換;(2) 說明右設限、左設限與區間設限的差別,並認出無訊息設限(noninformative censoring),它是這個領域裡隨機遺漏(missing at random)的沉默親戚;(3) 建好個人期間資料集,以羅吉斯迴歸配適離散時間危險模型,選定一種基線危險(baseline hazard)設定,並把共變項(covariate)效果讀成危險勝算比(hazard-odds ratio);(4) 估計 Kaplan-Meier 曲線、以對數等級檢定(log-rank test)比較它們,並配適一個危險比解讀站得住腳的 Cox 模型;(5) 以 Schoenfeld 殘差(residual)偵測比例危險的違反,並以一個時變(time-varying)係數解決它;(6) 透過計數歷程(counting-process)資料納入時變共變項,並認出不朽時間偏誤;(7) 延伸到共享脆弱性(shared frailty)、重複事件(recurrent events)與競爭風險,並依問題選擇病因特定(cause-specific)危險或次分配(subdistribution)危險;(8) 為依賴結果的退出配適一個共享參數(shared-parameter)的縱貫存活聯合模型(joint model);(9) 把一份存活分析報告到可發表的標準。

29.1 時機問題與存活的詞彙

第 1 章點名的第五族問題,也就是事件會不會發生、又在何時發生,一路等到現在才輪到它的方法,因為這些方法和本書其他方法都不一樣。推論的標的是一段期間(duration),由一個定義清楚的起點(time origin)算到一個定義清楚的事件。困難在於:資料蒐集結束時,這段期間對一部分參與者是確切已知的,對其餘的人卻只剩下一個界限。本章的貫穿範例 relapse 資料是一份模擬(simulation)研究,四百位因憂鬱發作(depressive episode)而接受治療的病人,每週追蹤(follow-up)最多二十四週,看症狀會不會、又在何時回到復發(relapse)的門檻(threshold)。資料由一個已知的生成歷程(data-generating process)模擬而來,每一個估計值都能對照真相稽核,這是本書一貫的做法。到第二十四週,一百八十一位病人復發、一百四十八位因復發以外的理由離開照護、七十一位仍在緩解(remission)中且仍被觀察。只有第一群人有一個被觀察到的復發時間。第二與第三群人身上能確定的只有一件事:復發若終究會發生,在觀察停止的那一刻還沒有發生。

誘惑是伸手去拿一個熟悉的摘要,而每一個熟悉的摘要都以很有教育意義的方式失敗。把那一百八十一位復發者的復發時間平均起來,得到大約九週;這只描述了快速復發的那群人,還默默丟掉超過一半的樣本,而那些人「很久都沒有復發」恰恰就是治療成功的地方。把每位設限病人最後一次被觀察到的那一週當成復發週填進去,得到大約十二週;這個數字是任意的,研究短它就縮、研究長它就長,追蹤的是設計而不是現象。用最小平方把觀察到的追蹤時間對治療組別作迴歸,會看到被治療的病人多被追蹤了大約三週半,那是把治療的好處與「沒有復發的病人會被觀察到行政結束為止」這件記帳事實混在一起。Kaplan-Meier 估計式把每一位病人被觀察到的那段時間都用足,於是把復發時間的中位數(median)放在十八週,而上面每一個天真摘要都還原不出這個數字。表 29.1 固定住讓正確分析得以成立的那套詞彙,圖 29.1 則畫出天真摘要處理不了的設限結構。

表 29.1 離散與連續時間中的存活量。

量連續時間離散時間(期間 \(t=1,2,\dots\))
存活函數 \(S(t)\)\(P(T>t)\),事件到 \(t\) 為止尚未發生的機率\(S(t)=\prod_{k\le t}\bigl(1-h(k)\bigr)\)
危險 \(h(t)\)\(P(t\le T<t+\Delta t\mid T\ge t)\,/\,\Delta t\)
在 \(\Delta t\to 0\) 時的極限,一個瞬時率
\(h(t)=P(T=t\mid T\ge t)\),一個落在 \([0,1]\) 的條件機率
累積危險\(H(t)=\int_0^t h(u)\,du=-\log S(t)\)\(H(t)=\sum_{k\le t} h(k)\)(近似)
中位存活期使 \(S(t)\le .5\) 的最小 \(t\)使 \(S(t)\le .5\) 的最小期間
與模型的連結\(h(t)=h_0(t)\exp(\mathbf{x}'\boldsymbol\beta)\)(Cox)\(\mathrm{logit}\,h(t)=\alpha(t)+\mathbf{x}'\boldsymbol\beta\)(羅吉斯)

註:危險是核心的量。它是條件地定義的,也就是只在仍處於風險中的人裡定義,因而自然吸收了設限。連續時間裡它是一個可以超過一的率,離散時間裡它是一個以一為上界的機率;存活函數則由危險逐期累積出來。

設限的解剖。
圖 29.1 設限的解剖。

註:每一條橫向的帶是一位病人自收案起算的追蹤。實心圓標出一次被觀察到的復發,也就是關心的事件;叉號標出退出,那是另一個結束觀察的事件;虛線上的空心圓則標出研究在第二十四週結束時仍在緩解中的病人。被設限的那些帶不是該丟掉或該插補(imputation)的遺漏資料:每一條都記錄了這位病人至少無復發地存活了這麼久,而危險會把那份訊息完整用上。

危險那個條件性的定義是整個主題的概念樞紐,也是學生最常弄糊的地方。第 \(t\) 週的危險不是「一位隨機挑出的病人在第 \(t\) 週復發」的機率,而是「一位病人在第 \(t\) 週復發,而且在第 \(t\) 週之前還沒有復發過」的條件機率。風險集(risk set)是那群仍未發生事件、仍在觀察中的人,它會隨時間縮小,因為病人會復發、會退出,或走到行政的邊界;危險永遠相對於當下的風險集計算。設限之所以可處理,關鍵就在這裡:一位被設限的病人,在被設限之前的每一個風險集裡都算數,之後就單純地離開,沒有任何東西被捏造,也沒有任何東西被丟棄。圖 29.2 呈現 relapse 資料的危險與它隱含的存活函數,那是同一個分配的兩張面孔。

危險與存活是同一個分配的兩種看法。
圖 29.2 危險與存活是同一個分配的兩種看法。

註:(a) 是實徵的離散時間危險,也就是每一週的復發人數除以那一週仍處於風險中的人數。(b) 是把無復發存活逐週累積起來的存活函數,\(S(t)=\prod_{k\le t}(1-h(k))\)。某一週的危險高,存活曲線(survival curve)就在那一週陡降;危險先升後降,存活曲線就在研究中段下降得最快。

設限分好幾種,種類是有差別的。右設限(right censoring)就是剛剛描述的那一種,事件到觀察結束為止都還沒有發生,這也是最常見的一種。左設限(left censoring)是已知事件在觀察開始之前就發生了、確切時間卻不明,例如一份調查發現受訪者已經開始抽菸,卻定不出第一根菸的日期。區間設限(interval censoring)是只知道事件落在兩次施測之間,那正是多數追蹤資料真實的狀態,也是離散時間方法處理得最優雅的情形。跨越所有種類,讓標準分析成立的那個假設是無訊息設限(noninformative censoring):把一位病人移出觀察的那個機制,除了共變項已經捕捉到的之外,不再帶著任何關於這位病人危險的訊息。這是第 6 章隨機遺漏假設在存活分析裡的表親,一樣無法由手上的資料檢驗,也一樣有後果。快要復發的病人若正好就是退出的那些人,設限就是帶訊息的,風險集不再代表模型所想像的那群病人,每一個估計值都會朝著取決於那個機制的方向偏誤。relapse 資料的競爭退出結構就是刻意做成帶訊息的,第 29.6 節會正面處理它,不會假設掉它。

基礎概念 • 帶設限的概似

設限個案能不靠捏造就留在分析裡,理由在概似(likelihood)上看得見。一位在時間 \(t\) 被觀察到發生事件的病人,貢獻的是事件時間在該處的密度,以危險參數化就是 \(h(t)\,S(t^-)\):存活到 \(t\),然後發生事件。一位在時間 \(c\) 被右設限的病人只貢獻 \(S(c)\),因為能確定的只有「存活超過了 \(c\)」。以 \(\delta_i=1\) 表示觀察到事件、\(\delta_i=0\) 表示設限,個別的貢獻就是 \(h(t_i)^{\delta_i}\,S(t_i)\)。在離散時間裡,這一項會逐期分解成一串 Bernoulli 項的乘積,這位病人處於風險中的每一期各一項,而「事件」的機率就是 \(h(t)\)。這個分解就是整個把戲:個人期間檔變成一組獨立的 Bernoulli 試驗,存活估計於是變成羅吉斯迴歸。無訊息設限假設所允許的,恰恰就是把設限病人的貢獻寫成 \(S(c)\),而不是某個取決於設限理由的東西。

29.2 離散時間存活:心理學家的入口

多數心理學事件不是記到瞬間的。復發記在每週的施測上,被當記在一個學期結束時,離婚記在一次年度的波次上。時間的計量(metric)一粗,離散時間存活就不是需要道歉的近似,而是自然的模型;它在教學上最大的優點,是化約成手上已經有的工具。這套做法由 Singer and Willett (1991) 與 Singer and Willett (1993) 為心理學與教育學發展出來,也見於 Allison (1982),靠的是資料上一次重新塑形。個人期間檔(person-period file)把每一位參與者展開成處於風險中的每一期各一列,由第一期一直排到事件或設限那一期,並帶一個二元(binary)指標,只有在事件發生的那一期等於一。一位在第五週復發的病人貢獻五列,指標在第一到第四週為零、第五週為一;一位在第十二週被設限的病人貢獻十二列,指標全為零。圖 29.3 畫出這個轉換,軟體註記則給出執行它的那幾行 R。

個人期間檔的建構,把事件資料變成羅吉斯迴歸資料。
圖 29.3 個人期間檔的建構,把事件資料變成羅吉斯迴歸資料。

註:左邊是個人層次的表格,每位病人一列,帶著事件時間與一個事件指標(event indicator)。右邊是個人期間檔,每位病人處於風險中的每一週各一列,事件指標只有在事件發生的那一週等於一,其餘為零;被設限的病人貢獻的是一路到設限那一週為止的全零列。展開後的檔案當成一組獨立的二元結果來分析,在它上面跑一個羅吉斯迴歸估出來的就是離散時間危險。

軟體提示 • 建立個人期間檔並配適危險模型

# 把個人層次的 (time, status) 展開成個人期間格式,再配適危險模型
build_pp <- function(df) do.call(rbind,
  lapply(seq_len(nrow(df)), function(i){
    k <- df$time[i]
    data.frame(person = df$person[i], week = 1:k,
               event = as.integer(df$status[i] == 1 & (1:k) == k)) }))
pp <- build_pp(relapse)                    # 重現出貨的 relapse_pp
# 離散時間危險模型:基線危險 + 共變項(logit 連結)
m <- glm(event ~ ns(week, df = 4) + arm + severity, data = pp, family = binomial)
# 多層次版本:跨場域的隨機截距(第 15 章的做法)
library(lme4)
m_ml <- glmer(event ~ ns(week, df = 4) + arm + severity + (1 | site),
              data = pp, family = binomial,
              control = glmerControl("bobyqa"))

檔案建好之後,離散時間危險模型就是把事件指標對「一個時間的表徵加上共變項」作羅吉斯迴歸。時間的那個表徵就是基線危險(baseline hazard),也就是共變項固定在參照值時、風險跨各期的形狀,而它是這個設定裡唯一獨有的一項選擇。表 29.2 攤開那份菜單。最有彈性的選項是把時間當成一組虛擬(dummy)指標放進去、每一期一個,完全不強加任何形狀,並精確重現 Kaplan-Meier 的基線;代價是每期一個參數,期數多而每期事件少時很浪費。一個低階多項式(polynomial),或者更好的,一個架在期數指標上的自然樣條(natural spline),用少數幾個參數就買到一條平滑的基線。在 relapse 資料上,三次多項式與四個自由度(degrees of freedom)的樣條在赤池(Akaike)準則下都配適得比二十四個參數的虛擬設定好,而三種設定下的共變項估計值幾乎沒有變,治療的對數勝算(log-odds)都在 \(-0.90\) 附近、嚴重度的對數勝算都在 \(0.37\) 附近。實質係數在各種基線設定下都穩定,這件事令人安心,也值得報告;不穩定則是警訊,表示基線與共變項正在交換變異數。

表 29.2 離散時間模型的基線危險設定。

設定參數數relapse 的 AIC何時使用
時間虛擬變項每期一個1488.9期數少;不假設形狀;重現 Kaplan-Meier
多項式(三次)31483.2平滑的基線;精簡;有邊緣假象的風險
自然樣條(df 4)41484.3平滑又有彈性;尾端受控;建議的預設
單一常數11481.2只在危險真的隨時間持平時

註:參數數不含共變項,AIC 越低越好。在 relapse 資料上,平滑的設定(多項式、樣條)配適得比飽和的虛擬基線好,因為真實的危險是週的一個平滑駝峰函數;估出來的治療與嚴重度效果在三種設定下都很穩定,而那正是該檢查的性質。單一常數那一列的 AIC 反而最低(\(1481.18\)),但它的偏差最大(\(1475.18\),樣條為 \(1470.31\)),勝出只因為它省下了參數。

共變項係數是對數危險勝算比,讀起來就像任何一個羅吉斯係數,只是要附上風險集的解讀。在 relapse 資料中,大約 \(-0.90\) 的治療係數說的是:在任何一週之內、在那一週仍處於風險中的病人之間,被分派到治療會把「那一週復發」的勝算乘上 \(\exp(-0.90)\approx 0.41\)。每週的危險都很小,所以這個危險勝算比與連續時間模型報出的危險比很接近,而換一種連結函數(link function)可以讓這個對應變成精確的。互補雙對數連結(complementary log-log link),\(\log(-\log(1-h(t)))=\alpha(t)+\mathbf{x}'\boldsymbol\beta\),正是與「一個只在期間邊界上被觀察到的底層連續時間比例危險歷程」相容的離散時間連結,它的係數直接估計的就是 Cox 的對數危險比(log hazard ratio)。以互補雙對數連結配適 relapse 的危險,治療係數是 \(-0.876\),與下一節 Cox 估計的 \(-0.879\) 在四捨五入之內相同,logit 連結則給 \(-0.898\)。三者一致是因為危險低;而當那些離散期間是連續時間的一次粗化、不是真正離散的事件機會時,互補雙對數才是有原則的選擇。

預測出來的曲線是離散時間分析的交付物,也是讀者真正會記住的東西。由配適好的模型,任何一個共變項剖面(profile)的危險都能逐期讀出,那個剖面的存活函數再由這些危險累積出來。圖 29.4 呈現六個剖面的配適每週危險與隱含的存活曲線,六個剖面是治療組別交叉低、平均、高三種基線嚴重度。這張圖把模型的主張變得具體:基線危險在研究中段隆起,高基線嚴重度把整條危險剖面往上推,治療把它往下推;於是低嚴重度的治療組病人存活曲線一直維持得很高,高嚴重度的控制組病人存活曲線則陡降。一句可以直接寫進論文的文字,就由這張圖與那個係數推出來,第 29.7 節會示範。

依共變項剖面劃分的配適離散時間危險與存活曲線。
圖 29.4 依共變項剖面劃分的配適離散時間危險與存活曲線。

註:曲線來自配適到 relapse 個人期間檔的自然樣條基線羅吉斯危險模型。(a) 是配適出來的每週復發危險,(b) 是隱含的存活函數 \(S(t)=\prod_{k\le t}(1-h(k))\);兩張都以治療組與控制組(線型)交叉基線嚴重度在負一、零與正一個標準差(顏色)。隆起的基線、隨嚴重度往上的位移,以及隨治療往下的位移,全都直接由配適好的模型讀出來。

多層次的延伸,是第 15 章的回報準時抵達。relapse 研究的病人巢套(nested)在二十五個治療場域裡,而場域之間在復發風險上的差異,也就是未測量的治療師技巧、當地的個案組成、轉介型態,會在同一場域的病人之間誘發依賴,單層模型會忽略這一層。在離散時間危險模型上為場域加一個隨機截距(random intercept),也就是把 glm 換成 glmer 這一行改動,還原出 logit 尺度上 \(0.485\) 的場域層次標準差,與生成歷程裡放進去的 \(0.50\) 很接近,並為那份群集(clustering)調整了共變項的標準誤(standard error)。這個隨機截距就是第 29.5 節共享脆弱性模型在離散時間裡的面貌:同一個想法,一個群集之內共有、乘在危險上的潛在乘數,一次用羅吉斯的做法表達,一次用 Cox 的做法表達。

29.3 連續時間:Kaplan-Meier 與 Cox

時間量得夠細、同分(tie)很少時,連續時間那一套做法就更自然、也更有力。它的兩件工具是估存活函數的 Kaplan-Meier 估計式,以及估共變項對危險之效果的 Cox 模型。Kaplan-Meier 估計式 (Kaplan & Meier, 1958) 把存活曲線建成各個相異事件時間上的一串連乘:每一個有事件發生的時間,存活就乘上「一減去那一瞬間的事件數對風險集的比值」,而被設限的個案離開風險集時不會觸發任何下降。結果是一條把每個個案被觀察到的期間都用足的無母數(nonparametric)存活曲線,也就是第 29.1 節那些天真平均數產生不出來的誠實圖像。圖 29.5 以本書的版面風格呈現 relapse 資料兩個治療組別的 Kaplan-Meier 曲線,附上逐點(pointwise)信賴帶,以及圖下方那張每一份存活圖都該帶著的風險人數表(risk table)。控制組的中位無復發時間是十一週,治療組是二十二週,兩條曲線之間的分離就是治療效果被看見的樣子。

依治療組別劃分的 Kaplan-Meier 無復發存活,附風險人數表。
圖 29.5 依治療組別劃分的 Kaplan-Meier 無復發存活,附風險人數表。

註:階梯函數(step function)是「仍維持無復發」機率的 Kaplan-Meier 估計,陰影帶是逐點的百分之九十五信賴區間(confidence interval)。座標軸下方的風險人數表報告每四週還有多少病人仍未發生事件且仍在觀察中,那是存活圖的必要元素,因為右尾可不可靠,取決於那裡還剩多少人處於風險中。對數等級檢定比較的是整條曲線。

對數等級檢定(log-rank test)比較兩條或更多條存活曲線的方式,是在每一個事件時間上累積「某一組被觀察到的事件數」與「各組危險相同時所期望的事件數」之差,再把總和加以標準化(standardization)。在 relapse 的兩組上,它回傳一個自由度為一、值為 \(28.9\) 的卡方(chi-square),決定性地拒絕曲線相等。這個檢定在危險成比例時最有力,那個條件下面會精確定義。曲線交叉時,累積起來的差會部分互相抵銷,對數等級檢定於是失去檢定力(power);這項限制促成了它那些加權(weighted)的親戚,更重要的是,它要求分析者去看曲線,而不是信任單一個 \(p\) 值。

Cox 比例危險模型 (Cox, 1972) 是連續時間存活分析的主力,它的設計是一項值得理解、而不只是拿來引用的統計學優雅。模型把一位共變項為 \(\mathbf{x}\) 的病人的危險寫成 \(h(t\mid\mathbf{x})=h_0(t)\exp(\mathbf{x}'\boldsymbol\beta)\):一個大家共有、形式完全未指定的基線危險 \(h_0(t)\),乘上一個依賴共變項但不依賴時間的乘數。基線危險完全留白,係數 \(\boldsymbol\beta\) 卻能在沒有它的情況下估出來,靠的是偏概似(partial likelihood)。想法是以事件時間的集合為條件,在每一次事件發生時問:當下風險集裡的哪一位成員是發生事件的那一個。在這個模型之下,那個機率就是該個體的危險除以風險集內所有危險的總和,未知的基線危險在分子分母都出現,於是約掉。把這些條件機率在所有事件上乘起來就是偏概似,最大化它就估出了危險比,而基線的形狀當成一項想要時可以另外還原的贅餘(nuisance)留著。在 relapse 資料上,Cox 模型回傳的治療危險比是 \(0.415\)、嚴重度每一個標準差的危險比是 \(1.44\),與離散時間及互補雙對數的配適一致,本來就該如此。

基礎概念 • 基線危險為什麼會掉出去

在一個事件時間 \(t_{(j)}\) 上,令 \(R_j\) 為風險集,也就是在 \(t_{(j)}\) 之前仍未發生事件且仍在觀察中的那群人。在 Cox 模型之下,「已知 \(R_j\) 中恰好發生了一次事件,而發生事件的正是特定個體 \(i_j\)」的機率是 \(\dfrac{h_0(t_{(j)})\exp(\mathbf{x}_{i_j}'\boldsymbol\beta)}{\sum_{\ell\in R_j} h_0(t_{(j)})\exp(\mathbf{x}_\ell'\boldsymbol\beta)}=\dfrac{\exp(\mathbf{x}_{i_j}'\boldsymbol\beta)}{\sum_{\ell\in R_j}\exp(\mathbf{x}_\ell'\boldsymbol\beta)}\)。基線危險 \(h_0(t_{(j)})\) 在每一項裡都相同,於是約掉,只留下一個純粹依賴共變項與 \(\boldsymbol\beta\) 的量。把這些機率跨所有事件時間乘起來,就得到偏概似。事件時間的同分在粗略測量的心理學資料裡很常見,會破壞這個乾淨的推導;Efron 近似對中等程度的同分處理得不錯,是合理的預設,而同分很嚴重本身就是訊號,表示離散時間模型才是比較誠實的選擇。

危險比要用一種紀律去讀,而它自身的方便正好會侵蝕掉那份紀律。危險比是一個瞬時率的比值,比的是每一瞬間仍處於風險中的那群人,而風險集的組成會隨時間改變,改變的方式共變項未必捕捉得到。即使一項治療對每一位病人的效果都完全相同,風險集的差別耗竭(differential depletion),也就是最脆弱的病人先復發並離開、留下比較耐受的剩餘者,也可能讓危險比在追蹤期間往一漂移。固定的危險比因此是一項很強的假設,而時變的危險比也不是生理效果正在改變的證據。Hernán (2010) 把這一點推到底:危險比以「存活到每一瞬間」為條件,存活又受治療影響,所以較晚時間的危險比比較的是兩群已經不再可交換(exchangeable)的人,它沒有一個乾淨的因果解讀可以說成「治療對事件時機的效果」。實務上的建議是:把危險比讀成一個有用的關聯摘要,並列報告存活曲線好讓讀者看到絕對的圖像,而且絕不要把危險比翻譯成關於事件機率的陳述,彷彿它是風險比。

常見陷阱 • 誤讀一個 Cox 模型的三種方式

危險比不是風險比。\(0.4\) 的危險比並不表示治療組發生事件的機率是控制組的百分之四十。它是以存活為條件的瞬時率比值,對累積發生率的效果取決於基線危險與追蹤長度,必須從存活曲線或累積發生曲線上讀出來。危險比未必是固定的。單獨報出來的一個危險比,等於假設了比例危險;假設不成立時,這個數字就是一個隨時間改變之效果的時間平均,可能誤導得很嚴重,下一張圖就會顯示這一點。追蹤後期的危險比不是乾淨的因果對比。以「存活到時間 \(t\)」為條件,就是以一個治療後(post-treatment)變項為條件,所以後期的危險比比較的是兩群被治療本身弄得不再可交換的人 (Hernán, 2010)。

比例危險假設是可以檢驗的,而檢驗它不是可有可無的步驟。Schoenfeld 殘差(Schoenfeld residuals)是每個共變項在每次事件上各一個,等於「一位病人的共變項值」減去「事件那一刻以風險集加權的平均數」。比例危險成立時,這些殘差對時間沒有趨勢;出現趨勢就是某個共變項的效果隨追蹤而改變的指紋 (Grambsch & Therneau, 1994)。relapse 資料被做成帶著一個植入的違反:治療的保護效果早期很強,六個月間逐漸淡去,最後幾週跨過去變成略微有害,那是「沒有維持治療、好處就會消退」的療法會有的現實型態。Schoenfeld 檢定決定性地偵測到它,治療效果的卡方為 \(24.4\)、自由度為一,而被做成成比例的嚴重度效果通過了檢定,卡方為 \(0.76\)(取自 cox.zph(transform = "identity");預設轉換給 \(24.31\) 與 \(0.73\))。圖 29.6 把這項診斷(diagnostic)與它的解法一起呈現。治療的縮放後的 Schoenfeld 殘差隨時間往上斜,固定危險比的那條線錯過了這個斜率。解法是讓治療係數隨時間變化,用跨區間的階梯函數或一個平滑函數(smooth function)都行,兩者都還原出植入的消退:治療的對數危險比由前六週的大約 \(-1.6\) 上升到最後六週的大約 \(+1.0\),在第十六週附近跨過零。表 29.3 把補救的辦法整理起來。

偵測並解決一項比例危險的違反。
圖 29.6 偵測並解決一項比例危險的違反。

註:(a) 把治療效果的縮放後的 Schoenfeld 殘差對時間畫出來,並附一條 loess 平滑線。往上的趨勢,加上低於萬分之一的比例危險檢定 \(p\) 值,都標示出治療效果不是固定的;虛線是那個單一的固定危險比估計值,與這個趨勢相牴觸。(b) 解決了這項違反:分區間的估計值(帶區間的點)與平滑的時變配適(虛線)都跟上了植入的真值(實線),也就是一個早期強力保護、之後消退到零甚至越過零的治療效果。在這裡報出單一個危險比,等於把早期的保護效果與晚期的有害效果平均在一起。

表 29.3 比例危險違反的補救階梯。

補救它做什麼何時優先
分層讓基線危險在各層之間不同;把那個惹麻煩的變項移出危險比模型贅餘變項;對它的效果沒有興趣
時變係數把 \(\beta(t)\) 估成時間的階梯或平滑函數那個改變中的效果本身有實質意義
分區間的效果把追蹤切開,逐區間報一個危險比溝通;有可解讀的時期
加速失效時間直接對時間建模;一個不同、往往更穩定的摘要當時間尺度上的效果比較自然時
照原樣報告並加註保留那個平均效果,但明說它是一個時間平均只在違反輕微、而且已揭露時

註:一項比例危險的違反不會讓一份研究失效,它改變的是估計標的(estimand):由單一個危險比變成一個時變的危險比。補救之間怎麼選,取決於惹麻煩的那個變項是該被吸收掉的贅餘,還是該被描述的效果。把整份分析丟掉,從來都不是正確的反應。

函數形式(functional form)值得與比例性(proportionality)同等的檢視。把某個連續共變項先省略掉、配適一個 Cox 模型,再把它的 Martingale 殘差對著那個共變項畫出來,就看得出這個共變項該以什麼形狀進入模型:線性趨勢支持一個線性項,彎曲則呼喚一個樣條,接上第 30 章的加法模型(additive model)做法。在 relapse 資料上,Martingale 殘差對基線嚴重度接近線性,支持了全章所用的線性嚴重度項。

29.4 時變共變項與它們的陷阱

共變項不必固定在基線。一位病人的症狀水準、睡眠品質或服藥遵從度會隨追蹤而變,而時變共變項讓每一瞬間的危險依賴這個共變項當下的值。撐起這件事的資料結構(data structure)是計數歷程(counting-process)格式:每位病人貢獻一串區間 \((t_{\text{start}},t_{\text{stop}}]\),每個區間帶著那段時間裡有效的共變項值,以及一個關於它右端點的事件指標。這與離散時間檔是同一套個人期間邏輯,只是推廣到任意的區間邊界。本書那些密集測量的章節讓時變共變項格外有力:一串生態瞬時評估(ecological momentary assessment)的每日症狀或渴求報告,可以對齊到一個臨床事件(clinical event)的危險上,於是「瞬間的狀態能不能預報事件」這個密集設計獨有的貢獻,就成了一個帶時變共變項的存活模型。在 relapse 資料中,每週的症狀分數作為時變共變項進入模型,計數歷程的 Cox 模型把它的係數估在每分 \(0.29\):某一週的症狀分數高一分,那一週的復發危險就高出百分之三十四。這個時變的症狀勝過同一位病人的基線症狀分數,後者的係數是 \(0.26\),因為當下的狀態帶著基線值早已失去的訊息。圖 29.7 展示六位復發的病人,他們在復發前數週的症狀水準偏高。

密集測量的症狀作為復發的時變預測變項。
圖 29.7 密集測量的症狀作為復發的時變預測變項。

註:六位復發的病人,每週的症狀(生態瞬時評估)分數一路畫到復發那一週(虛線、叉號)。當下那一週的症狀以時變共變項進入危險,配適出來的對數危險比是每分 \(0.29\)。這個估計值相對於生成歷程裡放進去的 \(0.45\) 被衰減過了,因為被觀察到的每週症狀只是「真正驅動危險的那個潛在狀態」的一個帶誤差讀數,這是一種迴歸稀釋(regression dilution)效果,第 29.6 節的聯合模型會處理它。這裡呈現的病人是在復發者中挑出後期症狀偏高的,好讓那份耦合看得見。

時變共變項分成兩類,而這個分別是整節的樞紐。外生(exogenous)的時變共變項走的路徑不受這位病人的事件狀態影響,例如季節、年齡,或一份由外部設定的劑量排程;它可以直接放進 Cox 模型,解讀也乾淨。內生(endogenous)的時變共變項由病人自己產生,帶著測量誤差(measurement error),而且可能本身就對即將發生的事件有反應。每週的症狀分數就是內生的:一位滑向復發的病人症狀分數會上升,而它上升的理由與即將復發的理由是同一個。把內生共變項放進普通的 Cox 模型,與其說錯,不如說受限:係數會被測量誤差衰減,共變項自己的軌跡留著沒建模,丟掉了訊息,也錯誤處理了「這個共變項恰恰在病人發生事件時就不再被觀察」這件事。第 29.6 節的聯合模型才是內生共變項正確的歸宿,症狀分數在這裡出場,就是為那份回報刻意鋪的路。

整個存活分析裡最具破壞力的陷阱,住在對時變暴露(exposure)的錯誤處理上,值得一段獨立的處理。不朽時間偏誤(immortal-time bias)發生在「一段依構造而言病人不可能發生事件的追蹤時間,被錯誤地歸給一項病人當時還沒有接受的暴露」時。標準的例子是「奧斯卡得獎者比沒得獎的入圍者長壽」這項主張,它正是栽在這個錯誤上:一位演員必須活到頒獎典禮才可能得獎,所以得獎之前那些年保證無事件,把它們算給得獎者那一組,等於單憑記帳就製造出一項存活優勢。Sylvestre et al. (2006) 把得獎狀態當成它本來的樣子,也就是一個時變共變項,重新分析那份資料,每位演員得獎之前歸給未暴露組、得獎之後才歸給暴露組,那項優勢就大致蒸發了。只要暴露是由某件需要時間才會發生的事所定義,同樣的結構就會重現:反應者分析依「只有存活者才展現得出來的反應」把病人分類、依方案分析要求完成一整個療程、移植分析把等待時間算給被移植者 (Suissa, 2008)。圖 29.8 解剖這項偏誤,一次聚焦的模擬則確認了它。拿一項被做成完全沒有效果的暴露來說,天真的分析把病人依曾否暴露分類、並把暴露前的時間算給暴露組,回傳一個 \(0.28\) 的假危險比,憑空變出一項巨大的保護效果;正確的計數歷程分析在真正的時刻把每位病人由未暴露轉到暴露,還原出 \(1.03\) 的危險比,也就是它該有的虛無值。

不朽時間偏誤的解剖。
圖 29.8 不朽時間偏誤的解剖。

註:一位在時間 \(t_{rx}\) 開始治療的病人,必須由收案起無事件地存活到 \(t_{rx}\) 才可能被治療。天真的分析(上)把這位病人在整段追蹤中都歸類為已治療,\(t_{rx}\) 之前那段保證無事件的「不朽」區段就算給了治療組,於是製造出一項存活優勢。正確的分析(下)把暴露當成時間相依的:治療前的區段歸給未治療狀態,只有治療後的區段歸給已治療狀態。在一次沒有真實效果的模擬中,天真的分析回傳 \(0.28\) 的危險比,正確的分析回傳 \(1.03\)。

29.5 多層次、重複與競爭事件

真實事件資料的三項複雜性,群集、重複與競爭,各自以實質問題決定的方式改變模型。共享脆弱性(shared frailty)處理群集的辦法,是把一個群集中每位成員的危險乘上一個共同的潛在因子,也就是脆弱性;它由一個平均數為一的分配抽出,變異數(variance)則交給估計。伽瑪(gamma)脆弱性因為解析上方便而是慣例的選擇。在 relapse 資料上,為治療場域在 Cox 模型加一個伽瑪脆弱性,估出 \(0.22\) 的脆弱性變異數,與生成歷程所隱含的值接近;對照無脆弱性模型的概似比檢定(likelihood-ratio test)是決定性的,確認各場域在共變項所解釋之外的復發風險確實不同。脆弱性變異數讀作「危險上未被解釋的群集間異質性有多少」,它是第 29.2 節離散時間模型那個場域隨機截距在連續時間中的雙胞胎。治療效果加了脆弱性之後幾乎沒有變,治療在各場域間平衡時本來就該如此,但它的標準誤誠實地變大了。

重複要先問一個更前面的問題:什麼算作那個事件。事件可以重複發生時,例如一次戒除嘗試中的破戒、攻擊事件、再住院,分析者就得決定關心的量是事件的整體率,還是「已經經歷過若干次之後、下一次事件的風險」,這兩個問題呼喚不同的模型。表 29.4 攤開那些選擇。Andersen-Gill 模型 (Andersen & Gill, 1982) 把每位病人當成一個計數歷程,共用一個基線危險,接連事件之間的區間全部貢獻到單一個風險集裡;它估的是整體的率比(rate ratio),回答母體率的問題,並以穩健(robust)標準誤容納病人內的依賴。Prentice-Williams-Peterson 模型 (Prentice et al., 1981) 依事件次序分層,第一次、第二次與第三次事件的風險各由自己的基線危險支配,回答的是條件式的、逐次事件而定(episode-specific)的問題。圖 29.9 對比兩者的風險集構造。一次聚焦模擬把共變項做成「把破戒率減半」,兩種模型都還原出真相,Andersen-Gill 的對數率比是 \(-0.47\)、Prentice-Williams-Peterson 是 \(-0.45\),對照植入的 \(-0.50\)。但共變項的效果若在各次事件之間不同,兩個估計標的就會分歧,而選哪一個應該由問題決定,不是由哪一個配適得比較好決定。

表 29.4 依問題選擇一個重複事件模型。

模型估計標的何時使用
Andersen-Gill整體的事件率比事件的總負荷或總率是結果;假設效果在各次事件間相同
Prentice-Williams-Peterson依事件次序分層的、各次事件特定的危險比已知過去史之下、下一次事件的風險;效果可能依次序而異
脆弱性(隨機效果)帶著明確個體間異質性的率比傾向性上的個體間變異本身有興趣

註:三者都用計數歷程的資料版面。Andersen-Gill 與脆弱性瞄準的是一個率,Prentice-Williams-Peterson 瞄準的是以事件次序為條件的風險。穩健或模型本位的標準誤容納同一個人重複事件之間的依賴。這些模型回答不同的問題,也可能給出不同的答案;問題要先來。

重複事件的風險集構造。
圖 29.9 重複事件的風險集構造。

註:紅點是同一位病人接連發生的事件。Andersen-Gill 模型(上)把所有事件間區間放在同一個時鐘上、共用一個基線危險,估出一個整體的率比。Prentice-Williams-Peterson 模型(下)把每一次接續的事件指派到它自己的層,各有各的基線危險,第二次事件的風險於是與第一次分開建模,回答的是以事件次序為條件的問題。這兩種版面編碼的是不同的估計標的,不是同一個估計標的的不同配適。

競爭是三者中最微妙的一項,因為它會默默地讓多數分析者第一個伸手去拿的工具失效。競爭風險(competing risks)出現在「不只一種事件可以結束追蹤,而其中一種發生了就讓另一種不再可能」的時候:在 relapse 資料中,一位脫離照護的病人就不可能再被觀察到復發,所以退出與復發互相競爭。要避免的錯誤,是把退出當成一般的設限,再以「一減去 Kaplan-Meier 曲線」估計復發的累積發生率;那等於把退出的病人當成仍處於原本會看到的那種復發風險之中,於是高估了復發的發生率。正確的物件是累積發生函數(cumulative incidence function),它只計算真正到達的那些復發,並把風險集被競爭事件耗竭這件事算進去。圖 29.10 呈現那道落差:一減 Kaplan-Meier 的曲線在兩組中都明顯落在累積發生函數之上,而隨著退出累積,差距還在擴大,於是報告前者的研究會高估復發的負荷。

累積發生函數對照那條錯誤的「一減 Kaplan-Meier」曲線。
圖 29.10 累積發生函數對照那條錯誤的「一減 Kaplan-Meier」曲線。

註:在每一個治療組別中,實線是把競爭的退出風險算進去的復發累積發生函數,虛線是一減 Kaplan-Meier 的估計,後者把退出當成對復發的無訊息設限。虛線落在實線之上,因為它把從未被觀察到的復發記到那些退出的病人頭上;追蹤加長、退出累積,這道差距還會擴大。有競爭風險時報告一減 Kaplan-Meier,會高估關心事件的發生率。

競爭風險這個標題底下住著兩個估計標的,回答的是不同的科學問題。病因特定危險(cause-specific hazard)是「在仍未復發且仍在照護中的人裡」復發的瞬時率,由一個把競爭的退出當成設限的 Cox 模型估出,回答的是病因學問題:一個共變項如何影響導向復發的生理歷程。Fine and Gray (1999) 的次分配危險(subdistribution hazard)則把發生了競爭事件的病人以一個遞減的權重留在風險集裡,係數於是直接對映到累積發生函數上,回答的是預後問題:在一個也會發生退出的母體中,一個共變項如何影響復發的實際機率。在 relapse 資料上,病因特定的治療對數危險是 \(-0.88\)、Fine-Gray 的次分配對數危險是 \(-0.81\),這裡很接近,因為治療對退出的影響不大;但兩者是不同的估計標的,共變項一旦會影響競爭事件就可能分歧得很厲害,表 29.5 把這一點列了出來。規則是先把問題說清楚:要機制,用病因特定;要預測、要臨床上那個累積發生率,用 Fine-Gray (Austin et al., 2016)。

表 29.5 病因特定危險與次分配危險的對照。

特徵病因特定危險次分配危險(Fine-Gray)
風險集在競爭事件發生時把那些個案移除(設限)把競爭事件的個案以遞減的權重留著
對映到仍處於風險中者之間的事件率累積發生函數
回答病因學:對「產生事件的歷程」的效果發生率/預後:對「實際機率」的效果
relapse 的組別效果\(-0.88\)(對數危險)\(-0.81\)(對數次分配危險)
何時報告研究機制;兩個病因一起建模預測絕對風險;臨床的發生率

註:兩種危險只有在共變項對競爭事件沒有效果時才會重合。既然回答的問題不同,一份完整的競爭風險分析往往兩者都報:各病因的病因特定危險用來描述機制,累積發生函數(連同 Fine-Gray 的效果)用來描述由此產生的絕對風險。

實務要點 • 罕見事件與「每變項事件數」的經驗法則

心理學的事件研究常常樣本小、事件罕見,而束縛住分析的不是樣本數,是事件數。一條廣泛使用的經驗法則要求 Cox 或離散時間模型中每一個被估計的係數至少要有十到十五個事件;低於這個數,係數不穩定,標準誤也過於樂觀。以三百人樣本、百分之七的事件率來說,只有大約二十一個事件可用,夠一到兩個共變項,不夠五個。誠實的回應有幾種:以事前指定(prespecification)減少共變項數、以懲罰化(脊(ridge)或 lasso)偏概似穩定估計、粗化成一個跨期間彙整訊息的離散時間模型,或把這份分析報告成探索性的。在二十個事件上報告一個十共變項的 Cox 模型、還把它的 \(p\) 值當真,正是這條經驗法則要防的那種失敗。

29.6 縱貫存活聯合模型

本章最後這個模型一次收攏兩個迴路。第 29.4 節那個內生的時變共變項,被留在一個不妥當的處理裡,帶著測量誤差進入危險,而它自己的軌跡沒有被建模。第 6 章那個依賴結果的退出,當時承諾了一個共享參數的處理,也一直只是一項假設。縱貫存活聯合模型(joint longitudinal-survival model)同時配適兩個次模型,並以共享的隨機效果把它們連起來,一次解決兩者。縱貫次模型就是第 13、14 章的成長模型,一個帶隨機截距與隨機斜率的重複測量混合模型。存活次模型是一個關於事件的危險模型,這裡的事件是帶訊息的退出,而它的線性預測式裡含有「生成那條軌跡的同一批隨機效果」的一個函數。兩個次模型共享那些隨機效果,於是一位病人的症狀軌跡與退出風險之間的關聯是被估計出來的,不是被忽略的,縱貫的參數也就為退出所施加的選擇作了校正。圖 29.11 畫出這個架構,並呈現它的回報。

這個關聯可以用好幾種方式參數化,而選擇本身就編碼了一項「軌跡如何驅動事件」的假設。表 29.6 把它們攤開。當下值(current-value)參數化把危險連到軌跡在每一瞬間的配適水準上,適合當下狀態最重要的情形,例如症狀水準跨過一個門檻。斜率(slope)參數化把危險連到變化率上,適合「不管水準如何、驅動事件的是惡化或改善」的情形。共享隨機效果(shared-random-effects)參數化把危險直接連到那些隨機效果上,是最精簡的選擇,把事件綁在一位病人穩定的個人傾向上。relapse 的生成歷程做成退出依賴病人的隨機斜率,惡化最快的病人最早離開,那是非隨機遺漏流失(attrition)的典範案例,而共享隨機效果參數化就是相配的模型。復發這個競爭的終端事件使完整的 relapse 資料比兩部分模型所設定的更難處理,所以這項回報改在一次把退出機制隔離出來的聚焦模擬上示範,精神與不朽時間、重複事件那兩段的獨立處理相同。

聯合模型的架構(上)與「天真對聯合」的回報(下)。
圖 29.11 聯合模型的架構(上)與「天真對聯合」的回報(下)。

註:上:縱貫(成長)次模型與存活(退出)次模型共享病人的隨機效果,軌跡與退出之間的關聯於是被建模,而不是被假設為不存在。下半部是這套做法的回報。(a) 惡化最快的病人最早退出,所以觀察到的平均軌跡(退出之後)相對於完整資料的平均軌跡變平了,那是非隨機遺漏流失的指紋。(b) 只配適觀察資料的天真混合模型,把平均惡化斜率估在 \(0.29\),低於真值 \(0.40\);共享參數的聯合模型還原出 \(0.41\),關聯參數也估在它的真值上。天真的分析低估惡化,恰恰是因為正在惡化的病人就是離開的那些人。

那份回報就是為這套做法背書的展示。在這次聚焦模擬中,母體的平均惡化斜率依構造是 \(0.40\),完整資料的混合模型把它還原在 \(0.395\)。但退出移走了惡化最快的那些人,被觀察到的軌跡於是成了一個被選擇過的樣本:只配適觀察資料的天真混合模型把斜率估在 \(0.29\),低估惡化超過四分之一,因為本來會把平均數往上拉的病人已經離開。共享參數的聯合模型把退出危險與軌跡一起配適,讓隨機斜率在兩者之間共享,斜率還原在 \(0.41\),關聯參數也估在它的真值上。這就是第 6 章承諾過的「非隨機遺漏資料的共享參數取向」的具體意義:退出不是被假設為可忽略(ignorable),而是被建模,這份建模修補了忽略它會造成的偏誤。修正的品質只跟被假設的關聯結構一樣好,而那個結構和隨機遺漏假設一樣,由觀察資料是檢驗不出來的。所以一份聯合模型分析恰當的報告方式,是把它當成一項有原則的敏感度分析(sensitivity analysis),回答「若退出以所設定的方式依賴那些隨機效果,那條軌跡會是什麼樣子」,並與假設退出不依賴的天真答案並列。

表 29.6 聯合模型中的關聯參數化。

參數化危險依賴什麼實質讀法
當下值時間 \(t\) 上配適的軌跡水準 \(m_i(t)\)當下的狀態驅動事件(跨過門檻)
斜率變化率 \(m_i'(t)\)不管水準如何,惡化或改善驅動事件
共享隨機效果直接依賴那些隨機效果 \(b_i\)穩定的個人傾向驅動事件
當下值 + 斜率水準與變化率都算水準與它的方向都重要

註:參數化是一項關於「軌跡如何與事件耦合」的科學假設,不是技術細節。它應該由理論事前選定;幾種形式都說得通時,再以訊息準則比較。relapse 的生成歷程把退出耦合到隨機斜率上,所以共享隨機效果那一種才是相配的設定。

軟體提示 • 在 R 裡配適聯合模型

配適聯合模型需要專用的軟體,因為那個概似要同時對兩個次模型的隨機效果作積分。R 裡成熟的選擇是 JM 套件與它的貝氏(Bayesian)後繼者 JMbayes2,兩者配適得了很多種關聯結構、競爭與重複事件,以及多變量的縱貫標記;joineRML 則以最大概似(maximum likelihood)處理多個縱貫結果。套件的能力與預設值會變,要查閱當前的說明文件,不要憑記憶中的介面。本章的工作範例用的是手寫的最大概似配適,對兩個隨機效果作 Gauss-Hermite 積分;單一個縱貫標記加單一個事件用它就夠,而且概似裡放了什麼一目了然。帶著好幾個標記或好幾種事件的生產分析,則屬於那些專用套件,它們的數值做法是為那個規模而建的。

29.7 報告一份存活分析

一份存活分析要報告到讓兩件事都明白的標準:設限怎麼處理,估計標的怎麼選。這正是它的效度(validity)所繫的兩項決定,也是讀者無法單從一個危險比重建出來的兩項決定。表 29.7 是那份檢核表。時間的起點與事件的定義必須精確陳述,因為危險離開它們就沒有意義。設限要描述、程度要量化,而它可能帶訊息這件事要討論,不能揮手帶過;競爭事件要點名,並以一個與問題相配的估計標的處理。用了 Cox 模型,就要檢查比例危險假設、報告檢查結果,假設不成立時還要點名補救的辦法。圖承擔論證:一張帶風險人數表的 Kaplan-Meier 或累積發生率呈現,加上一張關心之共變項效果的預測曲線呈現,傳達的是危險比表格傳達不了的東西。

表 29.7 存活分析的報告檢核表。

項目要報告什麼
時間起點與事件時鐘精確的起點與事件的定義;時間的計量(連續或離散)
設限程度(設限的百分比)、出現的種類,以及一個支持或反對無訊息性的論證
風險集樣本數、事件數,以及每變項事件數;曲線上的風險人數表
模型與估計標的離散時間、Cox 或參數化模型;危險比與區間;點名那個估計標的
比例危險作了哪一項診斷與它的結果;若違反,補救是什麼
競爭風險點名競爭事件;病因特定與/或 Fine-Gray,與問題相配
圖帶風險人數表的存活或累積發生曲線;預測曲線的呈現

註:存活分析的報告標準,圍繞著讀者無法自行驗證的那兩項決定組織起來:設限怎麼處理,以及所報告的效果瞄準哪一個估計標的。陳述時間起點、量化設限、檢查比例危險、點名競爭風險的估計標的,是最常缺席、缺席時後果也最嚴重的幾個元素。

一段依此標準寫成的 relapse 結果段落如下。四百位病人由收案起追蹤最多二十四週,其中一百八十一位(百分之四十五)復發、一百四十八位(百分之三十七)在復發之前離開照護(一個競爭事件),七十一位(百分之十八)在行政結束時仍在緩解中;中位無復發時間在控制組是十一週、在治療組是二十二週。Cox 模型估出 \(0.42\) 的治療危險比,但比例危險假設對治療不成立(Schoenfeld 檢定,\(p<.001\)),因此改把這個效果建模為時變的:治療在最初幾週強力保護(對數危險比接近 \(-1.6\)),好處到研究結束時消退為零,顯示那份保護沒有被維持。基線嚴重度提高了復發危險(每標準差危險比 \(1.44\)),效果是成比例的。把退出這個競爭風險算進去之後,二十四週時復發的累積發生率明顯低於一減 Kaplan-Meier 的估計所暗示的。縱貫存活聯合模型指出退出與較快的症狀惡化有關,所以忽略退出的成長模型會低估平均的惡化。這一段陳述了起點、量化了設限與競爭事件、點名了比例危險的違反與它的解決、區分了估計標的,也報告了非隨機遺漏的敏感度分析,而那就是本章所教的整套紀律。

本章摘要

關於事件時機的問題需要自己的一套做法,因為設限會讓每一個天真的摘要產生偏誤。設限就是研究結束時尚未發生事件者「只知道超過某個時間」的狀態:在 relapse 資料上,被觀察到之復發時間的平均數、把設限當成事件的平均數,以及拿追蹤時間去作普通迴歸,全都與 Kaplan-Meier 的中位數差得很遠。危險是核心的量,因為它只在仍處於風險中的人裡定義,因而吸收了設限,存活函數則由它累積出來。離散時間存活是心理學家的入口:個人期間檔把事件資料變成一個羅吉斯迴歸,基線危險以虛擬變項、多項式或樣條設定,共變項效果讀成危險勝算比,互補雙對數連結還原出連續時間的危險比,而一個場域隨機截距就用第 15 章的工具加上了多層次結構。在連續時間裡,Kaplan-Meier 估計式與對數等級檢定摘要並比較存活曲線,Cox 模型則透過一個讓未指定基線危險約掉的偏概似估出危險比。危險比必須讀成「以存活為條件、在存活者之間」的率比,絕不能讀成風險比,而它固不固定要以 Schoenfeld 殘差檢查;relapse 資料帶著一個植入的比例危險違反,殘差偵測得到,一個時變係數解決得了,還原出隨追蹤而消退的治療好處。時變共變項透過計數歷程資料進入模型,讓密集測量的資料流得以預報事件,但內生的共變項會被衰減,歸聯合模型管;而不朽時間偏誤,也就是把保證無事件的時間錯誤歸給一項尚未接受的暴露,會憑空製造效果,一次回傳 \(0.28\) 假危險比的虛無模擬就示範了這一點。群集以共享脆弱性處理;重複以 Andersen-Gill 或 Prentice-Williams-Peterson 模型處理,看問題要的是率還是事件次序特定的風險;競爭以累積發生函數而非一減 Kaplan-Meier 處理,病因特定危險與 Fine-Gray 危險分別回答病因學與預後的問題。縱貫存活聯合模型以共享的隨機效果把一個成長次模型與一個危險次模型連起來,交出第 6 章承諾過的、對非隨機遺漏退出的共享參數處理:退出依賴症狀斜率時,天真的成長模型會低估惡化,聯合模型把它還原了回來。報告則圍繞著讀者無法自行驗證的那兩項決定組織:設限怎麼處理,以及那些效果瞄準哪一個估計標的。

習題

  1. 29.1 天真的摘要。在 relapse 上算出三個天真摘要,也就是復發者的平均復發週、把設限當成事件的平均數,以及把追蹤時間對治療組別作的最小平方迴歸,再對照 Kaplan-Meier 的中位十八週;用圖 29.1 逐一指出每個摘要丟掉了哪些人、又捏造了什麼。
  2. 29.2 離散時間實作。把 relapse 展開成個人期間檔,以 glm 配適自然樣條基線的危險模型,檢查治療與嚴重度的係數在表 29.2 的三種基線設定下穩不穩定;再以 glmer 加上場域隨機截距,畫出圖 29.4 那樣的預測曲線,並寫出一段結果。
  3. 29.3 消退的好處。重現圖 29.6 的診斷,說明治療的縮放後 Schoenfeld 殘差為什麼往上斜,再由表 29.3 挑一項補救配適時變係數,並用文字把「單一危險比」與「時變危險比」這兩個估計標的對照清楚。
  4. 29.4 競爭風險對照。在 relapse 上同時估病因特定危險與 Fine-Gray 次分配危險,依表 29.5 說出兩者各回答什麼問題;再用圖 29.10 向一位臨床合作者解釋,為什麼一減 Kaplan-Meier 會高估復發的負荷,而危險比也不能讀成風險比。
  5. 29.5 存活報告稽核。取一篇用 Cox 模型的已發表追蹤論文,依表 29.7 逐項稽核,特別看它有沒有量化設限、檢查比例危險、點名競爭事件;若它以「曾否接受某項治療」分組,就評估圖 29.8 那種不朽時間偏誤的風險,並寫出審查意見。
  6. 29.6 退出與聯合。重現第 29.6 節的聚焦模擬,確認天真混合模型把惡化斜率估在 \(0.29\)、聯合模型還原到 \(0.41\),並依表 29.6 說明共享隨機效果為什麼是相配的參數化;再接回第 6 章的非隨機遺漏,說明它該報告成敏感度分析。

本章重要名詞中英對照

中文English說明/首次出現處
設限censoring事件時間只知道落在觀察窗之外(承第 24 章);第 29.1 節
無訊息設限noninformative censoring設限機制不帶關於危險的額外訊息;隨機遺漏的表親;第 29.1 節
存活函數survivor function\(S(t)=P(T>t)\),到 \(t\) 為止尚未發生事件的機率;第 29.1 節
危險hazard在仍處於風險中的人裡發生事件的條件率或條件機率;第 29.1 節
風險集risk set某一瞬間仍未發生事件且仍在觀察中的那群人;第 29.1 節
個人期間檔person-period file每人每一個處於風險中的期間各一列;把存活變成羅吉斯迴歸;第 29.2 節
基線危險baseline hazard共變項在參照值時風險跨各期的形狀;第 29.2 節
互補雙對數連結complementary log-log link與底層連續時間比例危險相容的離散時間連結;第 29.2 節
偏概似partial likelihoodCox 的概似,基線危險在其中約掉;第 29.3 節
危險比hazard ratio危險的比值;不是風險比(risk ratio)(承第 15 章);第 29.3 節
不朽時間偏誤immortal-time bias把保證無事件的時間錯誤歸給尚未接受的暴露;第 29.4 節
共享脆弱性shared frailty群集內共有的、乘在危險上的潛在因子;第 29.5 節
累積發生函數cumulative incidence function把競爭事件算進去的事件累積機率;第 29.5 節
次分配危險subdistribution hazardFine-Gray 的危險,直接對映到累積發生函數;第 29.5 節

參考文獻

Allison, P. D. (1982). Discrete-time methods for the analysis of event histories. Sociological Methodology, 13, 61–98. https://doi.org/10.2307/270718

Andersen, P. K., & Gill, R. D. (1982). Cox’s regression model for counting processes: A large sample study. The Annals of Statistics, 10(4), 1100–1120. https://doi.org/10.1214/aos/1176345976

Austin, P. C., Lee, D. S., & Fine, J. P. (2016). Introduction to the analysis of survival data in the presence of competing risks. Circulation, 133(6), 601–609. https://doi.org/10.1161/CIRCULATIONAHA.115.017719

Cox, D. R. (1972). Regression models and life-tables. Journal of the Royal Statistical Society: Series B (Methodological), 34(2), 187–202. https://doi.org/10.1111/j.2517-6161.1972.tb00899.x

Fine, J. P., & Gray, R. J. (1999). A proportional hazards model for the subdistribution of a competing risk. Journal of the American Statistical Association, 94(446), 496–509. https://doi.org/10.1080/01621459.1999.10474144

Grambsch, P. M., & Therneau, T. M. (1994). Proportional hazards tests and diagnostics based on weighted residuals. Biometrika, 81(3), 515–526. https://doi.org/10.1093/biomet/81.3.515

Henderson, R., Diggle, P., & Dobson, A. (2000). Joint modelling of longitudinal measurements and event time data. Biostatistics, 1(4), 465–480. https://doi.org/10.1093/biostatistics/1.4.465

Hernán, M. A. (2010). The hazards of hazard ratios. Epidemiology, 21(1), 13–15. https://doi.org/10.1097/EDE.0b013e3181c1ea43

Hougaard, P. (2000). Analysis of multivariate survival data. Springer. https://doi.org/10.1007/978-1-4612-1304-8

Kaplan, E. L., & Meier, P. (1958). Nonparametric estimation from incomplete observations. Journal of the American Statistical Association, 53(282), 457–481. https://doi.org/10.1080/01621459.1958.10501452

Muthén, B., & Masyn, K. (2005). Discrete-time survival mixture analysis. Journal of Educational and Behavioral Statistics, 30(1), 27–58. https://doi.org/10.3102/10769986030001027

Prentice, R. L., Williams, B. J., & Peterson, A. V. (1981). On the regression analysis of multivariate failure time data. Biometrika, 68(2), 373–379. https://doi.org/10.1093/biomet/68.2.373

Rizopoulos, D. (2010). JM: An R package for the joint modelling of longitudinal and time-to-event data. Journal of Statistical Software, 35(9), 1–33. https://doi.org/10.18637/jss.v035.i09

Rizopoulos, D. (2012). Joint models for longitudinal and time-to-event data: With applications in R. Chapman & Hall/CRC.

Singer, J. D., & Willett, J. B. (1991). Modeling the days of our lives: Using survival analysis when designing and analyzing longitudinal studies of duration and the timing of events. Psychological Bulletin, 110(2), 268–290. https://doi.org/10.1037/0033-2909.110.2.268

Singer, J. D., & Willett, J. B. (1993). It’s about time: Using discrete-time survival analysis to study duration and the timing of events. Journal of Educational Statistics, 18(2), 155–195. https://doi.org/10.3102/10769986018002155

Singer, J. D., & Willett, J. B. (2003). Applied longitudinal data analysis: Modeling change and event occurrence. Oxford University Press.

Stoolmiller, M., & Snyder, J. (2006). Modeling heterogeneity in social interaction processes using multilevel survival analysis. Psychological Methods, 11(2), 164–177. https://doi.org/10.1037/1082-989X.11.2.164

Suissa, S. (2008). Immortal time bias in pharmacoepidemiology. American Journal of Epidemiology, 167(4), 492–499. https://doi.org/10.1093/aje/kwm324

Sylvestre, M.-P., Huszti, E., & Hanley, J. A. (2006). Do Oscar winners live longer than less successful peers? A reanalysis of the evidence. Annals of Internal Medicine, 145(5), 361–363. https://doi.org/10.7326/0003-4819-145-5-200609050-00009

Therneau, T. M., & Grambsch, P. M. (2000). Modeling survival data: Extending the Cox model. Springer. https://doi.org/10.1007/978-1-4757-3294-8

Willett, J. B., & Singer, J. D. (1995). It’s déjà vu all over again: Using multiple-spell discrete-time survival analysis. Journal of Educational and Behavioral Statistics, 20(1), 41–67. https://doi.org/10.3102/10769986020001041

引用本章

APA 第 7 版沒有「單一作者專書之章」這個文獻類型:正式的參考文獻指向整本書,章次寫在內文引用裡。若您要讓引用直接連到本章這一頁,再採用下方第二組(依 APA 的網站文件格式)。

引用全書、於內文指明章次(建議)

內文(游琇婷,2026,第 29 章) 或 游琇婷(2026,第 29 章)
參考文獻游琇婷(2026)。《變化的分析:社會科學的縱貫、密集縱貫與動態資料分析》(繁體中文網頁版)。https://hsiutingyu.github.io/LDA-book-zh-V2/

只引用本章這一頁

參考文獻游琇婷(2026)。第 29 章 存活分析與事件史分析。載於《變化的分析:社會科學的縱貫、密集縱貫與動態資料分析》(繁體中文網頁版)。https://hsiutingyu.github.io/LDA-book-zh-V2/LDA_C_Chapter29.html

英文稿件中引用

APA 第 7 版第 9.38 節:非英文著作保留原文題名,並於方括號內附英文翻譯。

ReferenceYu, H.-T. (2026). 變化的分析:社會科學的縱貫、密集縱貫與動態資料分析 [Analyzing change: Longitudinal, intensive longitudinal, and dynamic data analysis for the social sciences] (Traditional Chinese web edition). https://hsiutingyu.github.io/LDA-book-zh-V2/
In text(Yu, 2026, Chapter 29)