R语言做生信

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语言机器学习与临床预测模型

上一篇下一篇

猜你喜欢

热点阅读