是否可以提前知道密度的最大值?

Is it possible to know the maximum value of density in advance?

考虑以下示例图:

mtcars %>% ggplot() + stat_bin(aes(x=wt, y=..density..), binwidth=0.2)

密度的最大值接近0.8。是否可以知道它的 确切 值?

根据 stat_bin 文档,..density.. 表示 bin 中点的 密度,缩放为 1,但这对我没有帮助了解这些值在实践中是如何计算的,或者如何获得最大密度点(因为它也取决于 binwidth 集)。

我得到的越接近:

binwidth = 0.2
((mtcars$wt %/% binwidth)*binwidth) %>% table %>% prop.table %>% max

但它确实 return 图中观察到的值。

有什么想法吗?

不清楚提前指的是什么,但如果你正在寻找密度曲线的最大值,那么试试这个:

dens <- density(mtcars$wt)
plot(dens)

max(dens$y)
## [1] 0.5068726

你可以试试这个

binwidth=0.2
x=mtcars$wt
x_bins <- table(cut(x,breaks=seq(min(x),max(x),by = binwidth)),useNA = "ifany" )
max(x_bins)/(sum(x_bins)*binwidth )
#[1] 0.78125

gg_plot <- mtcars %>% ggplot() + stat_bin(aes(x=wt, y=..density..), binwidth=binwidth)
max(ggplot_build(gg_plot)$data[[1]][[1]])