【问题标题】:Plot kernel density estimation with the kernels over the individual observations in R在 R 中的单个观察值上使用内核绘制内核密度估计
【发布时间】:2016-12-10 16:26:00
【问题描述】:

为了简短起见,我想要实现的是一个像正确的情节:

我想获得一个标准的 KDE 图,其各个内核绘制在观察结果上。

最好的解决方案是考虑所有不同的核函数(例如矩形、三角形等)。

【问题讨论】:

  • 每次观察的内核代表什么?某种不确定性度量?
  • 内核的结果是一个概率密度函数(红线)。 KDE 实际上是通过“总结”这些内核而组成的。也许,这个link 有助于理解
  • 您的提示帮助我计算了单个内核,所以我想念的最后一件事是将两个图调整到相同的比例,以便可以正确地将其绘制在同一个图中。有人对此有任何想法吗?

标签: r plot kernel-density


【解决方案1】:

在阅读了Answer 之后,我设法想出了一个解决方案。

# Create some input data
x<-c(19, 20, 10, 17, 16, 13, 16, 10,  7, 18)


# Calculate the KDE
kde<-density(x,kernel="gaussian",bw=bw.SJ(x)*0.2)

# Calcualte the singel kernels/pdf's making up the KDE of all observations
A.kernel<-sapply(x, function(i) {density(i,kernel="gaussian",bw=kde$bw)},simplify=F)
sapply(1:length(A.kernel), function(i){A.kernel[[i]][['y']]<<-(A.kernel[[i]][['y']])/length(x)},simplify=F)


# Plot everything together ensuring the right scale (the area of the single kernels is corrected) 
plot(kde)
rug(x,col=2,lwd=2.5)
sapply(A.kernel, function(i){
        lines(i,col="red")}
        )

结果如下所示:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 2021-01-25
    • 2013-04-15
    • 2018-12-19
    • 2017-10-14
    相关资源
    最近更新 更多