三变量KDE的最大核密度坐标

时间:2015-07-30 15:49:37

标签: r kernel-density

我使用以下代码计算了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)坐标。根据{{​​3}}上提供的答案,我理解kde()函数在第四维中绘制三个变量的联合密度,在3d图中用阴影表示,以指示更大的区域点密度。所以实际上我试图找到这个“第四”维度的最大值。我怀疑这是一个相对简单的问题,但我找不到答案。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以从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")