2014-10-23 1 views
1

У меня вопрос относительно оценки плотности ядра в R. У меня есть 5-мерные данные, которые состоят из местоположений (x, y, z), времени возникновения и размера некоторых событий (например, землетрясение) (я приложил набор данных). Я написал следующий код в R для того, чтобы найти оценку плотности ядра на 5D:Плотная плотность ядра в R

library(ks) 
library(rgl) 
kern <- read.table(file.choose(), sep=",") 
evpts <- do.call(expand.grid,lapply(kern,quantile, prob=c(.1,.15,.2,.25,.3,.35,.4,.45,.5,.55,.6,.65,.7,.75,.8,.85,.9,.95))) 
hat <- kde(kern, eval.points= evpts) 
str(hat) 

Теперь я хотел бы представить себе оценку плотности ядра. Я предпочитаю показывать ядро ​​относительно всех 5 измерений в одном графике (используя разные цвета или размеры для точек) или, по крайней мере, в отношении трех измерений отдельно. У вас есть какие-нибудь предложения для меня?

Вот данные:

 x   y   z   time   size 
422.697323 164.19886 2.457419 8.083796636 0.83367586 
423.008236 163.32434 0.5551326 37.58477455 0.893893903 
204.733908 218.36365 1.9397874 37.88324312 0.912809449 
203.963056 218.4808 0.3723791 43.21775903 0.926406005 
100.727581 46.60876 1.4022341 49.41510519 0.782807523 
453.335182 244.25521 1.6292517 51.73779175 0.903910803 
134.909462 210.96333 2.2389119 53.13433521 0.896529401 
135.300562 212.02055 0.6739541 67.55073745 0.748783521 
258.237117 134.29735 2.1205291 76.34032587 0.735699304 
341.305271 149.26953 3.718958 94.33975483 0.849509216 
307.138925 59.60571 0.6311074 106.9636715 0.987923188 
307.76875 58.91453 2.6496741 113.8515307 0.802115718 
415.025535 217.17398 1.7155688 115.7464603 0.875580325 
414.977687 216.73327 1.7107369 115.9776948 0.767143582 
311.006135 173.24378 2.7819572 120.8079566 0.925380118 
310.116929 174.28122 4.3318722 129.2648401 0.776528535 
347.260911 37.34946 3.5155427 136.7851291 0.851787115 
351.317624 33.65703 0.5806926 138.7349284 0.909723017 
4.471892 59.42068 1.4062959 139.0543783 0.967270976 
5.480223 59.72857 2.7326106 139.2114277 0.987787428 
199.513023 21.53302 2.5163259 143.5895625 0.864164659 
198.718031 23.50163 0.4801849 147.2280466 0.741587333 
26.650517 35.2019  0.8246514 150.4876506 0.744788202 
25.089379 90.47825 0.8700944 152.1944046 0.777252476 
26.307439 88.41552 2.4422487 155.9090026 0.952215177 
234.282901 236.11422 1.8115261 155.9658144 0.776284654 
235.052948 236.77437 1.9644963 156.6900297 0.944285448 
23.048202 98.6261  3.4573048 159.7700912 0.773057491 
21.516695 98.05431 2.5029284 160.8202997 0.978779087 
213.936324 151.87013 3.1042192 161.0612489 0.80499513 
277.887935 197.25753 1.3659279 163.673142 0.758978575 
277.239746 197.54001 2.2109361 166.2629868 0.775325157 
+1

Я имеющий дежа чтения по этому вопросу. Вы выполнили поиск по SO для этого запроса? http://stackoverflow.com/questions/25794075/5-d-kernel-density-estimation-in-r-using-kde-function Визуализация объекта 5d требует юниверса с другой топологической сигнатурой, чем наша. Вы можете просматривать только «срезы». –

+0

Я знаю, что построение размера 5D невозможно, мне просто нужно построить трехмерный график плюс показать другие 2 измерения по цвету или размеру точек. – user3786507

+1

что-то вроде этого: http://stackoverflow.com/questions/23199416/5-мерный-plot-in-r – user3786507

ответ

0

Это раскалывает «размер» в 4 цветовых классов в зависимости от их времени квартили и 4-х классов линейного типа на основе их квартиль «времени». Он не использует информацию о плотности ядра:

require(MASS) 
png();parcoord(dat, col=cut(dat$size, quantile(dat$size, c(0,.25,.5,.75,1)), include.lowest=TRUE), lty= as.numeric(cut(dat$time, quantile(dat$time, c(0,.25,.5,.75,1)), include.lowest=TRUE))); dev.off() 

enter image description here

+0

Большое вам спасибо за ваше время. этот график хорош, но это не то, что я хочу. Мне нужно показать ядро. Есть ли способ показать ядро ​​относительно x, y, z в одном трехмерном графике, а затем время и размер ядра на другом, если это не можно показать совместное ядро ​​всех из них на одном графике? – user3786507

+0

Если мы не хотим учитывать ядро, я написал этот код для построения графика 5D: 'library (rgl) kern <- read.table (file.choose(), header = T, sep = ",") plot3d (kern $ longitude, kern $ latitude, kern $ depth, col = as.numeric (kern $ time), size = kern $ величина, type = 's', xlab = "longitude", " ylab = "широта", zlab = "глубина") ' – user3786507