模型除了内部验证还有外部验证。模型的外部验证就是使用另外的数据来验证模型的好坏,增强自己模型可信的说服力。模型的外部验证方法有很多种如:C-index、AUC IDI、NRI等,使用SPSS也是可以的。我们来一一进行演示,本章先说C-index,这种方法主要用于COX回归。
模型外部验证涉及到两个关键的指标:校准度和区分度。预测模型有优劣之分,好的模型不仅可以较准确的预测终点事件发生概率(校准度好),也可以很好地区分数据集中发生终点事件概率不同的对象(区分度好)
沿着我们之前的帖子,手**把手教你使用R语言建立COX回归并画出列线图(Nomogram)** 已经介绍了R语言建立COX回归模型后,并进行了内部验证(可以参看以下原来的帖子),今天我们继续往后讲外部验证。
首先外部验证要有外部数据,我们目前没有数据,把原来数据取一部分当做外部数据好了
be<- bg[50:150, c(2:8,10)]#建立新的外部数据集
pre1<-predict(f, newdata=be)#设定预测值
f1 <- cph(Surv(time, status)~pre1,
x=T, y=T, surv=T, data=be, time.inc=36)#
validate(f1, method="boot", B=1000, dxy=T)
rcorrcens(Surv(time, status) ~pre1, data = be)
区分度计算:
3年
fev3 <- cph(Surv(time, status) ~ pre1,
x=T, y=T, surv=T, data=be, time.inc=36)
calev3 <- calibrate(fev3, cmethod="KM", method="boot", u=36, m=200, B=1000)
plot(calev3)
fev5<- cph(Surv(time, status) ~ pre1,
x=T, y=T, surv=T, data=be, time.inc=60)
calev5<- calibrate(fev5, cmethod="KM", method="boot", u=60, m=200, B=1000)
plot(calev5)
fev10<- cph(Surv(time, status) ~ pre1,
x=T, y=T, surv=T, data=be, time.inc=120)
calev10<- calibrate(fev3, cmethod="KM", method="boot", u=120, m=200, B=1000)
plot(calev10)