列線圖作為一個非常簡單明了的臨床輔助決策工具,在臨床中用的(發(fā)文章的)還是比較多的,尤其是腫瘤預后:
找個公開數(shù)據(jù)庫做生存分析出個列線圖,然后出個文章是很多臨床同學可以依賴的較容易的實現(xiàn)路徑,之前有給大家介紹過列線圖,今天開始再給大家比較詳細地寫寫生存分析列線圖系列,希望可以對大家有幫助。 理解列線圖要弄明白生存分析的列線圖的出圖邏輯。我們首先來回顧下cox模型究竟是擬合是什么東西,看下圖: 在基礎(chǔ)風險確定后,乘上以e為底數(shù)的指數(shù)函數(shù)(我們關(guān)心的協(xié)變量的線性部分是在指數(shù)上)就可以得到風險函數(shù)(為什么能這么做就涉及到比例風險假設(shè))。通過線性部分的指數(shù)函數(shù)和基礎(chǔ)風險我們cox模型最終得到的是hazard function。 通過hazard function我們可以得到hazard rate,但是對于臨床應(yīng)用來講,臨床醫(yī)師關(guān)心的東西更直觀,他們關(guān)心的是具體協(xié)變量條件下個體的生存概率,畫出的列線圖常常如下面所示: 列線圖中的結(jié)局常常是某個時間點的生存概率,這就要求我們在統(tǒng)計處理上做出轉(zhuǎn)換。就是將風險函數(shù)轉(zhuǎn)換成生存函數(shù)進而得到預測的生存概率。 接下來我們就來詳細地過一遍實操重點。 本文中涉及到的文獻圖片和方法描述均來自JAMA Surg雜志的文章,文章引用如下:
變量選擇首先看變量篩選,經(jīng)常我們用來做模型的數(shù)據(jù)庫中有很多變量,列線圖作為一個臨床應(yīng)用工具,變量肯定是越少越好的(讓醫(yī)生算分算半個多小時總分總是不合適推廣的嘛,雖然大家做論文都不關(guān)心臨床轉(zhuǎn)換,但是還要有這個意識比較好),所以必須精選,這篇文章用到的方法叫做Backward stepwise selection:
我看生存分析列線圖的文章這個方法用得還是比較普遍的哈,基本都是單變量篩過之后再來個stepwise selection: 整體這個方法在R中操作也是非常方便的,像rms包中專門就有fastbw函數(shù)進行倒退法的逐步篩選。 可以用aic為標準,也可以用p值為標準進行篩,很方便的。 用生存分析模型出列線圖首先明確,同學們不要再稱呼“列線圖模型”了,列線圖只是具體模型的可視化、工具化表示,他本身不是模型。模型本身具體要看你到底做的是什么統(tǒng)計模型,比如邏輯模型,比如線性回歸模型,再比如今天寫的COX模型,這個才叫模型。
好多同學問我能不能幫忙做一個列線圖模型,其實這種表達我是摸不著頭腦的。 出列線圖,首先要確定內(nèi)在的統(tǒng)計模型,比如今天寫生存數(shù)據(jù)的列線圖,我就要先做一個COX模型,然后再借助nomogram函數(shù)出圖,這個函數(shù)的參數(shù)很多,下圖只是部分參數(shù): 可以看到這個函數(shù)需要的第一個參數(shù)就是一個做好的模型fit。具體到生存分析的列線圖,我們就需要先跑一個cox模型出來,然后對跑模型的數(shù)據(jù)集d進行下面的操作:
生存分析的列線圖需要調(diào)節(jié)的地方可以有很多。 比如我們做一個生存分析,在nomogram函數(shù)中不設(shè)定任何參數(shù)直接去出列線圖的話,出出來的圖是這樣的: 圖中只會有cox模型線性部分的預測值,這個時候我們需要將線性預測值轉(zhuǎn)換為生存概率才符合臨床應(yīng)用實際,就像下圖發(fā)表中的文獻一樣: 此時要做的就是進行風險函數(shù)和生存概率函數(shù)的轉(zhuǎn)換。我們需要設(shè)定轉(zhuǎn)換的代碼如下:
通過上面的代碼我們就可以將cph函數(shù)擬合出來的風險函數(shù)轉(zhuǎn)換成生存函數(shù),從而在列線圖的繪制中我們可以規(guī)定顯示具有臨床意義的時間點的某個個體的生存概率。比如我想得到3年和6年的生存概率為結(jié)局的列線圖,我就可以寫出如下代碼:
上面的代碼中f是cph對象,fun中給定的就是將線性預測值轉(zhuǎn)換成生存概率的函數(shù),運行代碼即可出圖如下: 并且針對nomogram可以做很多的個性化的修飾,比如lp參數(shù)可以控制是否顯示線性預測值的打分軸,lp.at和fun.at可以控制線性預測值打分軸和轉(zhuǎn)換函數(shù)顯示的點。比如對于上圖,我希望線性預測值的軸只顯示0到4的點,我就可以寫參數(shù):
就可以實現(xiàn)。 還有,有時候我們分類變量的水平比較多,名字比較長,我們可能會將abbrev參數(shù)設(shè)定為TRUE來縮略顯示長度,比如你注意下面的圖和上面的在sex水平上的顯示區(qū)別就是因為我們將abbrev參數(shù)設(shè)定為了T: 我們還可以很方便地改變列線圖的軸標簽,只需要將變量打上我們想要的標簽,比如將兩個變量標簽分別設(shè)定為“關(guān)注”和“Codewar”后,將下面的參數(shù)在nomogram函數(shù)中設(shè)定一下:
運行后查看效果: 對于上面的列線圖,我可能還覺得我們的圖軸和標簽離得有點遠,這個時候我就可以將xfrac設(shè)定小一點比如我設(shè)定為0.2,這個時候圖就會緊湊很多;我們還可以通過tcl參數(shù)設(shè)定軸的刻度標線的長度,比如我設(shè)定為1,這時候圖的刻度線就會變長,讀圖就會更輕松。
參數(shù)像上面設(shè)定后,我們的圖就如下所示: 調(diào)了一下還是蠻有效果的哈,但是我還是不滿意,看人家jama的列線圖,背景色都有,淡淡的藍色顯得就很高級,這個操作大家只需要在出圖前設(shè)定:
然后再plot效果就有了: 這下一看就是高分雜志的的圖,背景色中的aliceblue你也可以任意改成你喜歡的顏色。 nomogram函數(shù)還有很多的參數(shù)可調(diào),一篇文章肯定是寫不完的,其余的調(diào)節(jié)功能留給大家自己探索了吧。 接下來寫讀圖的部分。 學會讀圖為了更加的加深大家對模型本身和列線圖這個可視化工具的區(qū)別的理解,我們今天帶大家結(jié)合cox模型來讀cox模型的列線圖。 首先我們學會讀線性預測值,首先再一次回憶模型的表達: 線性部分就是表達式中指數(shù)函數(shù)的指數(shù)部分,比如我現(xiàn)在跑了一個cox模型結(jié)果如下: 那么我知道age的線性系數(shù)0.0419,sex中male的線性系數(shù)是-0.5975 ,所以我們的模型對一個10歲的男性線性部分預測值就應(yīng)該為10*0.0419-0.5975=-0.178,回到我們這個模型的列線圖中 回到列線圖:我們可以看到10歲的得分是0分,男性得分為0,總分0分,對應(yīng)的線性預測值大概也為-0.18(大家可以用尺子比個大概哈),達成一致。 我們再看生存概率的讀法,比如對于一個100歲的男人來講,依照下面的列線圖,她的年齡得分應(yīng)該是100,性別得分是0,總分是100,對應(yīng)的3年的生存概率應(yīng)該大約是0.62(大家可以用把尺子比對下哈): 然后我們出列線圖的內(nèi)在模型再一次驗證,我們用predictSurvProb函數(shù),將新數(shù)據(jù)設(shè)定為1個100歲的男性,times設(shè)定為3,用原來的cox模型預測出來的生存概率確實也是0.627。依然達成一致。 上面就是讀圖方法與模型結(jié)果的相互驗證,希望能夠進一步加深列線圖只是模型的可視化的表示這一概念的理解。 好了,今天的文章重點就放在列線圖出圖上,文章中還有報告決策曲線和校準曲線,C指數(shù)等下一次再給大家詳細寫。 小結(jié)今天給大家寫了生存分析列線圖的比較詳細的做法說明和讀圖驗證方法,希望大家有一個唯一的收獲就是理解列線圖只是模型表達方式,不是具體模型。感謝大家耐心看完,自己的文章都寫的很細,重要代碼都在原文中,希望大家都可以自己做一做,請轉(zhuǎn)發(fā)本文到朋友圈后私信回復“數(shù)據(jù)鏈接”獲取所有數(shù)據(jù)和本人收集的學習資料。如果對您有用請先記得收藏,再點贊分享。 也歡迎大家的意見和建議,大家想了解什么統(tǒng)計方法都可以在文章下留言,說不定我看見了就會給你寫教程哦,有疑問歡迎私信,有合作意向請直接滴滴我。 如果你是一個大學本科生或研究生,如果你正在因為你的統(tǒng)計作業(yè)、數(shù)據(jù)分析、模型構(gòu)建,科研統(tǒng)計設(shè)計等發(fā)愁,如果你在使用SPSS, R,Mplus中遇到任何問題,都可以聯(lián)系我。因為我可以給您提供最好的,最詳細和耐心的數(shù)據(jù)分析服務(wù)。 如果你對Z檢驗,t檢驗,方差分析,多元方差分析,回歸,卡方檢驗,相關(guān),多水平模型,結(jié)構(gòu)方程模型,中介調(diào)節(jié),量表信效度等等統(tǒng)計技巧有任何問題,請私信我,獲取詳細和耐心的指導。 如果你或你的團隊需要專業(yè)的科研數(shù)據(jù)清洗,建模服務(wù),教學培訓需求等等。請聯(lián)系我。 If you are a student and you are worried about you statistical #Assignments, #Data #Analysis, #Thesis, #Reports, #Composing, #Quizzes, Exams.. And if you are facing problem in #SPSS, #R-Programming, #Excel, Mplus, then contact me. Because I could provide you the best services for your Data Analysis. Are you confused with statistical Techniques like z-test, t-test, ANOVA, MANOVA, Regression, Logistic Regression, Chi-Square, Correlation, Association, SEM, multilevel model, mediation and moderation etc. for your Data Analysis...?? Then Contact Me. I will solve your Problem... If You or Your Research Team Need Professional Scientific Data Cleaning, Model Building Services or Statistical Consulting... Please Contact Me. 往期精彩R數(shù)據(jù)分析:PLS結(jié)構(gòu)方程模型介紹,論文報告方法和實際操作 R數(shù)據(jù)分析:如何計算問卷的組合信度,實例操練 R數(shù)據(jù)分析:如何做數(shù)據(jù)的非線性關(guān)系,多項式回歸的做法和解釋 R數(shù)據(jù)分析:跟隨top期刊手把手教你做一個臨床預測模型 R數(shù)據(jù)分析:變量間的非線性關(guān)系,多項式,樣條回歸和可加模型 R數(shù)據(jù)分析:鳶尾花數(shù)據(jù)集的聚類分析實操 R數(shù)據(jù)分析:潛類別軌跡模型LCTM的做法,實例解析 R文本挖掘:中文詞云生成,以2021新年賀詞為例 R機器學習:分類算法之判別分析LDA,QDA的原理與實現(xiàn) R語言作圖:分類變量與連續(xù)變量關(guān)系的圖形化表達 R數(shù)據(jù)分析:如何用層次聚類分析做“癥狀群”,實例操練 R數(shù)據(jù)分析:孟德爾隨機化中介的原理和實操 R數(shù)據(jù)分析:獨立樣本t檢驗的統(tǒng)計效能和樣本量的計算 R機器學習:重復抽樣在機器學習模型建立過程中的地位理解 R數(shù)據(jù)分析:cox模型如何做預測,高分文章復現(xiàn) R數(shù)據(jù)分析:用lme4包擬合線性和非線性混合效應(yīng)模型 R數(shù)據(jù)分析:如何用mice做多重插補,實例解析 R數(shù)據(jù)分析:工具變量回歸與孟德爾隨機化,實例解析 R數(shù)據(jù)分析:廣義估計方程式GEE的做法和解釋 R數(shù)據(jù)分析:潛類別軌跡模型LCTM的做法,實例解析 R數(shù)據(jù)分析:生存分析與有競爭事件的生存分析的做法和解釋 R數(shù)據(jù)分析:潛變量與降維方法(主成分分析與因子分析) R數(shù)據(jù)分析:如何給結(jié)構(gòu)方程畫路徑圖,tidySEM包詳解 R機器學習:樸素貝葉斯與支持向量機的原理與實現(xiàn) R數(shù)據(jù)分析:孟德爾隨機化分析文獻解析和實例操練 R數(shù)據(jù)分析:混合效應(yīng)模型的可視化解釋,再不懂就真沒辦法 R數(shù)據(jù)分析:縱向分類結(jié)局的分析-馬爾可夫多態(tài)模型的理解與實操 R數(shù)據(jù)分析:如何用lavaan包做結(jié)構(gòu)方程模型,實例解析 R數(shù)據(jù)分析:潛增長模型LGM的做法和解釋,及其與混合模型對比 R數(shù)據(jù)分析:論文中的軌跡的做法,潛增長模型和增長混合模型 R數(shù)據(jù)分析:跟隨top期刊手把手教你做一個臨床預測模型 R機器學習:分類算法之logistics回歸分類器的原理和實現(xiàn) R數(shù)據(jù)分析:嵌套數(shù)據(jù)分析為什么要用加隨機效應(yīng)?終于解釋清楚了 R數(shù)據(jù)分析:二分類因變量的混合效應(yīng),多水平logistics模型介紹 R數(shù)據(jù)分析:結(jié)合APA格式作圖大法講講ggplot2和ggsci,請收藏 R數(shù)據(jù)分析:用R建立預測模型 R數(shù)據(jù)分析:再寫stargazer包,如何輸出漂亮的表格 R數(shù)據(jù)分析:做量性研究的必備“家伙什”-furniture包介紹 R數(shù)據(jù)分析:ROC曲線與模型評價實例 R數(shù)據(jù)分析:用R語言做潛類別分析LCA R數(shù)據(jù)分析:變量間的非線性關(guān)系,多項式,樣條回歸和可加模型 Mplus數(shù)據(jù)分析:性別差異gendergap的相關(guān)研究如何做? R數(shù)據(jù)分析:Lasso回歸篩選變量構(gòu)建Cox模型并繪制列線圖 R數(shù)據(jù)分析:結(jié)合APA格式作圖大法講講ggplot2和ggsci,請收藏 R數(shù)據(jù)分析:跟隨top期刊手把手教你做一個臨床預測模型 R數(shù)據(jù)分析:嵌套數(shù)據(jù)分析為什么要用加隨機效應(yīng)?終于解釋清楚了 R數(shù)據(jù)分析:PLS結(jié)構(gòu)方程模型介紹,論文報告方法和實際操作 R機器學習:分類算法之logistics回歸分類器的原理和實現(xiàn) |
|
來自: CodewarCodewar > 《待分類》