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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

绘制pr曲线图_生存分析如何绘制事件发生累计概率曲线图?

發布時間:2025/3/20 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 绘制pr曲线图_生存分析如何绘制事件发生累计概率曲线图? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

公眾號前段時間發了篇推文《ggsurvplot()函數繪制Kaplan-Meier生存曲線》用來介紹生存曲線的繪制,下面的推文內容跟這篇文章結合著看。


在生存分析中我們通常關注個體在時間t之前存在的概率(或者不發生感興趣事件的概率),并且繪制生存函數曲線。

生存函數(S(t)=Pr(T>t))是一個階梯函數,說明隨著時間的推移累計生存概率。但有時候研究者更加關注的是隨著時間推移事件發生累計概率(顧名思義就是1-S(t))。

近期就收到一個咨詢,希望可以繪制1-S(t)曲線,并且輸出風險表(risk table),在圖上標注曲線的置信區間。


我們知道SPSS可以輸出生存函數、1-生存函數、風險函數、對數風險函數。

SPSS具體操作如下:

1.打開SPSS軟件,導入需要分析的數據,數據設置好格式后,點擊分析-生存分析-Kaplan-Meier,如下圖1所示:

圖1

2.如下圖2所示定義好時間、狀態和因子,點擊右邊的選項;全部勾選生存函數、1減去生存函數、風險函數、對數生存。

圖2 SPSS繪制生存曲線操作

3.選好之后,點擊繼續-確定就可以得到想要的圖。

圖3 SPSS輸出的生存函數圖和1-生存函數圖

其中第二張圖就是累計事件發生概率曲線(1-S(t))。

但是SPSS輸出圖不夠美觀,并且不能添加置信區間和風險表。

這個時候首先想到用R的"survminer"包實現優雅地繪制生存曲線,解決這個需求最稱手的當屬ggsurvplot函數。

話不多說直接上代碼和結果:

R軟件具體操作如下:

1.導入數據(略),加載需要的包:

library(ggplot2)?#?加載ggplot2包
library(survival)?#?加載survival包擬合生存對象
library(survminer)?#?加載survminer包繪制生存曲線

2.定義需要用于繪制生存函數的formula,直接用ggsurvplot畫圖。

ggsurvplot(survfit(Surv(Os,Status)~Group,?data=data1),
???????????pval=TRUE,
???????????risk.table?=?TRUE)
#?參數解釋
Surv(Os,Status)~Group,data=data1?#?生存函數formula
pval=TRUE?#?輸出log-rank檢驗P值
pval.method=TRUE??#?可以顯示檢驗方法
risk.table?=?TRUE?#?輸出風險表,默認FALSE

上面的代碼與下面2行代碼等同:

f?ggsurvplot(f,?pval=TRUE,?risk.table?=?TRUE)

輸出的圖如下:

圖4 ?R ggsurvplot繪制的生存函數圖

我們發現默認輸出的圖是生存函數圖,那要怎么得到事件發生的累計概率曲線圖呢?

這時候需要用到(fun = " ")這個參數。

小編查閱了知乎、簡書等分享的文章,其中不乏愛好R語言的臨床研究者梳理的生存分析操作流程,有一些誤以為fun="cumhaz"(累計風險圖)就是事件發生的累計概率曲線圖。

ggsurvplot(survfit(Surv(Os,Status)~Group,data=data1),
???????????fun="cumhaz",
???????????pval=TRUE,
???????????risk.table?=?TRUE)

從圖5看到,曲線是反過來的,但是仔細看縱坐標不是0-1,原來"cumhaz" 繪制的是隨時間推移事件發生的累計風險(HR)。

圖5 R ggsurvplot繪制的累計風險函數圖

其實,仔細參閱ggsurvplot的參數說明,這個問題就迎刃而解了:

-?"cumhaz"?plots?the?cumulative?hazard?function?(f(y)?=?-log(y)),?繪制累計風險圖
-?"event"?plots?cumulative?events?(f(y)?=?1-y),?繪制1-S(t)曲線
-?"pct"?for?survival?probability?in?percentage,繪制百分比生存概率圖

定義fun = "event",輸出置信區間,接下來調整一下圖的格式、配色,就可以得到一張漂亮的事件發生的累計概率曲線圖啦。

ggsurvplot(survfit(Surv(Os,Status)~Group,data=data1),
???????????fun?=?"event",?#?l繪制1-S(t)曲線
???????????conf.int?=?TRUE,??#?輸出曲線置信區間
???????????conf.int.style="ribbon",?#?可定義的類別包括("ribbon",?"step")
???????????conf.int.alpha=0.45,?#?設置置信區間透明區
???????????surv.plot.height=?0.7,?#?生存圖高度
???????????main?=?"Survival?curve",
???????????legend.title?=?"Group",
???????????legend.labs?=?c("Treat",?"Control"),
???????????legend=c(0.8,0.7),
???????????xlab="Days",
???????????ylab="Cumulative?Event?Rate?(%)",?#?或者直接寫“1-S(t)”
???????????xlim?=?c(0,60),?ylim?=?c(0,1),
???????????risk.table?=?TRUE,
???????????tables.height?=?0.15,?#?生存曲線圖下所有生存表的高度,數值0-1之間
???????????tables.theme?=?theme_cleantable(),
???????????font.main?=?c(14,?"bold",?"darkblue"),
???????????font.x?=?c(14,?"plain",?"black"),
???????????break.x.by?=?10,?break.y.by?=?0.1,
???????????font.y?=?c(14,?"plain",?"black"),
???????????font.tickslab?=?c(12,?"plain",?"black"),
???????????risk.table.col="strata",
???????????risk.table.height=0.2,
???????????palette?=?"npg",?#?可選調色板有?"grey","npg","aaas","lancet","jco","ucscgb","uchicago","simpsons"和"rickandmorty".
???????????ggtheme?=?theme_bw()?#?Change?ggplot2?theme
??????????)
圖6 R ggsurvplot繪制的1-生存函數圖

本期咨詢答疑分享就到這里了,敲黑板總結如下:

  • R ggsurvplot 定義fun = "event"可以繪制1-S(t)曲線。
  • 學習R語言時一定要仔細看package的介紹文檔,最好是結合算法原理來理解各個參數的使用。

歡迎各位小伙伴交流探討,有任何意見和疑問隨時后臺留言~


相關文章

R語言統計與繪圖:forestplot包繪制森林圖 2020-05-29 R語言統計與繪圖:pROC包繪制ROC曲線 2020-05-25 R語言統計與繪圖:Kaplan-Meier生存曲線進階 2020-05-21 R語言統計與繪圖:生存曲線的兩兩比較 2020-04-01 R語言統計與繪圖:生存率的比較 2020-03-24

總結

以上是生活随笔為你收集整理的绘制pr曲线图_生存分析如何绘制事件发生累计概率曲线图?的全部內容,希望文章能夠幫你解決所遇到的問題。

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