survival包學(xué)習(xí)筆記——cox回歸(二)

上一篇關(guān)注單因素多因素cox模型的構(gòu)建并在lung數(shù)據(jù)集中進行了實戰(zhàn)
survival包學(xué)習(xí)筆記——cox回歸(一) - 簡書 (jianshu.com)
接下來我們繼續(xù)上一篇談一談如何評價我們構(gòu)建的模型,并且進一步可視化回歸結(jié)果蚂夕。

一来吩、函數(shù)介紹

上篇我們已經(jīng)介紹了cox回歸的一大函數(shù)凉倚,survival包中的coxph函數(shù),今天我們來說說另一自產(chǎn)自銷的函數(shù)买置,rms::cph

cph(formula = formula(data), data=environment(formula),
weights, subset, na.action=na.delete,
method=c("efron","breslow","exact","model.frame","model.matrix"),
singular.ok=FALSE, robust=FALSE,
model=FALSE, x=FALSE, y=FALSE, se.fit=FALSE,
linear.predictors=TRUE, residuals=TRUE, nonames=FALSE,
eps=1e-4, init, iter.max=10, tol=1e-9, surv=FALSE, time.inc,
type=NULL, vartype=NULL, debug=FALSE, ...)
formula: 公式與coxph一致角寸,使用Surv包裝一下于未。Surv(time, status) ~ 變量
data:數(shù)據(jù)集
x:默認值為 FALSE。設(shè)置為 TRUE 可將擴展的design matrix作為返回的擬合對象的元素 x
y:默認值為 FALSE蒸苇。設(shè)置為 TRUE 以返回響應(yīng)值的向量(Surv 對象)作為擬合的元素 y

二磷蛹、如何評價模型?

1. 區(qū)分度評價指標:C指數(shù)(C-Index)溪烤,重新分類指數(shù)(Net reclassification index味咳,NRI)
2. 一致性評價指標:校正曲線(Calibration plot)
3. 臨床有效性評價指標:決策分析曲線(Decision Curve Analysis庇勃, DCA)

C指數(shù): survival::coxph函數(shù)構(gòu)建模型后自動計算,校正曲線和DCA都是通過rms構(gòu)建的

1槽驶、Concordance index:

在使用survival::coxph時责嚷,C指數(shù)倒是不需要再求,summary一下擬合模型就可以看到:

image.png

或者
image.png

一般而言掂铐,我們將0.51-0.7認為是低可信度罕拂,0.71-0.9為中等可信度,> 0.9為高可信度

2全陨、校正曲線(Calibration plot)

【參考】
臨床預(yù)測模型列線圖的評估:校準曲線 - 簡書 (jianshu.com)
calibration_curve(校準曲線): 分類模型可視化技術(shù)之一 - 知乎 (zhihu.com)

模型構(gòu)建完成后需要對模型進行評估和驗證其性能爆班。模型預(yù)測的生存率與實際的差距有多大呢?一般是看校準曲線辱姨。

例:一個模型(其C指數(shù)為0.8)評估某位患者5年復(fù)發(fā)率為70%柿菩。說明該模型有80%的把握確認復(fù)發(fā)率=70%。那70%這個數(shù)與實際相差有多大呢炮叶,那就需要看校準曲線了碗旅。

從這個例子可以看出,C指數(shù)或AUC值是判斷模型的區(qū)分能力的镜悉,即有多大把握預(yù)測復(fù)發(fā)率為70%祟辟,而校準曲線是看與預(yù)測與實際相符程度的,即預(yù)測的這個70%復(fù)發(fā)率與實際復(fù)發(fā)率有多大差別侣肄。

3旧困、決策分析曲線(Decision Curve Analysis, DCA)

【參考】
決策曲線分析法(Decision Curve Analysis稼锅,DCA)曲線 | Public Library of Bioinformatics (plob.org)
手把手教你用R畫列線圖(Nomogram)及解讀結(jié)果 - 知乎 (zhihu.com)

三吼具、cox回歸結(jié)果展示

Cox結(jié)果主要包括:HR, HR_95%low, HR_95%high, P
我們最常用的展示方式就是森林圖,同時森林圖也是我們展示cox回歸的最佳方式矩距,我們來看發(fā)表的森林圖:


JIM
image.png
Cancer Immunology Research
森林圖繪制

數(shù)據(jù)準備拗盒,將cox回歸的結(jié)果讀入,

rm(list = ls())
load("RData/7. Clinical/MSC cox result.RData")

