r - 如何找到直方图一部分下的区域?
问题描述
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
解决方案
您可以使用此函数,它使用梯形规则对密度进行数值积分,并返回超过特定值的第一个值:
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
推荐阅读
- javascript - JavaScript - 在没有 UTC 偏移的情况下获取用户本地时间
- c# - 无法在 VB.net 子文件夹中维护会话
- javascript - 无法从 Chrome 扩展向 REST API 发送 POST 请求
- java - 调用 entityManager.flush - 调用它两次、一次或根本不调用它的效果
- micronaut - 在单元测试期间禁用 Micronaut 中的定期任务执行
- java - 从片段启动片段会导致显示默认屏幕
- html - 如何在不重新加载整个网页的情况下在角度组件之间切换?
- javascript - chrome 75(Windows 7、MacOS)上的 confirm() 弹出窗口是否存在错误?
- build - 是否可以在 Azure DevOps 的构建管道期间下载文件?
- spring - th:replace 标签中正确的 Thymeleaf 语法