模型構(gòu)建完成后需要對模型進(jìn)行評估和驗(yàn)證其性能。模型預(yù)測的生存率與實(shí)際的差距有多大呢?一般是看校準(zhǔn)曲線。
例:一個(gè)模型(其C指數(shù)為0.8)評估某位患者5年復(fù)發(fā)率為70%够话。說明該模型有80%的把握確認(rèn)復(fù)發(fā)率=70%。那70%這個(gè)數(shù)與實(shí)際相差有多大呢光绕,那就需要看校準(zhǔn)曲線了女嘲。
從這個(gè)例子可以看出,C指數(shù)或AUC值是判斷模型的區(qū)分能力的诞帐,即有多大把握預(yù)測復(fù)發(fā)率為70%欣尼,而校準(zhǔn)曲線是看與預(yù)測與實(shí)際相符程度的,即預(yù)測的這個(gè)70%復(fù)發(fā)率與實(shí)際復(fù)發(fā)率有多大差別景埃。
統(tǒng)計(jì)學(xué)方法部分媒至,一般是介紹校準(zhǔn)曲線的目的、使用方法和抽樣次數(shù)等谷徙;
在匯報(bào)結(jié)果時(shí):描述校準(zhǔn)曲線時(shí)應(yīng)圍繞精確性和一致性展開拒啰,以此來說明模型的預(yù)測性能很好。
載入R包和數(shù)據(jù): https://t.1yb.co/ncpr
#1.r包
library(rms)
#2.載入數(shù)據(jù)完慧,status=0為復(fù)發(fā)
rm(list = ls()) #清理環(huán)境
aa<- read.csv('校準(zhǔn)曲線.CSV')
names(aa)
#3.數(shù)據(jù)轉(zhuǎn)換
#用for循環(huán)將本例中第4-9個(gè)變量批量轉(zhuǎn)為分類
for (i in names(aa)[c(4:9)]){aa[,i] <- as.factor(aa[,i])}
1谋旦、設(shè)置數(shù)據(jù)環(huán)境
nomo<-datadist(aa)
options(datadist='nomo')
2、構(gòu)建列線圖的Cox回歸模型
nomo1 <- cph(Surv(time,status==0)~age+n+hr+her2+g+rt,
x=T,y=T,
data=aa,
surv=T,
time.inc=12*5#示例數(shù)據(jù)time=月所以12*5就是評估5年的校準(zhǔn)曲線
)#這里的time.inc一定要與下面畫校準(zhǔn)曲線的函數(shù)一致屈尼,不然圖會(huì)出錯(cuò)册着!
3、模型校準(zhǔn)曲線繪制
p<- calibrate(nomo1,#模型名稱
cmethod='KM',
method='boot',#檢測方法
u=12*5,#評估的時(shí)間脾歧,注:一定要與模型的時(shí)間一致
m=1500, #每次抽樣的樣本量甲捏,
B=1000)#抽樣次數(shù)
#注,m值的確定:m=數(shù)據(jù)總數(shù)/3-4,即你想讓最終的校準(zhǔn)曲線有3個(gè)點(diǎn)鞭执,那就是m=數(shù)據(jù)總數(shù)/3
#B值一般1000司顿,電腦配置不好可以選500,300,100等
plot(p,
add=F,#增加第二條線
conf.int=T,#95%CI
subtitles = T,#副標(biāo)題
cex.subtitles=0.8, #副標(biāo)題大小
lwd=2,#95%CI粗細(xì)
lty=1,#95%CI實(shí)線,2=虛線
errbar.col="blue",#95%CI顏色
xlim=c(0.0,1),#x軸范圍
ylim=c(0.0,1),
xlab="列線圖預(yù)測的5年OS",
ylab="實(shí)際5年OS",
col="red")#曲線顏色
4兄纺、校準(zhǔn)曲線美化
plot(p,
add=F,
conf.int=T,#95%CI(藍(lán)色線)
subtitles = F,#關(guān)閉副標(biāo)題
cex.subtitles=0.8,
lwd=2,
lty=1,
errbar.col="blue",
xlim=c(0.25,0.4),#調(diào)節(jié)x.y軸刻度范圍
ylim=c(0.25,0.4),
xlab="列線圖預(yù)測的5年OS",
ylab="實(shí)際5年OS",
col="red")
5. 3年和5年校準(zhǔn)曲線畫在一張圖上
plot( )里add=T大溜。
將2/3步中模型和校準(zhǔn)的時(shí)間均設(shè)定為12*3,
修改一下顏色以作區(qū)別估脆。
調(diào)整x.y刻度范圍使兩曲線合適顯示
plot(p,
add=T,
conf.int=T,
subtitles = F,
cex.subtitles=0.8,
lwd=2,
lty=1,
errbar.col="orange",
xlim=c(0.25,0.7),
ylim=c(0.25,0.7),
xlab="列線圖預(yù)測的3年和5年OS",
ylab="實(shí)際3年和5年OS",
col="#407600")
#加上圖例
legend("bottomright", legend=c("5年", "3年"), col=c("red", "407600"), lwd=2)
#調(diào)整對角線
abline(0,1,lty=3,lwd=1,col="grey")
注意:本例由于數(shù)據(jù)量大钦奋,95%CI小,再加上患者死亡率較低疙赠,兩個(gè)曲線分布差異有點(diǎn)大付材。所以強(qiáng)行將兩曲線放在一個(gè)圖里并不十分美觀。
這里只是做一個(gè)簡單的示例棺聊,大家根據(jù)自己實(shí)際需要自行選擇伞租。
文章數(shù)據(jù)鏈接:https://t.1yb.co/ncq0