我使用以下代码计算了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图中用阴影表示,以指示更大的区域点密度。所以实际上我试图找到这个“第四”维度的最大值。我怀疑这是一个相对简单的问题,但我找不到答案。有什么想法吗?
答案 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")