R语言机器学习与临床预测模型29--ROC曲线及AUC计算
2022-03-13 本文已影响0人
科研私家菜
本内容为【科研私家菜】R语言机器学习与临床预测模型系列课程
R小盐准备介绍R语言机器学习与预测模型的学习笔记
你想要的R语言学习资料都在这里, 快来收藏关注【科研私家菜】
01 ROC曲线
ROC曲线是在各种阈值设置下的分类问题的性能测量方法。 ROC是概率曲线,AUC表示可分离性的程度。它告诉我们有关模型区分的能力。 AUC越高,模型越好,将0预测为0,将1预测为1。AUC越高,模型越好区分疾病患者和无疾病患者。用TPR对FPR绘制ROC曲线,其中TPR在y轴上,FPR在x轴上。
02 R语言绘制ROC曲线
## 诊断试验ROC分析
example21_2 <- read.table ("data1.csv", header=TRUE, sep=",")
example21_2
attach(example21_2)
summary(example21_2)
str(example21_2) #structure of dataframe
library(ROCR)
pred <- prediction(example21_2$value, example21_2$group)
pred
perf <- performance(pred,"tpr","fpr")
plot(perf,col="red")
abline(a=0,b=1,col="blue")
perf1 <- performance(pred, "prec", "rec")
plot(perf1)
perf2 <- performance(pred, "sens", "spec")
plot(perf2)
auc <- performance(pred,"auc")
auc
detach(example21_2)
# 2
example21_3 <- read.table ("data2.csv", header=TRUE, sep=",")
attach(example21_3)
summary(example21_3)
str(example21_3)
#install.packages("ROCR")
library(ROCR)
pred1 <- prediction(example21_3$mRNA, example21_3$oncology)
pred1
pred2 <- prediction(example21_3$dna, example21_3$oncology)
pred2
perf1 <- performance(pred1,"tpr","fpr")
perf2 <- performance(pred2,"tpr","fpr")
plot(perf1, col="blue")
plot(perf2, col="red", add=TRUE)
abline(a=0,b=1,col="gray")
legend(locator(n=1),legend=c("mRNA","dna"),lty=1,col=c("blue","red"))
auc1 <- performance(pred1,"auc")
auc1
auc2 <- performance(pred2,"auc")
auc2
效果如下:
03 联合诊断ROC
#联合诊断ROC
fit1 <- glm(oncology~ mRNA + dna, family= binomial(), data=example21_3)
summary(fit1)
example21_3$predvalue<-predict(fit1,type="response")
pred <- prediction(example21_3$predvalue, example21_3$oncology)
perf<- performance(pred,"tpr","fpr")
plot(perf)
abline(0,1)
auc <- performance(pred,"auc")
auc #auc即是C-statistics
关注R小盐,关注科研私家菜(VX_GZH: SciPrivate),有问题请联系R小盐。让我们一起来学习 R语言机器学习与临床预测模型