五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網 會員登陸 & 注冊

拓端tecdat|R語言中生存分析模型與時間依賴性ROC曲線可視化

2021-07-14 11:12 作者:拓端tecdat  | 我要投稿

原文鏈接:http://tecdat.cn/?p=20650?

原文出處:拓端數據部落公眾號

人們通常使用接收者操作特征曲線(ROC)進行二元結果邏輯回歸。但是,流行病學研究中感興趣的結果通常是事件發(fā)生時間。使用隨時間變化的時間依賴性ROC可以更全面地描述這種情況下的預測模型。

時間依賴性ROC定義

令 Mi為用于死亡率預測的基線(時間0)標量標記。?當隨時間推移觀察到結果時,其預測性能取決于評估時間?t。直觀地說,在零時間測量的標記值應該變得不那么相關。因此,ROC測得的預測性能(區(qū)分)是時間t的函數?。?

累積病例

累積病例/動態(tài)ROC定義了在時間t?處的閾值c處的?靈敏度和特異性,??如下所示。

累積靈敏度將在時間t之前死亡的視為分母(疾?。?,而將標記值高于?c?的作為真實陽性(疾病陽性)。動態(tài)特異性將在時間t仍然活著作為分母(健康),并將標記值小于或等于?c?的那些作為真實陰性(健康中的陰性)。將閾值?c?從最小值更改為最大值會在時間t處顯示整個ROC曲線?。

新發(fā)病例

新發(fā)病例ROC1在時間t?處以閾值?c定義靈敏度和特異性,??如下所示。

累積靈敏度將在時間t處死亡的人??視為分母(疾?。鴮擞浿蹈哂???的人視為真實陽性(疾病陽性)。

數據準備

我們以數據?包中的dataset3survival為例。事件發(fā)生的時間就是死亡的時間。Kaplan-Meier圖如下。



  1. ## 變成data_frame

  2. data <- as_data_frame(data)

  3. ## 繪圖

  4. plot(survfit(Surv(futime, fustat) ~ 1,

  5. data = data)

可視化結果:

在數據集中超過720天沒有發(fā)生任何事件。


  1. ## 擬合cox模型

  2. coxph(formula = Surv(futime, fustat) ~ pspline(age, df = 4) +

  3. ##獲得線性預測值

  4. predict(coxph1, type = "lp")

累積病例

實現了累積病例


  1. ## 定義一個輔助函數,以在不同的時間進行評估

  2. ROC_hlp <- function(t) {

  3. survivalROC(Stime

  4. status

  5. marker

  6. predict.time = t,

  7. method ? ? ? = "NNE",

  8. span = 0.25 * nrow(ovarian)^(-0.20))

  9. }

  10. ## 每180天評估一次

  11. ROC_data <- data_frame(t = 180 * c(1,2,3,4,5,6)) %>%

  12. mutate(survivalROC = map(t, survivalROC_helper),

  13. ## 提取AUC

  14. auc = map_dbl(survivalROC, magrittr::extract2, "AUC"),

  15. ## 在data_frame中放相關的值

  16. df_survivalROC = map(survivalROC, function(obj) {


  17. ## 繪圖

  18. ggplot(mapping = aes(x = FP, y = TP)) +

  19. geom_point() +

  20. geom_line() +

  21. facet_wrap( ~ t) +

可視化結果:

180天的ROC看起來是最好的。因為到此刻為止幾乎沒有事件。在最后觀察到的事件(t≥720)之后,AUC穩(wěn)定在0.856。這種表現并沒有衰退,因為高風險分數的人死了。

新發(fā)病例

實現新發(fā)病例


  1. ## 定義一個輔助函數,以在不同的時間進行評估


  2. ## 每180天評估一次


  3. ## 提取AUC

  4. auc = map_dbl(risksetROC, magrittr::extract2, "AUC"),

  5. ## 在data_frame中放相關的值

  6. df_risksetROC = map(risksetROC, function(obj) {

  7. ## 標記欄

  8. marker <- c(-Inf, obj[["marker"]], Inf)


  9. ## 繪圖


  10. ggplot(mapping = aes(x = FP, y = TP)) +

  11. geom_point() +

  12. geom_line() +

  13. geom_label(data = risksetROC_data %>% dplyr::select(t,auc) %>% unique,

  14. facet_wrap( ~ t) +

可視化結果:

這種差異在后期更為明顯。最值得注意的是,只有在每個時間點處于風險集中的個體才能提供數據。所以數據點少了。表現的衰退更為明顯,也許是因為在那些存活時間足夠長的人中,時間零點的風險分沒有那么重要。一旦沒有事件,ROC基本上就會趨于平緩。

結論

總之,我們研究了時間依賴的ROC及其R實現。累積病例ROC可能與風險?(累積發(fā)生率)預測模型的概念更兼容?。新發(fā)病例ROC可用于檢查時間零標記在預測后續(xù)事件時的相關性。

參考

  1. Heagerty,Patrick J. and Zheng,Yingye,??Survival Model Predictive Accuracy and ROC Curves,Biometrics,61(1),92-105(2005).?doi:10.1111 / j.0006-341X.2005.030814.x.

最受歡迎的見解

1.R語言繪制生存曲線估計|生存分析|如何R作生存曲線圖

2.R語言生存分析可視化分析

3.R語言如何在生存分析與Cox回歸中計算IDI,NRI指標

4.r語言中使用Bioconductor 分析芯片數據

5.R語言生存分析數據分析可視化案例

6.r語言ggplot2誤差棒圖快速指南

7.R 語言繪制功能富集泡泡圖

8.R語言如何找到患者數據中具有差異的指標?(PLS—DA分析)

9.R語言中的生存分析Survival analysis晚期肺癌患者4例


拓端tecdat|R語言中生存分析模型與時間依賴性ROC曲線可視化的評論 (共 條)

分享到微博請遵守國家法律
宁化县| 高邮市| 宁晋县| 景谷| 竹山县| 怀安县| 平原县| 辽阳县| 康乐县| 察哈| 梁山县| 呼图壁县| 鄯善县| 丰顺县| 池州市| 田阳县| 进贤县| 九江县| 分宜县| 南漳县| 北川| 天长市| 松溪县| 永定县| 周宁县| 泽普县| 榆中县| 东阿县| 天水市| 大英县| 孟津县| 会理县| 新乡县| 大竹县| 许昌县| 韶关市| 武威市| 安福县| 宽城| 长宁区| 大关县|