我想知道是否有人知道如何在spatstat中分配标记,以便它们倾向于在空间上聚类?我有一组lat长坐标,我想将它分为4组。我已经想出如何使用以下代码将标记/组随机分配到这些点:
as.ppp(data, window ,marks=factor(sample(1:4,replace=TRUE)))
但我无法弄清楚如何分配标记,以便群体倾向于占据彼此更接近的点。作为进一步的复杂性,我还希望每组中的点数相同,每次指定的数量。有没有人有任何线索?提前致谢!
答案 0 :(得分: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)