绘制pr曲线图_生存分析如何绘制事件发生累计概率曲线图?
公眾號前段時(shí)間發(fā)了篇推文《ggsurvplot()函數(shù)繪制Kaplan-Meier生存曲線》用來介紹生存曲線的繪制,下面的推文內(nèi)容跟這篇文章結(jié)合著看。
在生存分析中我們通常關(guān)注個(gè)體在時(shí)間t之前存在的概率(或者不發(fā)生感興趣事件的概率),并且繪制生存函數(shù)曲線。
生存函數(shù)(S(t)=Pr(T>t))是一個(gè)階梯函數(shù),說明隨著時(shí)間的推移累計(jì)生存概率。但有時(shí)候研究者更加關(guān)注的是隨著時(shí)間推移事件發(fā)生累計(jì)概率(顧名思義就是1-S(t))。
近期就收到一個(gè)咨詢,希望可以繪制1-S(t)曲線,并且輸出風(fēng)險(xiǎn)表(risk table),在圖上標(biāo)注曲線的置信區(qū)間。
我們知道SPSS可以輸出生存函數(shù)、1-生存函數(shù)、風(fēng)險(xiǎn)函數(shù)、對數(shù)風(fēng)險(xiǎn)函數(shù)。
SPSS具體操作如下:
1.打開SPSS軟件,導(dǎo)入需要分析的數(shù)據(jù),數(shù)據(jù)設(shè)置好格式后,點(diǎn)擊分析-生存分析-Kaplan-Meier,如下圖1所示:
圖12.如下圖2所示定義好時(shí)間、狀態(tài)和因子,點(diǎn)擊右邊的選項(xiàng);全部勾選生存函數(shù)、1減去生存函數(shù)、風(fēng)險(xiǎn)函數(shù)、對數(shù)生存。
圖2 SPSS繪制生存曲線操作3.選好之后,點(diǎn)擊繼續(xù)-確定就可以得到想要的圖。
圖3 SPSS輸出的生存函數(shù)圖和1-生存函數(shù)圖其中第二張圖就是累計(jì)事件發(fā)生概率曲線(1-S(t))。
但是SPSS輸出圖不夠美觀,并且不能添加置信區(qū)間和風(fēng)險(xiǎn)表。
這個(gè)時(shí)候首先想到用R的"survminer"包實(shí)現(xiàn)優(yōu)雅地繪制生存曲線,解決這個(gè)需求最稱手的當(dāng)屬ggsurvplot函數(shù)。
話不多說直接上代碼和結(jié)果:
R軟件具體操作如下:
1.導(dǎo)入數(shù)據(jù)(略),加載需要的包:
library(ggplot2)?#?加載ggplot2包library(survival)?#?加載survival包擬合生存對象
library(survminer)?#?加載survminer包繪制生存曲線
2.定義需要用于繪制生存函數(shù)的formula,直接用ggsurvplot畫圖。
ggsurvplot(survfit(Surv(Os,Status)~Group,?data=data1),???????????pval=TRUE,
???????????risk.table?=?TRUE)
#?參數(shù)解釋
Surv(Os,Status)~Group,data=data1?#?生存函數(shù)formula
pval=TRUE?#?輸出log-rank檢驗(yàn)P值
pval.method=TRUE??#?可以顯示檢驗(yàn)方法
risk.table?=?TRUE?#?輸出風(fēng)險(xiǎn)表,默認(rèn)FALSE
上面的代碼與下面2行代碼等同:
f?ggsurvplot(f,?pval=TRUE,?risk.table?=?TRUE)輸出的圖如下:
圖4 ?R ggsurvplot繪制的生存函數(shù)圖我們發(fā)現(xiàn)默認(rèn)輸出的圖是生存函數(shù)圖,那要怎么得到事件發(fā)生的累計(jì)概率曲線圖呢?
這時(shí)候需要用到(fun = " ")這個(gè)參數(shù)。
小編查閱了知乎、簡書等分享的文章,其中不乏愛好R語言的臨床研究者梳理的生存分析操作流程,有一些誤以為fun="cumhaz"(累計(jì)風(fēng)險(xiǎn)圖)就是事件發(fā)生的累計(jì)概率曲線圖。
ggsurvplot(survfit(Surv(Os,Status)~Group,data=data1),???????????fun="cumhaz",
???????????pval=TRUE,
???????????risk.table?=?TRUE)
從圖5看到,曲線是反過來的,但是仔細(xì)看縱坐標(biāo)不是0-1,原來"cumhaz" 繪制的是隨時(shí)間推移事件發(fā)生的累計(jì)風(fēng)險(xiǎn)(HR)。
圖5 R ggsurvplot繪制的累計(jì)風(fēng)險(xiǎn)函數(shù)圖其實(shí),仔細(xì)參閱ggsurvplot的參數(shù)說明,這個(gè)問題就迎刃而解了:
-?"cumhaz"?plots?the?cumulative?hazard?function?(f(y)?=?-log(y)),?繪制累計(jì)風(fēng)險(xiǎn)圖-?"event"?plots?cumulative?events?(f(y)?=?1-y),?繪制1-S(t)曲線
-?"pct"?for?survival?probability?in?percentage,繪制百分比生存概率圖
定義fun = "event",輸出置信區(qū)間,接下來調(diào)整一下圖的格式、配色,就可以得到一張漂亮的事件發(fā)生的累計(jì)概率曲線圖啦。
ggsurvplot(survfit(Surv(Os,Status)~Group,data=data1),???????????fun?=?"event",?#?l繪制1-S(t)曲線
???????????conf.int?=?TRUE,??#?輸出曲線置信區(qū)間
???????????conf.int.style="ribbon",?#?可定義的類別包括("ribbon",?"step")
???????????conf.int.alpha=0.45,?#?設(shè)置置信區(qū)間透明區(qū)
???????????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,?#?生存曲線圖下所有生存表的高度,數(shù)值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",?#?可選調(diào)色板有?"grey","npg","aaas","lancet","jco","ucscgb","uchicago","simpsons"和"rickandmorty".
???????????ggtheme?=?theme_bw()?#?Change?ggplot2?theme
??????????)
圖6 R ggsurvplot繪制的1-生存函數(shù)圖
本期咨詢答疑分享就到這里了,敲黑板總結(jié)如下:
- R ggsurvplot 定義fun = "event"可以繪制1-S(t)曲線。
- 學(xué)習(xí)R語言時(shí)一定要仔細(xì)看package的介紹文檔,最好是結(jié)合算法原理來理解各個(gè)參數(shù)的使用。
歡迎各位小伙伴交流探討,有任何意見和疑問隨時(shí)后臺(tái)留言~
相關(guān)文章
R語言統(tǒng)計(jì)與繪圖:forestplot包繪制森林圖 2020-05-29 R語言統(tǒng)計(jì)與繪圖:pROC包繪制ROC曲線 2020-05-25 R語言統(tǒng)計(jì)與繪圖:Kaplan-Meier生存曲線進(jìn)階 2020-05-21 R語言統(tǒng)計(jì)與繪圖:生存曲線的兩兩比較 2020-04-01 R語言統(tǒng)計(jì)與繪圖:生存率的比較 2020-03-24總結(jié)
以上是生活随笔為你收集整理的绘制pr曲线图_生存分析如何绘制事件发生累计概率曲线图?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java sl4j 日志_Java日志框
- 下一篇: ue编辑器拖拽上传图片_为百度UE编辑器