欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解R語言中生存分析模型與時(shí)間依賴性ROC曲線可視化

 更新時(shí)間:2021年03月10日 09:39:44   作者:拓端研究室  
這篇文章主要介紹了R語言中生存分析模型與時(shí)間依賴性ROC曲線可視化,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

R語言簡(jiǎn)介

R是用于統(tǒng)計(jì)分析、繪圖的語言和操作環(huán)境。R是屬于GNU系統(tǒng)的一個(gè)自由、免費(fèi)、源代碼開放的軟件,它是一個(gè)用于統(tǒng)計(jì)計(jì)算和統(tǒng)計(jì)制圖的優(yōu)秀工具。

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

時(shí)間依賴性ROC定義

令 Mi為用于死亡率預(yù)測(cè)的基線(時(shí)間0)標(biāo)量標(biāo)記。 當(dāng)隨時(shí)間推移觀察到結(jié)果時(shí),其預(yù)測(cè)性能取決于評(píng)估時(shí)間 t。直觀地說,在零時(shí)間測(cè)量的標(biāo)記值應(yīng)該變得不那么相關(guān)。因此,ROC測(cè)得的預(yù)測(cè)性能(區(qū)分)是時(shí)間t的函數(shù) 。

累積病例

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

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

新發(fā)病例

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

累積靈敏度將在時(shí)間t處死亡的人 視為分母(疾?。鴮?biāo)記值高于 Ç 的人視為真實(shí)陽性(疾病陽性)。

數(shù)據(jù)準(zhǔn)備

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

## 變成data_frame
data <- as_data_frame(data)
## 繪圖
plot(survfit(Surv(futime, fustat) ~ 1,
          data = data)

可視化結(jié)果:

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

## 擬合cox模型
coxph(formula = Surv(futime, fustat) ~ pspline(age, df = 4) + 
##獲得線性預(yù)測(cè)值
 predict(coxph1, type = "lp")

累積病例

實(shí)現(xiàn)了累積病例

## 定義一個(gè)輔助函數(shù),以在不同的時(shí)間進(jìn)行評(píng)估
ROC_hlp <- function(t) {
  survivalROC(Stime    
        status    
        marker    
        predict.time = t,
        method    = "NNE",
        span = 0.25 * nrow(ovarian)^(-0.20))
}
## 每180天評(píng)估一次
ROC_data <- data_frame(t = 180 * c(1,2,3,4,5,6)) %>%
  mutate(survivalROC = map(t, survivalROC_helper),
      ## 提取AUC
      auc = map_dbl(survivalROC, magrittr::extract2, "AUC"),
      ## 在data_frame中放相關(guān)的值
      df_survivalROC = map(survivalROC, function(obj) {
      
## 繪圖
 ggplot(mapping = aes(x = FP, y = TP)) +
  geom_point() +
  geom_line() +
   facet_wrap( ~ t) +

可視化結(jié)果:

180天的ROC看起來是最好的。因?yàn)榈酱丝虨橹箮缀鯖]有事件。在最后觀察到的事件(t≥720)之后,AUC穩(wěn)定在0.856。這種表現(xiàn)并沒有衰退,因?yàn)楦唢L(fēng)險(xiǎn)分?jǐn)?shù)的人死了。

新發(fā)病例

實(shí)現(xiàn)新發(fā)病例

## 定義一個(gè)輔助函數(shù),以在不同的時(shí)間進(jìn)行評(píng)估
 
