是否可以提前知道密度的最大值?
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]])
考虑以下示例图:
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]])