相关疑难解决方法(0)

如何正确解释ggplot的stat_density2d

我最初的目标是绘制一个单独的点群,然后绘制一个凸起的船体,其中80%的人口集中在人口的质量上.

在尝试了一些想法之后,我想出的最佳解决方案是使用ggplot's stat_density2d.虽然这对于定性分析非常有用,但我仍然需要指出80%的边界.我开始寻找一种方法来勾勒出80%的人口边界,但我可以使用80%的概率密度边界.

这是我在寻求帮助的地方.(使用者)的bin参数没有明确记录.如果我在下面的例子中设置= 4,我是否正确地将中心(绿色)区域解释为包含25%概率质量而组合的黄色,红色和绿色区域表示75%概率质量?如果是这样,通过将bin更改为= 5,那么内接区域是否会等于80%的概率质量?kde2dstat_density2dbin

set.seed(1)
n=100

df <- data.frame(x=rnorm(n, 0, 1), y=rnorm(n, 0, 1))

TestData <- ggplot (data = df) +
  stat_density2d(aes(x = x, y = y, fill = as.factor(..level..)), 
  bins=4, geom = "polygon", ) +
  geom_point(aes(x = x, y = y)) +
  scale_fill_manual(values = c("yellow","red","green","royalblue", "black"))

TestData
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我重复了一些测试用例并手动计算了被排除的点[希望找到一种方法来计算它们基于...它们被包含在内的......等级]但是考虑到数据的随机性(我的真实数据和测试数据)该stat_density2d区域以外的点数变化足以保证寻求帮助.

总而言之,是否有一种实用的方法可以在数据框中的80%中心点周围绘制多边形?或者说,我可以安全使用stat_density2d并将bin设置为5以产生80%的概率质量?


布莱恩汉森的优秀答案消除了模糊的概念,即我可以传递一个未记录的bin参数stat_density2d.结果看起来接近bin4到6左右的值,但正如他所说,实际功能是未知的,因此无法使用.

我使用了DWin接受的答案中提供的HDRegionplot来解决我的问题.为此,我添加了一个重心(COGravity)并指向包中的polygon(pnt.in.poly) …

r ggplot2

11
推荐指数
1
解决办法
7287
查看次数

标签 统计

ggplot2 ×1

r ×1