簡體   English   中英

添加置信區間ggplot

[英]Adding confidence intervals 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')

還試過......

#p + geom_ribbon(data = dd2,aes(ymin = lwr,ymax = upr),alpha = 0.3)#2。

我收到錯誤: Error in eval(expr, envir, enclos) : object 'lwr' not found的錯誤Error in eval(expr, envir, enclos) : object 'lwr' not found ....我錯過了什么?

我也嘗試不使用melt來做到這一點......但是后來我也遇到了傳奇問題!

在第一種方式中,您使用的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) 

這有幫助嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM