首页 > 解决方案 > 如何找到直方图一部分下的区域?

问题描述

muhats = replicate(200000,mean(rexp(18, rate = 3))*exp(((-1/2)*mean(rexp(18, rate = 3)))) )
myhist <- hist(muhats)
plot(myhist)

我有上面的密度函数,是否有一个 R 命令会给我直方图下 2 点之间的区域?我似乎找不到任何地方?

我试图在 x 轴上找到一个点 c,使得 c 左侧的面积为 0.09

标签: rplothistogram

解决方案


您可以使用此函数,它使用梯形规则对密度进行数值积分,并返回超过特定值的第一个值:

density_area_exceeds <- function(vector, limit)
{
  d <- density(vector)
  d$x[cumsum(diff(d$x) * (d$y[-1] + d$y[-length(d$y)])/2) > limit][1]
}

所以你可以这样做:

density_area_exceeds(muhat, 0.09)
#> [1] 0.1961847

所以 x 轴上该点左侧的密度面积为 0.09。

但请注意,这给出的答案与刚刚做的大致相同:

quantile(g, 0.09)
#>        9% 
#> 0.1971049 

推荐阅读