題目與情境
分析取消、復發或設備故障等事件發生前的時間。觀察截止時仍活躍的使用者不知道真實事件時間,這是右設限,不是零值,也不是失敗事件。
面試官考察什麼
- 正確記錄觀察時間與事件指示變數。
- 解釋 Kaplan–Meier 風險集合,以及設限為何只影響之後的風險集合。
- 判斷何時使用 Cox 比例風險模型或競爭風險分析。
作答前的釐清問題
- 事件、起點和觀察截止點各是什麼?
- 在已觀測共變數條件下,設限是否可能與未來事件時間獨立?
- 升級等事件是否會阻止取消訂閱?
- 目標是描述留存、比較群組,還是估計因果效果?
30 秒回答框架
我會保存 duration 與 event,讓右設限使用者在最後一次觀測前留在風險集合,用 Kaplan–Meier 估計存活曲線。比較群組時先定義指標並給出信賴區間;檢查比例風險假設後才使用 Cox。若存在改變事件路徑的競爭事件,就報告原因特異風險或累積發生率,不把競爭事件靜默當作普通設限。
分步深入
1. 編碼觀測結果
記錄從統一起點到事件或最後一次追蹤的時間,只有事件確實發生時才設 event = 1。第 30 天仍活躍的使用者在第 30 天右設限;資料不能聲稱他之後取消。
2. 建立 Kaplan–Meier 估計
在每個事件時間,用事件數除以前一刻仍在風險集合中的人數,得到條件存活比例,再將各時間比例相乘形成階梯曲線。設限記錄不會形成事件階梯,只會改變後續風險集合。NIST 將此稱為適用於完整樣本與設限樣本的乘積極限程序。
3. 說明設限假設
若流失使用者的未來風險有系統地不同,右設限就是資訊性設限。Kaplan–Meier 需要在分析假設下設限與事件時間獨立,也可以是在已測共變數條件下獨立。按群組與時間檢查設限率和原因;假設可疑時使用設限逆機率加權或敏感度情境。
4. 謹慎比較群組
預先指定 30/90 天存活率、限制平均存活時間,或只在曲線達到 0.5 時報告中位數。曲線交叉時,強調整體差異的 log-rank 檢定可能不適合。展示風險人數、信賴帶和絕對差異,不只給 p 值。
5. 用 Cox 回歸加入共變數
Cox 模型在比例風險假設下估計風險比。檢查時間變化效果與殘差;單一風險比不等於固定的存活機率差。假設不成立時,可加入時間交互、分層、加速失效模型,或報告不同時間點的效果。
高品質示範回答
「我會先定義取消事件、起點、截止點和事件標記。仍活躍的使用者在最後觀測時右設限,因此在此之前繼續進入風險集合。我會畫 Kaplan–Meier 曲線,展示風險人數與信賴區間,報告 30/90 天存活率或限制平均存活時間,並檢查各群組的設限差異。檢查比例風險假設後再用 Cox;若升級會阻止取消,就把它當競爭事件並報告累積發生率。」
常見誤區
- 把所有活躍使用者標為失敗 → 留存被低估 → 使用事件標記並在最後觀測時右設限。
- 刪除設限使用者 → 風險集合產生選擇偏差 → 保留其設限前的觀測貢獻。
- 曲線未到 0.5 仍報告中位數 → 統計量沒有定義 → 報告固定時間點或限制平均存活時間。
- 把 Cox 風險比當機率比 → 兩者含義不同 → 翻譯成具體時間點的效果。
追問與回答
設限使用者貢獻了什麼?
貢獻設限前的人時,並在該時刻前保持於風險集合。之後沒有觀測證據判斷事件是否發生。
競爭事件何時不能當設限?
若升級永久阻止取消,把升級設限會高估取消機率。病因問題可用原因特異風險;機率問題應使用累積發生率。
曲線交叉怎麼辦?
log-rank 和單一比例風險比可能掩蓋交叉形狀。展示曲線,報告限制平均存活時間或固定時間差異,並建模時間變化效果。