在不使用密度的情况下在R中分层密度图()

时间:2015-07-08 21:16:01

标签: r ggplot2 lattice kernel-density

我使用KernSmooth软件包计算并绘制了高斯核密度估计值,如下所示:

 x <- MyData$MyNumericVector
 h <- dpik(x)
 est <- bkde(x, bandwidth=h)
 plot(est, type='l')

这是KernSmooth的文档中描述的方法。请注意,dpik()找到最佳带宽,bkde()使用此带宽来拟合内核密度估算。使用此方法而不是基本的density()函数非常重要。

如何将这些图层叠在一起?

我无法使用density()来自geom_density()的基本ggplot2函数,因为带宽和内核密度估算最好使用KernSmooth软件包进行优化(参见Deng&amp; Wickham,2011)这里:http://vita.had.co.nz/papers/density-estimation.pdf)。既然Wickham写了ggplot2以及上面关于内核密度估计软件包的评论,那么使用ggplot2来分层密度并不依赖于基本密度的方法是有道理的。 {1}}功能,但我不确定。

即使我不想使用基本的density()功能,我还可以使用ggplot2吗?那么density()呢?

1 个答案:

答案 0 :(得分:0)

您可以使用geom_line执行此操作:

 m <- ggplot(NULL, aes(x=bkde(movies$votes)$x,y=bkde(movies$votes)$y)) + geom_line()
 print(m)

如果您正在使用lattice :: densityplot,您可以将一些值添加到drags-list中:

  

DARG
  要传递给密度函数的参数列表。通常,这应该是一个包含零个或多个以下组件的列表:bw,adjust,kernel,window,width,give.Rkern,n,from,to,cut,na.rm(详见密度)