-1

我正在尝试使用 ggplot 绘制反向 ecdf (what="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。我尝试了几种方法,但无法解决。任何帮助表示赞赏!

最好的,

D b

4

2 回答 2

3

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

series <- rnorm(1000, 200, 50)
n<-ceiling(max(series))
qplot(1:n,1-(ecdf(series)(1:n)))+geom_step()
于 2013-12-11T12:35:59.863 回答
0

当我最近在进行疫苗临床试验时,还有两种方法可以做到这一点:

  1. 使用 Hmisc Ecdf。这是直截了当的,虽然有点难以弄清楚改变图表的不同元素的细节。

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

    rcdf <- function (x) {
    cdf <- ecdf(x)
    y <- cdf(x)
    xrcdf <- 1-y
    }
    

上面的 rcdf 是使用 ecdf 定义的用户自定义函数。

于 2016-01-14T18:31:25.847 回答