В R ggplot2 включите конечные точки stat_ecdf () (0,0) и (1,1)
Я пытаюсь использоватьstat_ecdf()
построить кумулятивные успехи как функцию оценки ранга, созданной прогнозной моделью.
#libraries
require(ggplot2)
require(scales)
# fake data for reproducibility
set.seed(123)
n <- 200
df <- data.frame(model_score= rexp(n=n,rate=1:n),
obs_set= sample(c("training","validation"),n,replace=TRUE))
df$model_rank <- rank(df$model_score)/n
df$target_outcome <- rbinom(n,1,1-df$model_rank)
# Plot Gain Chart using stat_ecdf()
ggplot(subset(df,target_outcome==1),aes(x = model_rank)) +
stat_ecdf(aes(colour = obs_set), size=1) +
scale_x_continuous(limits=c(0,1), labels=percent,breaks=seq(0,1,.1)) +
xlab("Model Percentile") + ylab("Percent of Target Outcome") +
scale_y_continuous(limits=c(0,1), labels=percent) +
geom_segment(aes(x=0,y=0,xend=1,yend=1),
colour = "gray", linetype="longdash", size=1) +
ggtitle("Gain Chart")
Все, что я хочу сделать, это заставить ECDF начинаться с (0,0) и заканчиваться с (1,1), чтобы не было пропусков в начале или конце кривой. Если возможно, я хотел бы сделать это в синтаксисеggplot2
, но я бы согласился на умный обходной путь.
@ Хенрик, это НЕ дубликатэтот вопроспотому что я уже определил свои пределы сscale_x_
а также_y_continuous()
и добавлениеexpand_limits()
ничего не делает Это не источник PLOT, а конечные точки stat_ecdf (), которые необходимо исправить.