2015-07-30 2 views
0

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

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) 

Что мне нужно теперь (х, у, г) координаты точки максимальной плотности ядра. Основываясь на ответе, приведенном на R-help list, я понимаю, что функция kde() описывает плотность соединения трех переменных в четвертом измерении, которая представлена ​​на трехмерном графике путем затенения, чтобы указать области с большей точечной плотностью. Поэтому я пытаюсь найти максимальное значение этого «четвертого» измерения. Я подозреваю, что это относительно простая проблема, но я не смог найти ответ. Есть идеи?

ответ

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") 

 Смежные вопросы

  • Нет связанных вопросов^_^