Координаты наибольшей плотности ядра для трехмерного KDE

Я вычислил плотность ядра матрицы с тремя столбцами в R, используя следующий код:

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, я понимаю, что функция kde() строит совместную плотность трех переменных в четвертом измерении, которое представлено на трехмерном графике затенением, чтобы указать области с большей плотностью точек. Таким образом, я пытаюсь найти максимальное значение этого «четвертого» измерения. Я подозреваю, что это относительно простая проблема, но я не смог найти ответ. Любые идеи?


person optparam    schedule 30.07.2015    source источник


Ответы (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")
person Rorschach    schedule 30.07.2015