我使用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()
呢?
答案 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(详见密度)