scitable包是我自己编写的,集合众多函数的一个R包,目前升级到3.1版,升级了sciroc曲线发,这个函数是专门为了制作各种ROC曲线的而编写的,下面我来演示一下。
导入R包和数据, 我们使用人流后导致不孕的数据集(关注公众号后回复:不孕症,可以获得数据),我们先导入看一下
library(scitable)
bc<-read.csv("E:/r/test/buyunzheng.csv",sep=',',header=TRUE)
数据有8个指标,最后两个是PSM匹配结果,我们不用理他,其余六个为:
Education:教育程度,age:年龄,parity产次,induced:人流次数,case:是否不孕,这是结局指标,spontaneous:自然流产次数。
有一些变量是分类变量,我们需要把它转换一下
bc$education<-ifelse(bc$education=="0-5yrs",0,ifelse(bc$education=="6-11yrs",1,2))
bc$spontaneous<-as.factor(bc$spontaneous)
bc$case<-as.factor(bc$case)
bc$induced<-as.factor(bc$induced)
bc$education<-as.factor(bc$education)
简单做个数据拆分,把数据分成bc_train和bc_test
##数据拆分
tr1<- sample(nrow(bc),0.7*nrow(bc))##随机无放抽取
bc_train <- bc[tr1,]#70%数据集
bc_test<- bc[-tr1,]#30%数据集
我们现在拿bc_train建模,等下拿bc_test来验证
##建模
f1<- glm(case ~ age + education + parity + induced+spontaneous,
family = binomial(link = logit), data = bc_train)
绘图
sciroc(f1)
怎么做验证集的roc呢,在参数newdata上进入验证集数据就可以了
##应用到其他数据
sciroc(f1,newdata = bc_test)
重抽样ROC,这个一般在本数据集就可以了,
sciroc(f1,boot = T)
这样各种ROC曲线就绘制完成了,新手小白也能驾驭各种roc曲线绘制,特别适合新手