#森林圖unicox_OS----
df <- unicox_OS[unicox_OS$p_val<0.1,]
rownames(df)[1] <- "MSC1"

gene <- rownames(df)
colnames(df)

hr <- sprintf("%.3f",df$"HR")
hrLow  <- sprintf("%.3f",df$"HR_l")
hrHigh <- sprintf("%.3f",df$"HR_H")
Hazard.ratio <- paste0(hr," (",hrLow,"-",hrHigh,")")

pVal <- ifelse(df$p_val<0.01, "<0.01", sprintf("%.3f", df$p_val))

使用基礎(chǔ)函數(shù)繪制森林圖锥债,大致思路:將畫布按照3:2分為兩部分陡蝇,將字和線段逐個打印上


#森林圖
if(T){
  pdf(file="unicox_OS.pdf", width = 8,height = 3.5)
  
  n <- nrow(df)
  nRow <- n+1
  ylim <- c(1-0.5,nRow+0.5)
  layout(matrix(c(1,2),nc=2),width=c(3,2))
  
  #繪制森林圖左邊的基因信息
  par(mar=c(4,0.5,1,0))#上左下右
  xlim = c(0.4,2.5)
  plot(1,xlim=xlim,ylim=ylim,type="n",axes=F,xlab="",ylab="")
  text.cex=1
  text(0.4,n:1,gene,adj=0,cex=text.cex)
  text(1.3,n:1,pVal,adj=1,cex=text.cex)
  text(2.5,n:1,Hazard.ratio,adj=1,cex=text.cex)
  text(1.35,n+1,'P-value',cex=text.cex,font=2,adj=1)
  text(2.35,n+1,'HR (95% CI)',cex=text.cex,font=2,adj=1,)
  abline(h=n+1.3,col="black",lty=1,lwd=2);
  abline(h=n+0.6,col="black",lty=1,lwd=2);
  abline(h=0.6,col="black",lty=1,lwd=2)
  
  #繪制森林圖
  par(mar=c(4,0,2,1),mgp=c(2,0.5,0))
  xlim = c(0,3)
  plot(1,xlim=xlim,ylim=ylim,type="n",axes=F,ylab="",xaxs="i",xlab="")
  arrows(as.numeric(hrLow),n:1,
         as.numeric(hrHigh),n:1,
         angle=0,code=3,length=0.01,col="black",lwd=2.5)
  abline(v=1.0,col="black",lty=2,lwd=1.5)
  boxcolor ="black"
  points(as.numeric(hr), n:1, pch = 18, cex=2,col = boxcolor)
  axis(1)
  
  dev.off()
}

image.png

當(dāng)然,還有不少包裝好的R包可以直接繪制森林圖哮肚,感興趣的小伙伴可以探索一下
總之吶登夫,圖是為了更好的展示,因此允趟,結(jié)果最重要恼策,對吧

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市潮剪,隨后出現(xiàn)的幾起案子涣楷,更是在濱河造成了極大的恐慌分唾,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件总棵,死亡現(xiàn)場離奇詭異鳍寂,居然都是意外死亡,警方通過查閱死者的電腦和手機情龄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門迄汛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人骤视,你說我怎么就攤上這事鞍爱。” “怎么了专酗?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵睹逃,是天一觀的道長。 經(jīng)常有香客問我祷肯,道長沉填,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任佑笋,我火速辦了婚禮翼闹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蒋纬。我一直安慰自己猎荠,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布蜀备。 她就那樣靜靜地躺著关摇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪碾阁。 梳的紋絲不亂的頭發(fā)上输虱,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機與錄音脂凶,去河邊找鬼宪睹。 笑死,一個胖子當(dāng)著我的面吹牛艰猬,可吹牛的內(nèi)容都是我干的横堡。 我是一名探鬼主播埋市,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼冠桃,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了道宅?” 一聲冷哼從身側(cè)響起食听,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤胸蛛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后樱报,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體葬项,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年迹蛤,在試婚紗的時候發(fā)現(xiàn)自己被綠了民珍。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡盗飒,死狀恐怖嚷量,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情逆趣,我是刑警寧澤蝶溶,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站宣渗,受9級特大地震影響抖所,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜痕囱,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一田轧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧咐蝇,春花似錦涯鲁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至旭寿,卻和暖如春警绩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背盅称。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工肩祥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人缩膝。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓混狠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親疾层。 傳聞我的和親對象是個殘疾皇子将饺,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容