【问题标题】:Coordinates of greatest kernel density for trivariate KDE三元 KDE 的最大核密度坐标
【发布时间】:2015-10-22 02:07:31
【问题描述】:

我使用以下代码计算了R 中一个 3 列矩阵的核密度:

ss<-read.table("data.csv",header=TRUE,sep=",")
x<-ss[,1]
y<-ss[,2]
z<-ss[,3]
ssdata<-c(x,y,z)
ssmat<-matrix(ssdata,,3)
rp<-kde(ssmat)
plot(rp)

我现在需要的是最大内核密度点的 (x,y,z) 坐标。根据R-help list 上提供的答案,我了解kde() 函数在第四维中绘制三个变量的联合密度,在 3d 图中通过阴影表示,以指示更大点密度的区域。所以实际上我试图找到这个“第四”维度的最大值。我怀疑这是一个相对简单的问题,但我一直无法找到答案。有什么想法吗?

【问题讨论】:

    标签: r kernel-density


    【解决方案1】:

    您可以从kde 返回的信息中提取最大值。要查看所有返回的内容,请使用str(rp)。

    ## Get the indices
    inds <- which(abs(rp$estimate - max(rp$estimate)) < 1e-10, arr.ind=T)
    xyz <- mapply(function(a, b) a[b], rp$eval.points, inds)
    
    ## Add it to plot
    plot(rp)
    points3d(x=xyz[1], y=xyz[2], z=xyz[3], size=20, col="blue")
    

    【讨论】:

      猜你喜欢
      • 2012-04-06
      • 2018-10-06
      • 2020-02-21
      • 2014-04-14
      • 2022-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多