## 每180天評(píng)估一次
 
      ## 提取AUC
      auc = map_dbl(risksetROC, magrittr::extract2, "AUC"),
      ## 在data_frame中放相關(guān)的值
      df_risksetROC = map(risksetROC, function(obj) {
        ## 標(biāo)記欄
        marker <- c(-Inf, obj[["marker"]], Inf)
 
## 繪圖
 
  ggplot(mapping = aes(x = FP, y = TP)) +
  geom_point() +
  geom_line() +
  geom_label(data = risksetROC_data %>% dplyr::select(t,auc) %>% unique,
  facet_wrap( ~ t) +

可視化結(jié)果:

這種差異在后期更為明顯。最值得注意的是,只有在每個(gè)時(shí)間點(diǎn)處于風(fēng)險(xiǎn)集中的個(gè)體才能提供數(shù)據(jù)。所以數(shù)據(jù)點(diǎn)少了。表現(xiàn)的衰退更為明顯,也許是因?yàn)樵谀切┐婊顣r(shí)間足夠長(zhǎng)的人中,時(shí)間零點(diǎn)的風(fēng)險(xiǎn)分沒有那么重要。一旦沒有事件,ROC基本上就會(huì)趨于平緩。

結(jié)論

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

參考

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.

到此這篇關(guān)于詳解R語言中生存分析模型與時(shí)間依賴性ROC曲線可視化的文章就介紹到這了,更多相關(guān)R語言生存分析曲線可視化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • R語言數(shù)據(jù)類型與相應(yīng)運(yùn)算的實(shí)現(xiàn)

    R語言數(shù)據(jù)類型與相應(yīng)運(yùn)算的實(shí)現(xiàn)

    本文主要介紹了R語言數(shù)據(jù)類型與相應(yīng)運(yùn)算的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Python調(diào)用R語言實(shí)例講解

    Python調(diào)用R語言實(shí)例講解

    這篇文章主要介紹了Python調(diào)用R語言實(shí)例講解,文中介紹的非常詳細(xì),有需要的同學(xué)可以研究下
    2021-03-03
  • R語言列表和數(shù)據(jù)框的具體使用

    R語言列表和數(shù)據(jù)框的具體使用

    本文主要介紹了R語言列表和數(shù)據(jù)框的具體使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • R語言讀取柵格數(shù)據(jù)的方法(raster包讀取)

    R語言讀取柵格數(shù)據(jù)的方法(raster包讀取)

    這篇文章主要介紹了R語言讀取柵格數(shù)據(jù)的方法,本文就只是對(duì)R語言raster包讀取、處理柵格數(shù)據(jù)加以基本的方法介紹,需要的朋友可以參考下
    2023-05-05
  • 詳解R語言實(shí)現(xiàn)前向逐步回歸(前向選擇模型)

    詳解R語言實(shí)現(xiàn)前向逐步回歸(前向選擇模型)

    本文主要介紹了詳解R語言實(shí)現(xiàn)前向逐步回歸,從實(shí)現(xiàn)原理開始,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • R語言中fread使用方法

    R語言中fread使用方法

    在R語言中,fread函數(shù)是data.table包中的一個(gè)功能強(qiáng)大的數(shù)據(jù)讀取函數(shù),可以用于快速讀取大型數(shù)據(jù)文件,它比基本的read.table和read.csv函數(shù)更快,尤其在處理大型數(shù)據(jù)集時(shí)效果更為明顯,這篇文章主要介紹了R語言中fread使用方法,需要的朋友可以參考下
    2023-12-12
  • R語言及RStudio下載與安裝方法

    R語言及RStudio下載與安裝方法

    這篇文章主要介紹了R、RStudio下載與安裝方法,本文通過圖文圖文并茂的方法給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • R語言RCode與RStudio使用對(duì)比體驗(yàn)分析總結(jié)

    R語言RCode與RStudio使用對(duì)比體驗(yàn)分析總結(jié)

    這篇文章主要為大家介紹了R語言RCode與RStudio使用對(duì)比體驗(yàn)分析總結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助祝大家多多進(jìn)步
    2021-11-11
  • R語言ggplot2包之坐標(biāo)軸詳解

    R語言ggplot2包之坐標(biāo)軸詳解

    這篇文章主要介紹了R語言ggplot2包之坐標(biāo)軸詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言常量知識(shí)點(diǎn)總結(jié)

    R語言常量知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家整理了一篇關(guān)于R語言常量知識(shí)點(diǎn)總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)分享下。
    2021-03-03

最新評(píng)論