2014-10-23 2 views
1

R에서 커널 밀도 추정에 관한 질문이 있습니다. (x, y, z) 위치, 발생 시간 및 일부 이벤트의 크기로 구성된 5 차원 데이터가 있습니다. (예 : 지진) (나는 데이터 세트를 첨부했다). 나는 5D 커널 밀도 추정을 찾기 위해 R에 다음 코드를 작성했습니다.R 차원의 높은 차원의 커널 밀도 플롯 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 차원을 모두 (또는 다른 색상이나 크기를 사용하여) 또는 적어도 3 차원을 개별적으로 고려하여 커널을 표시하는 것을 선호합니다. 나 제안이있어? 여기

데이터이다 : 이것은 그 시간 분위수 그들의 '시간'분위에 기초 4 개 선식 클래스에 기초하여 4 개 색 클래스로 '크기'분할

 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 치수 플롯이 불가능하다는 것을 알고 있습니다. 3D 플롯 플롯 플러스 포인트 또는 색상 크기별로 다른 2 차원을 표시해야합니다. – user3786507

+1

다음과 같은 내용이 있습니다. http://stackoverflow.com/questions/23199416/5-dimensional-plot-in-r – user3786507

답변

0

.

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에 관한 커널을 한 3D 그래프에 표시하고, 시간과 크기를 다른 커널에 표시하는 방법이 있는가? 그렇지 않다면 하나의 그래프에 모든 커널의 공동 커널을 표시 할 수 있습니까? – user3786507

+0

커널을 고려하고 싶지 않은 경우이 코드를 작성하여 5D 그래프를 작성하십시오. 'library (rgl) kern <- read.table (file.choose(), header = T, sep = ",") plot3d (kern $ 경도, kern $ 깊이, kern $ 깊이, col = as.numeric (kern $ 시간), 크기 = kern $ 크기, 유형 = 's', xlab = "경도" ylab = "위도", zlab = "깊이")' – user3786507

관련 문제