2014-11-19 4 views
4

Я хочу рассчитать интервалы доверия установленных значений. Я читал некоторые должности, связанные, но я до сих пор stuck..These являются образцом даты:Добавление доверительных интервалов ggplot

pd <-structure(list(date = 1:5, obs = c(44.6651011845397, 62.3441339250369, 
      52.8968240161506, 51.7795930633478, 63.1284636561025), pred = c(47.2643891039645, 
      55.7996450577325, 52.9566469533233, 51.3393289316, 59.0011440099732)), 
      .Names = c("date", "obs", "pred"), row.names = c(NA, 5L), class = "data.frame") 

pd2 <- structure(list(date = 1:5, lwr = c(44.8529592578518, 54.9926370476338, 
     51.7358955911624, 49.401869166722, 58.1674619447108), upr = c(49.6758189500772, 
     56.6066530678312, 54.1773983154842, 53.2767886964779, 59.8348260752356 
     )), .Names = c("date", "lwr", "upr"), row.names = c(NA, 5L), class = "data.frame") 

dd <- melt(pd, id=c("date")) #Data 
dd2 <- melt(pd2,id=c("date")) #Intervals of conf. 
p <- ggplot(dd) + geom_line(aes(x=date, y=value, colour=variable)) 
p <- p + geom_smooth(aes(x=date, y=value, ymax=lwr, ymin=upr), #1 way 
      colour='grey', data=dd2, stat='identity') 

Также пробовал ...

# р + geom_ribbon (данные = DD2, АЕС (Ymin = LWR , ymax = upr), alpha = 0,3) # 2.

Я получил ошибку: Error in eval(expr, envir, enclos) : object 'lwr' not found .... что я пропущу?

Я также пытался сделать это, не используя melt ... но тогда у меня также были проблемы с легендой!

ответ

4

В первом случае объект dd, который вы используете, не имеет столбцов lwr/upr. Так что вы не можете их замышлять.

Вы можете сделать:

dd<-merge(dd,pd2,by='date') 

только после того, как расплавы, а затем:

p <- ggplot(dd) + geom_line(aes(x=date, y=value, colour=variable)) 
p + geom_ribbon(data=dd,aes(x=date, y=value, ymin=lwr,ymax=upr, group=variable),alpha=0.3) 

Является ли это Порция?

+0

Большое спасибо! Он работает сейчас! – user3231352

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