使用ggplot2绘制反向ecdf

时间:2013-12-11 10:02:02

标签: r ggplot2 ecdf

我正在尝试使用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。我试过几种方法,但无法解决这个问题。任何帮助表示赞赏!

最佳,

分贝

2 个答案:

答案 0 :(得分:3)

如果您可以共享数据,那就更好了,但请尝试:

series <- rnorm(1000, 200, 50)
n<-ceiling(max(series))
qplot(1:n,1-(ecdf(series)(1:n)))+geom_step()

答案 1 :(得分:0)

另外两种方法可以做到这一点,因为我最近正在为此进行疫苗临床试验:

  1. 使用Hmisc Ecdf。这是直截了当的,虽然有点难以弄清楚有关更改图形的不同元素的细节,但仍将其绘制出来。

  2. 计算累积分布,然后1累积是反向累积。如果您喜欢图中的阶梯函数,请使用geom_step使用ggplot2绘制反向图。下面的函数将使用来自基数r的ecdf为您提供累积分布,然后使用1累积:

    rcdf <- function (x) {
    cdf <- ecdf(x)
    y <- cdf(x)
    xrcdf <- 1-y
    }
    
  3. 上面的rcdf中的

    是使用ecdf定义的用户定义函数。