2017-11-20 7 views
0

Rを使用して以下の画像を再現することを試みました.0.225と.95のレベルに片側と両側の仮説を表現することです。濃度プロットは2.5%と5%で網掛けされています

enter image description here

私は他の質問からリソースを使用して分位内日陰を作成するために管理が、私はありません内部、境界の外にそれをしたいです。コード:

set.seed(1) 
draws <- rnorm(1000000) 
dens <- density(draws) 

q025 <- quantile(draws, .025) 
q975 <- quantile(draws, .975) 

dd <- with(dens, data.frame(x, y)) 

library(ggplot2) 

qplot(x, y, data = dd, geom="line") + 
    geom_ribbon(data = subset(dd, x > q025 & x < q975), 
       aes(ymax = y), 
       ymin = 0, fill = "red", colour = NA, alpha = 0.5) 

は生成:

enter image description here

答えて

1

これは少し不格好ですが、動作するようです。塗りつぶしが完全ではないことに注意してください。

set.seed(1) 
draws <- data.frame(x = rnorm(1000000)) 
q025 <- quantile(draws$x, .025) 
q975 <- quantile(draws$x, .975) 

ggplot(draws, aes(x)) + 
    geom_density() + 
    stat_function(fun = dnorm, xlim = c(min(draws$x), q025), geom = "area") + 
    stat_function(fun = dnorm, xlim = c(q975, max(draws$x)), geom = "area") 

結果:

enter image description here

EDITは:ここに滑らかに塗りと遅くバージョンです。

set.seed(1) 
draws <- rnorm(1000000) 
dd <- data.frame(x = draws, y = dnorm(draws)) 
q025 <- quantile(draws$x, .025) 
q975 <- quantile(draws$x, .975) 

ggplot(dd, aes(x, y)) + 
    geom_line() + 
    stat_function(fun = dnorm, xlim = c(min(draws$x), q025), geom = "area") + 
    stat_function(fun = dnorm, xlim = c(q975, max(draws$x)), geom = "area") 

結果:

enter image description here

関連する問題