Stata詳細教程:Cox回歸和比例風險假定檢驗
在上一期的《手把手教Stata生存分析》中,我們一起學習了使用Stata進行Kaplan-Meier曲線的繪製以及Log-rank檢驗的方法。作為最基本的生存分析工具之一,K-M曲線可以讓我們對於兩組或多組患者的生存率、死亡率進行直觀的比較,Log-rank檢驗也可以讓我們得到統計學上的相應證據。
然而,作為一種非參數估計方法,K-M方法不能控制潛在的混雜因素對於結局事件的影響,也不能讓我們看出某一種因素(例如患者性別、年齡)是否是結局發生的獨立因素之一。
今天,我們就一起來學習如何使用Stata進行Cox回歸分析以及比例風險假定(Proportional hazard assumption, PH假定)的檢驗。
1. 問題與數據
問題:在一個抗癌藥物的臨床試驗中,48名患者被隨機分配到新葯組(28人)和安慰劑組(20人),研究人員想知道新葯是否影響患者的生存情況。
數據:我們這次仍然使用上次使用的癌症藥物臨床試驗的數據集。請大家在command對話框中輸入「webuse drugtr」以調入這個數據集。
上次我們已經進行過了數據的初步觀測、將數據轉化為生存數據格式。如果不了解如何操作,請參考上一期的文章。今天,我們直接開始Cox回歸分析。
2. Cox回歸
Step 1:通過Statistics > Survival analysis > Regression models > Cox proportional hazards model找到操作的對話框。
Step 2:選項設置。
由於我們已經在一開始將數據轉化為生存數據的時候指定過終點事件、時間變數,我們在這裡只需要設置需要在回歸方程中控制的變數即可。例如,我們想看drug對於生存的影響,便在Independent variables的下拉菜單中選擇drug,點擊OK。
屏幕上出現結果:
我們可以看到,Drug變數的Hazard Ratio (風險比) 是0.133,95%置信區間為0.056至0.314。這說明和Drug=0 (安慰劑組) 相比,Drug=1 (新葯) 可顯著降低終點事件 (died=1) 發生的風險 (p
然而,在這個模型中,我們沒有調整其他的混雜因素。研究人員思考,有沒有可能患者的年齡也是終點事件發生的一個獨立危險因素呢? 為了解決這個問題,我們可以把age也納入cox回歸的模型。
得到的結果如下:
我們可以看到,drug變數的風險比變成了0.105 (95% CI: 0.043, 0.256), age變數的風險比為1.120 (95% CI: 1.041, 1.205)。我們得出結論:
1)在控制了患者年齡後,和安慰劑相比,新葯可顯著降低終點事件發生的風險 (p
2)患者年齡是終點事件發生的獨立危險因素。在控制了治療方法後,患者年齡每增加1歲,發生終點事件的風險增加到原來的1.120倍(p=0.002)。
3. PH假定的檢驗
在cox回歸之後,我們需要檢驗模型是否滿足PH假定。通過Statistics > Survival analysis > Regression models > Test proportional-hazards assumption找到操作的對話框。
我們選擇默認的Schoenfeld Residuals方法,點擊OK。屏幕上出現結果如下:
請注意,PH假定的檢驗基於上一步cox回歸納入的變數。如果上一步沒有進行cox回歸分析,屏幕上會顯示「last estimates not found」的錯誤代碼。
在這個例子中,在stcox drug age這個命令後,我們進行了PH假定的檢驗。該檢驗的零假設是納入Cox回歸模型的變數滿足PH假定(drug變數和age變數滿足PH假定),因為p=0.8064,大於0.05,不能拒絕零假設。因此,PH假定成立。
我們也可以通過圖像直觀地觀測某個變數是否滿足PH假定,更加直觀地在論文中中展現結果。不同於上述的檢驗方法,在使用圖像展示時,我們只能看某一個變數是否滿足PH假定(我們可以控制其他變數,下文提到)。
我們可以通過Statistics > Survival analysis > Regression models > Graphically assess proportional-hazards assumption找到操作的對話框。我們在Independent variable 這裡選擇drug, 看一看drug是否滿足PH假定。點擊OK。
我們可以看到在下圖中,在任何一個時間節點上,drug=1幾乎都是平行於drug=2的線,因此PH假定成立。
在這個例子中,如果我們勾選上對話框中的「adjust estimates」,便可以控制其他一個或多個變數,然後看drug變數是否滿足PH假定。
4. 其他注意事項
1)所有對話框操作均可通過command實現
cox回歸的命令:cox var1 var2 var3
解釋:在這個命令中,var是自變數名字。請注意,cox回歸中不需要指定因變數(y變數),因為我們在stset時已經指定過結局變數了 (請參考上期推送)
檢驗PH假定的命令:estat phtest
解釋:請注意,這個命令需要緊跟在cox回歸的命令之後,否則Stata不知道檢驗哪個回歸的PH假定。
繪製PH假定圖像的命令:stphplot, by(var1) adjust(var2)
解釋:var1是自變數名,var2是希望控制的變數。注意,這個命令不一定要跟在cox回歸之後。
2)我們也可以在回歸模型中控制更多的危險因素。如果選擇將哪些危險因素放入模型可以參考我們之前的文章:SPSS詳細操作:生存資料的Cox回歸分析
3)如果某變數不滿足PH假定,我們則應當將變數放入Strata框中進行分層變數控制。我們可以在Cox回歸的對話框中選擇需要分層的變數。
4)在解讀結果時,一定要強調3點:
控制了哪些變數? (e.g. 在控制了患者年齡、性別後…)
和誰比? (e.g. 和安慰劑相比,治療組…; 和體重正常的人比,超重的人…)
量化 (給出95%置信區間、p值)
各位夥伴,我們打算推出Stata系列視頻課程,初步預定一周一期,每期視頻5分鐘。從Stata入門知識講起,到基本統計方法和作圖方法,再到回歸分析、生存分析等等。我們力爭提供一個全面系統的Stata手把手教程,幫助大家掌握這款軟體,提高科研效率!對此課程有任何想法,請記得在下方留言哦。
醫咖會微信:medieco-ykh
關注醫咖會,輕鬆學習統計學~
※BMJ:常值夜班?快來看優化睡眠的5大建議!
※厲害了!百位作者藉助Google Docs合作撰文討論P值問題
TAG:醫咖會 |