診斷模型的另一種驗證,R語言繪制決策曲線

爾云間? 一個專門做科研的團(tuán)隊
小伙伴們大家好啊,小云今天要和大家講的是決策曲線的繪制,小云之前了解了一下診斷模型,感覺和之前小云接觸的預(yù)后模型有點像,但不一樣的是,小云今天接觸的診斷模型只有一個分組,即高低分組與各基因表達(dá)量進(jìn)行計算,而預(yù)后模型則是時間和狀態(tài)兩個量。小云今天要說的是決策曲線的繪制。

?
這個診斷模型有五個基因,然后這里的分組是用的高低分組
library(ggDCA)
library(rms)
library(nricens)
library(foreign)
library(rmda)
library(regplot)
?
data3 <- read.table(file = "input.txt",header = T,sep = "\t",row.names = 1)#載入數(shù)據(jù)
#1.診斷列線圖構(gòu)建
dd <- datadist(data3)
options(datadist="dd")
RAB24<- decision_curve(Risk_Score~ RAB24,data = data3,
??????????????????????? family = binomial(link ='logit'),#模型類型,這里是二分類
??????????????????????? thresholds= seq(0,1, by = 0.01),
??????????????????????? confidence.intervals =0.95,#95可信區(qū)間
??????????????????????? study.design = 'cohort')#研究類型,這里是隊列研究
DNAJB9<- decision_curve(Risk_Score~ DNAJB9,data = data3, family = binomial(link ='logit'),
????????????????????? thresholds= seq(0,1, by = 0.01),
????????????????????? confidence.intervals =0.95,study.design ='cohort')
TOMM5<- decision_curve(Risk_Score~ TOMM5,data = data3, family = binomial(link ='logit'),
????????????????????? thresholds= seq(0,1, by = 0.01),
????????????????????? confidence.intervals =0.95,study.design ='cohort')
STAT3<- decision_curve(Risk_Score~ STAT3,data = data3, family = binomial(link ='logit'),
????????????????????? thresholds= seq(0,1, by = 0.01),
????????????????????? confidence.intervals =0.95,study.design ='cohort')
PHF23<- decision_curve(Risk_Score~ PHF23,data = data3,
??????????????????????????? family = binomial(link ='logit'),#模型類型,這里是二分類
??????????????????????????? thresholds= seq(0,1, by = 0.01),
??????????????????????????? confidence.intervals =0.95,#95可信區(qū)間
??????????????????????????? study.design = 'cohort')#研究類型,這里是隊列研究
nomogram<- decision_curve(Risk_Score? ~ RAB24+DNAJB9+TOMM5+STAT3+PHF23,data = data3,
????????????????????????? family = binomial(link='logit'),
????????????????????????? thresholds= seq(0,1, by = 0.01),
????????????????????????? confidence.intervals =0.95,study.design ='cohort')
?
List<-list(RAB24,DNAJB9,TOMM5,STAT3,PHF23,nomogram)
plot_decision_curve(List,curve.names= c('RAB24','DNAJB9','TOMM5','STAT3','PHF23','nomogram'),
??????????????????? cost.benefit.axis =T,col = c('red','blue','green','yellow','brown'),
?????????????????? ?confidence.intervals =FALSE,standardize = F,
??????????????????? legend.position = "topright")#legend.position = "none"
?
最后畫出來的曲線是這樣的

感覺不是很好看,但差不多就是這么個意思,大家明白流程就好。小伙伴們,你們畫出來了嗎。
?
