2
我比较了两个模型与ROC曲线的性能,我想填充两条曲线之间的区域来显示一个模型的性能优于另一个。我试过使用geom_ribbon
,但问题是两根轴对于每条曲线都不相同。ggplot2:用不同轴线填充空间
这里有一个重复的例子:
##Simulate Data
set.seed(123456)
n <- 10000
q <- 0.8
#Simulate predictions
Real <- c(sample(c(0,1), n/2, replace = TRUE, prob = c(1-q,q)),
sample(c(0,1), n/2, replace = TRUE, prob = c(0.7,0.3)))
#Simulate Response
p <- c(rep(seq(0.4,0.9, length=100), 50),
rep(seq(0.2,0.6, length=100), 50))
p2 <- c(rep(seq(0.5,0.9, length=100), 50),
rep(seq(0.2,0.7, length=100), 50))
p <- data.frame(cbind(Real, p, p2))
#install and load package
#install.packages("pROC")
library(pROC)
#apply roc function
analysis <- roc(response=p$Real, predictor=p$p)
analysis2 <- roc(response=p$Real, predictor=p$p2)
#Plot ROC Curve
#install.packages("ggplot2")
library(ggplot2)
ggplot() +
geom_line(aes(x=1-analysis$specificities,y=analysis$sensitivities)) +
geom_line(aes(x=1-analysis2$specificities,y=analysis2$sensitivities), color = "red")
我怎样才能填补这两条线之间的空间?
谢谢,这真是棒极了!对于那些感兴趣的人,如果你想根据哪种模型更好而使颜色不同,请在'aes()'中设置'fill = Model 1'Model 2'。 –