日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

校准曲线的绘制的小技巧

發布時間:2024/3/24 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 校准曲线的绘制的小技巧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

歡迎關注”生信修煉手冊”!

在之前關于列線圖的文章中,我們介紹了利用列線圖來可視化預后模型,同時也提到了模型性能的幾種評估方式,校準度以及校準曲線就是其中一種方式。

校準度,用來描述一個模型預測個體發生臨床結局的概率的準確性。在實際應用中,通常用校準曲線來表征。校準曲線展示了模型預測值與實際值之間的偏差,一個典型的校準曲線示例如下

橫軸表示模型預測的不同臨床結局概率,縱軸表示實際觀察到的患者的臨床結局的概率,用中位數加均值的errorbar 形式表征,并繪制了一條斜率為1的理想曲線作為參照,實際曲線越接近理想曲線,表明模型預測結果與實際結果的偏差越小,模型效果高好。

在數據分析過程中,我們可以通過rms包中的calibrate函數來創建校準曲線,首先來運行下官方示例

> set.seed(1) > n <- 200 > d.time <- rexp(n) > x1 <- runif(n) > x2 <- factor(sample(c('a', 'b', 'c'), n, TRUE)) > f <- cph(Surv(d.time) ~ pol(x1,2) * x2, x=TRUE, y=TRUE, surv=TRUE, time.inc=1.5) > cal <- calibrate(f, u=1.5, cmethod='KM', m=50, B=20) > plot(cal)

效果圖如下

參數u指定了我們想要分析的時間節點,m指定了樣本分組個數,該參數決定了圖中errorbar的個數,示例數據有200個樣本,m取50時,group的個數為4。該函數通過有放回的抽樣方法對模型效能進行評估,利用函數返回值可以查看具體的繪圖數據,示例如下

> cal calibrate.cph(fit?=?f,?cmethod?=?"KM",?u?=?1.5,?m?=?50,?B?=?20) n=200??B=20??u=1.5?Dayindex.orig training test mean.optimism mean.corrected n [1,] -0.02180909 -0.006492867 0.053098128 -0.05959099 0.03778191 20 [2,] 0.01161824 0.013463692 0.031802035 -0.01833834 0.02995658 20 [3,] 0.07007320 -0.064043654 -0.007650977 -0.05639268 0.12646588 14 [4,] -0.07103626 -0.015150576 -0.055302350 0.04015177 -0.11118804 20mean.predicted KM KM.corrected std.err [1,] 0.1418091 0.12 0.1795910 0.3829708 [2,] 0.1883818 0.20 0.2183383 0.2828427 [3,] 0.2299268 0.30 0.3563927 0.2160247 [4,] 0.3110363 0.24 0.1998482 0.2516611

其中,mean.predicted列代表圖中4處errorbar對應的x軸坐標,KM.corrected列表示圖中黑色原形散點的縱坐標,星形散點的縱坐標為KM列,errobar的上下區間則通過如下公式計算

cal <- x[,"KM"] se <- x[,"std.err"] ciupper <- function(surv, d) ifelse(surv==0, 0, pmin(1, surv*exp(d))) cilower <- function(surv, d) ifelse(surv==0, 0, surv*exp(-d)) cilower(cal, 1.959964*se) ciupper(cal, 1.959964*se)

利用KM列和std.err列的數據進行計算,?我們可以提取其中的數據,自己來畫圖,?代碼如下

> x <- cal > plot(x = x[,"mean.predicted"], y = x[,"KM"], pch = 20, xlab = "", ylab = "") > errbar(x[,"mean.predicted"], x[,"KM"] , cilower(x[,"KM"], 1.959964 * x[,"std.err"]), ciupper(x[,"KM"], 1.959964 * x[,"std.err"])) > points(x = x[,"mean.predicted"], y = x[,"KM.corrected"], pch = 4) > lines(x = x[,"mean.predicted"], y = x[,"KM"]) > plot(x = x[,"mean.predicted"], y = x[,"KM"], pch = 20, xlab = "", ylab = "") > errbar(x[,"mean.predicted"], x[,"KM"] , cilower(x[,"KM"], 1.959964 * x[,"std.err"]), ciupper(x[,"KM"], 1.959964 * x[,"std.err"]), xlab = "", ylab = "") > points(x = x[,"mean.predicted"], y = x[,"KM.corrected"], pch = 4) > lines(x = x[,"mean.predicted"], y = x[,"KM"]

效果圖如下

可以看到和直接用函數繪制出來的圖是完全一致的,掌握這個用法之后,我們就可以實現文獻中所示的個性化校準曲線,比如下圖

只需要提取4個時間點的校準曲線數據,然后自己繪圖賦予不同顏色即可實現。

·end·

—如果喜歡,快分享給你的朋友們吧—

原創不易,歡迎收藏,點贊,轉發!生信知識浩瀚如海,在生信學習的道路上,讓我們一起并肩作戰!

本公眾號深耕耘生信領域多年,具有豐富的數據分析經驗,致力于提供真正有價值的數據分析服務,擅長個性化分析,歡迎有需要的老師和同學前來咨詢。

? 更多精彩

  • KEGG數據庫,除了pathway你還知道哪些

  • 全網最完整的circos中文教程

  • DNA甲基化數據分析專題

  • 突變檢測數據分析專題

  • mRNA數據分析專題

  • lncRNA數據分析專題

  • circRNA數據分析專題

  • miRNA數據分析專題

  • 單細胞轉錄組數據分析專題

  • chip_seq數據分析專題

  • Hi-C數據分析專題

  • HLA數據分析專題

  • TCGA腫瘤數據分析專題

  • 基因組組裝數據分析專題

  • CNV數據分析專題

  • GWAS數據分析專題

  • 機器學習專題

  • 2018年推文合集

  • 2019年推文合集

  • 2020推文合集

? 寫在最后

轉發本文至朋友圈,后臺私信截圖即可加入生信交流群,和小伙伴一起學習交流。

掃描下方二維碼,關注我們,解鎖更多精彩內容!

一個只分享干貨的

生信公眾號

總結

以上是生活随笔為你收集整理的校准曲线的绘制的小技巧的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。