gpt4 book ai didi

r - 如何解释不同的 ggplot2 密度?

转载 作者:行者123 更新时间:2023-12-03 13:35:20 26 4
gpt4 key购买 nike

我对 geom_density 的以下变体的含义感到困惑在ggplot中:

有人可以解释这四个电话之间的区别:

  • geom_density(aes_string(x=myvar))
  • geom_density(aes_string(x=myvar, y=..density..))
  • geom_density(aes_string(x=myvar, y=..scaled..))
  • geom_density(aes_string(x=myvar, y=..count../sum(..count..)))

  • 我的理解是:
  • geom_density单独将产生一个密度,其曲线下面积之和为 1
  • geom_density..density..基本上是一样的……?
  • ..count../sum(..count..)会将峰高归一化,使其更像归一化直方图,确保所有高度总和为 1
  • ..count..如果没有分母,它本身只会将每个 bin 乘以其中的项目数
  • ..scaled..参数将使密度的最大值为1。

  • 我找到 ..scaled..非常违反直觉,如果我对它的解释是正确的,我从未见过它使用过,所以我想忽略它。我主要是想澄清 geom_density 之间的区别。和一种归一化密度图,我假设它需要 ...count../...争论。谢谢。

    (相关: Error with ggplot2 mapping variable to y and using stat="bin")

    最佳答案

    stat_density 的默认美学是 ..density.. ,所以调用geom_density使用 stat_density默认情况下,将绘制 y = ..density..默认情况下。

    您可以通过查看 source code 来了解各个列是如何计算的。
    ..scaled..定义为

    densdf$scaled <- densdf$y / max(densdf$y, na.rm = TRUE)

    如果您愿意,请随意忽略它。

    看着 source code for stat_bin

    结果是这样计算的
    res <- within(results, {
    count[is.na(count)] <- 0
    density <- count / width / sum(abs(count), na.rm=TRUE)
    ncount <- count / max(abs(count), na.rm=TRUE)
    ndensity <- density / max(abs(density), na.rm=TRUE)
    })

    所以如果你想比较 geom_histogram的结果(使用默认 stat = 'bin' ),则可以设置 y = ..density..它会计算 count / sum(count)为你(考虑垃圾箱的宽度)

    如果你想比较 geom_density(aes(y=..scaled..))stat_bin ,那么您将使用 geom_histogram(aes(y = ..ndensity..))
    您可以使用 ..count.. 使它们达到相同的比例。在两者中也是如此,但是您需要调整 adjust stat_density 中的参数以获得曲线的适当详细的近似值。

    关于r - 如何解释不同的 ggplot2 密度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15664202/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com