2016-09-08 1 views
0

누군가 spatstat에서 마크를 지정하여 공간적으로 클러스터링하는 경향이 있는지 궁금합니다. 나는 4 개의 그룹으로 분류하고자하는 위도 좌표를 가지고 있습니다. 나는 무작위로 다음 코드를 사용하여 이러한 점을 마크/그룹을 할당하는 방법을 알아 낸 :클러스터 된 spatstat 표시 생성 하시겠습니까?

as.ppp(data, window ,marks=factor(sample(1:4,replace=TRUE))) 

하지만 그룹이 가까이 서로 포인트를 점유하는 경향이되도록 표시를 할당하는 방법을 알아낼 수 없습니다. 추가 합병증으로, 각 그룹 내의 포인트 수를 매번 같게 지정하고 싶습니다. 누구든지 리드가 있습니까? 미리 감사드립니다!

+0

당신의 포인트는, 위도입니다 당신이 거리 등의 spatstat 전에 평평한 맵에 투사해야하는 경우가 올바르게 있습니다. 좌표를 투영하는 방법에 대한 예는 http://stackoverflow.com/questions/35873254/unit-length-in-spatstat를 참조하십시오. –

답변

0

일반적으로 spatstat에서 임의의 위치에 점을 기술하거나 임의의 점으로 점을 생성하는 모델을 정의합니다. 올바르게 이해하면 고정 된 위치 집합이 있으며 단순히 임의 표식을 지정하기 만하면됩니다. 얼마나 많은 포인트가 있습니까? 너가 너무 많은 점이없는 경우에 간단한 제안은 다변량 정규 분포 한 가변을 생성하고 그 후에 첫번째 표를위한 n_1 가장 낮은 가치, 두번째 표의 n_2 다음 가치, 등등 가지고 갈 수 있었다. 포인트 4 개 동일한 크기 그룹과 간단한 예 : 그런데

library(spatstat) 
library(mvtnorm) 
set.seed(42) # Make reproducible 
X <- redwood # Example data 
n <- npoints(redwood) 
Xdist <- pairdist(X) # n x n matrix of distances in X 
decay_rate <- 1 # Parameter for covariance sturcture 
sigma <- exp(-decay_rate * Xdist) 
m <- rmvnorm(1, rep(0, n), sigma) 
breaks <- quantile(m, probs = c(0, .25, .5, .75, 1)) # breaks to cut marks in four equal sized groups 
marks(X) <- cut(m, breaks = breaks, include.lowest=TRUE, labels = 1:4) 
plot(X) 

points marked in four groups

관련 문제