可以事先知道密度的最大值吗?

时间:2019-05-15 13:05:35

标签: r probability-density density-plot

请考虑以下示例图:

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

但是它确实返回了在图中观察到的值。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

不清楚是什么,但是如果要查找密度曲线的最大值,请尝试以下操作:

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

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

答案 1 :(得分:1)

您可以尝试

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]])