gpt4 book ai didi

r - ggplot2,直方图 : why do y = . .密度 .. 和 stat = "density"有什么不同?

转载 作者:行者123 更新时间:2023-12-01 13:29:26 25 4
gpt4 key购买 nike

假设我有这个数据框 df :

structure(list(max.diff = c(6.02, 7.56, 7.79, 7.43, 7.21, 7.65, 
8.1, 7.35, 7.57, 9.09, 6.21, 8.2, 6.82, 7.18, 7.78, 8.27, 6.85,
6.72, 6.67, 6.99, 7.32, 6.59, 6.86, 6.02, 8.5, 7.25, 5.18, 8.85,
5.44, 6.44, 7.85, 6.25, 9.06, 8.19, 5.08, 6.26, 8.92, 6.83, 6.5,
7.55, 7.31, 5.83, 5.55, 4.29, 8.29, 8.72, 9.5)), class = "data.frame", row.names = c(NA,
-47L), .Names = "max.diff")

我想使用 ggplot2 将其绘制为密度图:
p <- ggplot(df, aes(x = max.diff)) 
p <- p + geom_histogram(stat = "density")
print(p)

这使,

enter image description here

现在,一个天真的问题:为什么这不会给出相同的结果?
p <- ggplot(df, aes(x = max.diff)) 
p <- p + geom_histogram(aes(y = ..density..))
print(p)

enter image description here

这是因为选择了 binwidthbins的数量或其他一些参数?到目前为止,我还没有能够调整这些参数使它们相同。还是我在策划一些完全不同的事情?

最佳答案

第二个示例是重新调整直方图计数,以便条形区域积分为 1,但其他方面与标准 ggplot2 直方图相同。您可以使用 bins 调整条的数量或 binwidth论据。

第一个示例是计算核密度估计并将输出(每个 x 值的估计密度)绘制为直方图。您可以使用 adjust 更改密度估计的平滑量。参数,以及使用 n 计算密度的点数争论。
geom_histogram 的默认值是 bins=30 . stat="density" 的默认值是 adjust=1n=512 ( stat="density" 使用 density 函数来生成值)。 stat="density"由于density的方式,输出比直方图输出平滑得多选择密度估计的带宽。减少adjust参数减少了平滑量。

下面的前两个示例是您的绘图。后两个使用对各自参数的调整来获得两个大致相似的图,尽管不完全相同,因为内核密度估计仍在平滑输出。这只是为了说明。核密度估计和直方图是两个不同的、思想相关的东西。

ggplot(df, aes(x = max.diff)) +
geom_histogram(stat = "density") +
ggtitle("stat='density'; default paramters")

ggplot(df, aes(x = max.diff)) +
geom_histogram(aes(y = ..density..), colour="white") +
ggtitle("geom_histogram; default parameters")

ggplot(df, aes(x = max.diff)) +
geom_histogram(stat = "density", n=2^5, adjust=0.1) +
ggtitle("stat='density'; n=2^5; Adjust=0.1")

ggplot(df, aes(x = max.diff)) +
geom_histogram(aes(y = ..density..), bins=2^5, colour="white") +
ggtitle("geom_histogram; bins=2^5")

enter image description here

关于r - ggplot2,直方图 : why do y = . .密度 .. 和 stat = "density"有什么不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46734555/

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