【问题标题】:How to find the area under a portion of a histogram?如何找到直方图一部分下的区域?
【发布时间】:2020-10-02 14:29:09
【问题描述】:
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

【问题讨论】:

  • 您的意思是myhist &lt;- hist(g, probability=T) 吗?
  • 您确定要直方图下方的区域吗?或者您是否试图从您的数据中估计一个分位数?有比查看直方图下的面积更好的方法来估计分位数。
  • @Dason 试图估计一个分位数
  • gmuhats 是同一个东西吗?
  • quantile(g, 0.09)

标签: r plot histogram


【解决方案1】:

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

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 

【讨论】:

  • ecdf 会更合适吗?
  • @r2evans 我认为它更像是 ecdf 的倒数。如果你这样做ecdf(g)(quantile(g, x)),你会得到x
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-17
  • 1970-01-01
  • 1970-01-01
  • 2018-11-30
  • 1970-01-01
相关资源
最近更新 更多