【问题标题】:How do I change the kernel bandwidth used in a density plot in R如何更改 R 中密度图中使用的内核带宽
【发布时间】:2013-07-19 20:50:38
【问题描述】:

如何查看密度图中的内核使用的带宽以及如何指定要使用的带宽?我试过了

ggplot(mtcars,aes(mpg))+geom_density(bw=1)

没有运气。

【问题讨论】:

  • 只需阅读?stat_density,这反过来又指向density
  • @joran 啊哈,谢谢。我需要“调整”参数。那么,如何查看密度图中实际使用的带宽?
  • 除了自己单独计算之外,我不知道有什么方法可以看到它,例如使用bw.nrd0
  • 我没有足够的声誉来发表评论,而只是补充以前的答案:正如 Joran 所暗示的,除了使用“调整”之外,还有几个替代功能可以使用计算带宽:详见this ggplot documentationthis bandwidth page。注意语法:选择bw.nrd函数,例如你想要density(x,bw = "nrd")

标签: r ggplot2


【解决方案1】:

stat_geom 使用 adjust 参数将乘数应用于 ggplot 计算的最佳带宽,请参阅 documentation for density()。试试:

ggplot(mtcars,aes(mpg))+geom_density() + stat_density(adjust = 2)

我收集以确定计算出的最佳带宽 - 基于“平滑内核的标准偏差” - 你需要询问 Venables, W. N. 和 Ripley, B. D. (2002) Modern Applied Statistics与 S. New York:Springer。

【讨论】:

  • Right MASSe4 索引的第 128 页是可以查看的位置,并且讨论会继续进行几页。
  • 当我将+ stat_density(adjust=2) 应用于具有透明度的geom_density (alpha=0.5) 时,我失去了透明度。有什么想法吗?
  • ggplot(mtcars,aes(mpg)) + stat_density(adjust = 2, alpha=0.5) 如果这不是您想要的,请提供完整的线路并解释您正在寻找的结果
  • @JoseR stat_density 将在旧的geom_density 之上添加一个新的geom_density。您可以直接使用geom_density(adjust = 2),因为geom_density 的额外参数会传递给底层stat_density
猜你喜欢
  • 2014-05-26
  • 2011-10-30
  • 1970-01-01
  • 2016-07-19
  • 2015-08-11
  • 2013-04-15
  • 2015-09-12
  • 1970-01-01
  • 2015-09-22
相关资源
最近更新 更多