私は、ggplot2を使用して、影付き領域で表された「信頼区間」を持つデータのECDFを描画しようとしています。 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
私はのymin
とymax
美学としてlower
とupper
を使用することができませんしかし
library("ggplot2")
ggplot(dat, aes(x = variable)) +
geom_step(stat = "ecdf")
を使用して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
を上げる日陰信頼区間を生成するためにstat_ecdf()
での作業にgeom_ribbon()
を同軸する方法はありますか?あるいは、lower
とupper
で定義された網掛けのポリゴンをECDFプロットのレイヤーとして追加する方法をお勧めしますか?
ggplot(dat, aes(x = variable)) +
geom_ribbon(aes(x = variable,ymin = ..y..-2,ymax = ..y..+2), stat = "ecdf",alpha=0.2) +
geom_step(stat = "ecdf")
オクラホマので、それはあなたがやろうとしたものと同じものではないが、それが起こっているのかを説明する必要があります
ありがとうございます。最後の文章を拡大できますか?私がこれを完全に守っているかどうかは確かではありませんが、あなたの答えからわかる限り、 'lower'と' upper'がすでに存在するなら 'stat_ecdf'でこれを行うことはできませんか? +/- 2ビットは単にダミーデータでした。私が持っているCI情報は、適合モデルから計算された導出統計の事後シミュレーションの結果です。 –
@GavinSimpsonはい、それはggplotで直接には不可能だと思いますが(これは追加するには便利な機能かもしれませんが)私が最後のビットで意味したのは、すべてのECDF値を手動で計算してプロットしなければならないかもしれないということでした。 – joran
ありがとう、私はあなたが意味するものを参照して、直接累積比率を計算します。私はそれを与えるでしょう。 +1 –