两个模型比较,与第一个模型相比,NRI=(重新分对的 - 重新分错的)/总人数。IDI=(新模型患者平均预测概率-旧模型患者平均预测概率)-(新模型非患者平均预测概率-旧模型非患者平均预测概率)。NRI=0无改善,>0新模型优于旧模型。IDI正值且越大越好。
1、非生存资料:广义线性模型
library(PredictABEL)
#数据集
data1<-data.frame(a=rnorm(n=1000,mean=6,sd=5),
b=rnorm(1000,30,9),
c=rnorm(1000,17,8),
cOutcome=sample(c(0,1),1000,replace=T))
#建模
model_1<-glm(cOutcome~.,data1,family="binomial")
model_2<-glm(cOutcome~a+c,data1,family="binomial")
#计算NRI和IDI
pre1<-predRisk(model_1)
pre2<-predRisk(model_2)#=model_2$fitted.values
reclassification(data = data1, cOutcome = 4,
predrisk1 = pre1, predrisk2 = pre2, cutoff = c(0,0.6,1))
NRI<0,第二个模型较第一个模型差,降低了0.23%(IDI),但是均为统计学意义。
2、生存资料
#生存资料:CoIDI_NRI回归
library(survival)
data(cancer)
colnames(lung)
lung<-na.omit(lung)
coIDI_NRI1<- coIDI_NRIph(Surv(time, status) ~age+ph.ecog,
data=lung,IDI_NRI=T)
coIDI_NRI2 <- coIDI_NRIph(Surv(time, status) ~.,
data=lung,IDI_NRI=T)
#install.packages("nricens")
#1 利用nricens包
library(nricens)
nricens(mdl.std = coIDI_NRI1,
mdl.new = coIDI_NRI2,
t0 = 100,
cut = c(0.2, 0.4),
niter = 10)
#2 利用survIDINRI包
#install.packages("survIDINRI")
library(survIDINRI)
help(package="survIDINRI")
data_2 <- lung[,c("time","status")]
covs0 <- lung[,c("age","sex")]
covs1 <- lung[,c("age","sex","ph.ecog","ph.karno")]
IDI_NRI<-IDI.INF(data_2,covs0 = as.matrix(covs0),
covs1=as.matrix(covs1),
t0=500,
npert=10)
IDI.INF.OUT(IDI_NRI)
文章来源:https://www.toymoban.com/news/detail-649382.html
文章来源地址https://www.toymoban.com/news/detail-649382.html
到了这里,关于R语言实现计算净重新分类指数(NRI)和综合判别改善指数(IDI)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!