2013-12-11 2 views
-1

Я пытаюсь построить обратный ecdf (что = "1-F" эквивалент функции Ecdf в Hmisc) с помощью ggplot.Построение обратного ecdf с использованием ggplot2

Вот данные:

dat = data.frame(ID = rep(c(1001:1015),each=3), 
      Month = rep(c("April", "July", "October")), 
      Value = runif(45,2.0,14.6)) 

Я мог бы построить ecdf для каждого месяца с помощью ggplot2:

ggplot(dat, aes(Value, colour = Month)) + stat_ecdf() 

Однако, мне нужно построить обратную ecdf для каждого месяца. Я пробовал несколько способов, но не мог это решить. Любая помощь ценится!

Бест,

дб

+4

Я думаю, вам нужно опубликовать пример ваших данных .. потому что ответ полностью зависит от того, как он отформатирован. –

+0

Спасибо, Стивен! Выложили пример данных. – user3090505

ответ

3

Лучше, если вы можете обмениваться данными, но попробовать:

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

Спасибо Трой. Я обновил свой пост и поместил данные. Лучший, db – user3090505

0

Еще два способа сделать это, как я недавно работал над этим вакцинных клинических испытаний :

  1. Использование Hmisc Ecdf. Это прямолинейно, и он показывает это, хотя трудно понять детали изменения разных элементов графика.

  2. Рассчитать кумулятивное распределение, а затем 1-кумулятивное восстановление в обратном порядке. Постройте обратное, используя ggplot2, используя geom_step, если вам нравится функция шага на графике. Ниже функция будет использовать ecdf от базового г, чтобы дать вам кумулятивное распределение, а затем 1-накопленный:

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

в приведенном выше rcdf является определенным пользователем функцией, определенной с помощью ecdf.

 Смежные вопросы

  • Нет связанных вопросов^_^