我正在尝试使用ggplot绘制反向ecdf(什么=“1-F”相当于Hmisc中的Ecdf函数)。
以下是数据:
dat = data.frame(ID = rep(c(1001:1015),each=3),
Month = rep(c("April", "July", "October")),
Value = runif(45,2.0,14.6))
我可以使用ggplot2绘制每个月的ecdf:
ggplot(dat, aes(Value, colour = Month)) + stat_ecdf()
但是,我需要为每个月绘制反向ecdf。我试过几种方法,但无法解决这个问题。任何帮助表示赞赏!
最佳,
分贝
答案 0 :(得分:3)
如果您可以共享数据,那就更好了,但请尝试:
series <- rnorm(1000, 200, 50)
n<-ceiling(max(series))
qplot(1:n,1-(ecdf(series)(1:n)))+geom_step()
答案 1 :(得分:0)
另外两种方法可以做到这一点,因为我最近正在为此进行疫苗临床试验:
使用Hmisc Ecdf。这是直截了当的,虽然有点难以弄清楚有关更改图形的不同元素的细节,但仍将其绘制出来。
计算累积分布,然后1累积是反向累积。如果您喜欢图中的阶梯函数,请使用geom_step使用ggplot2绘制反向图。下面的函数将使用来自基数r的ecdf为您提供累积分布,然后使用1累积:
rcdf <- function (x) {
cdf <- ecdf(x)
y <- cdf(x)
xrcdf <- 1-y
}
是使用ecdf定义的用户定义函数。