我想用一個「置信區間」來描繪一些數據的ECDF,這個「置信區間」是用陰影區域代表的,使用ggplot2。我無法合併geom_ribbon()
與stat_ecdf()
以達到我之後的效果。如何結合stat_ecdf和geom_ribbon?
考慮下面的示例數據:
set.seed(1)
dat <- data.frame(variable = rlnorm(100) + 2)
dat <- transform(dat, lower = variable - 2, upper = variable + 2)
> head(dat)
variable lower upper
1 2.534484 0.5344838 4.534484
2 3.201587 1.2015872 5.201587
3 2.433602 0.4336018 4.433602
4 6.929713 4.9297132 8.929713
5 3.390284 1.3902836 5.390284
6 2.440225 0.4402254 4.440225
我能夠使用
library("ggplot2")
ggplot(dat, aes(x = variable)) +
geom_step(stat = "ecdf")
但是我無法使用lower
和upper
爲一體的ymin
和ymax
美學產生的variable
的ECDF geom_ribbon()
將置信區間疊加在圖上作爲另一層。我曾嘗試:
ggplot(dat, aes(x = variable)) +
geom_ribbon(aes(ymin = lower, ymax = upper), stat = "ecdf") +
geom_step(stat = "ecdf")
但是這引發了以下錯誤
Error: geom_ribbon requires the following missing aesthetics: ymin, ymax
是否有辦法哄geom_ribbon()
與stat_ecdf()
工作產生陰影的置信區間?或者,任何人都可以提出一種替代方法,將由lower
和upper
定義的陰影多邊形添加爲ECDF圖的圖層?
謝謝喬蘭。你可以擴展你的最後一句話嗎?不知道我是否完全遵循這一點,但據我的回答可以告訴我,如果'lower'和'upper'已經存在,我不能通過'stat_ecdf'來做到這一點? +/- 2位僅僅是虛擬數據;我所擁有的CI信息是從擬合模型計算得出的派生統計量的後驗模擬結果。 –
@GavinSimpson是的,我認爲它不可能直接在ggplot中(儘管這將是一個很好的功能,我認爲)。我最後的意思是你可能必須手動計算所有的ECDF值,然後繪製它們。 – joran
謝謝,我明白你的意思,直接計算累積比例。我會給那個做。 +1 –