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'。 –