Você não possui um campo aleatório uniforme, portanto, a tentativa de analisar todos os seus dados ao mesmo tempo violará as suposições de qualquer estatística que você escolher lançar no problema. Não está claro em sua postagem se os dados são um processo pontual marcado (ou seja, diâmetro ou altura associado a cada local da árvore). Se esses dados não estão representando um processo pontual marcado, não faço ideia de como você aplicou um I de Moran. Se os dados representarem apenas locais espaciais, eu recomendaria o uso de um Ripley's-K com a transformação Besag-L para padronizar a expectativa nula em zero. Isso permite uma avaliação em várias escalas do cluster. Se seus dados tiverem um valor associado, sua melhor opção será um Moran's-I (LISA) local. Na verdade, eu olhava para isso com as duas estatísticas. Independentemente da sua escolha, você ainda precisará percorrer cada site individual para produzir resultados válidos. Aqui está um exemplo de código R para uma simulação de Monte Carlo do Ripley's-K / Besag's-L usando o conjunto de dados embutido de mudas de sequóias. Deve ser bastante simples modificá-lo para percorrer seus sites e produzir um gráfico para cada um.
# ADD REQUIRED PACKAGES
require(sp)
require(spatstat)
options(scipen=5)
# USE REDWOOD SAPLING DATASET
spp <- SpatialPoints(coords(redwood))
###################################################
###### START BESAG'S-L MONTE CARLO ANALYSUS ######
###################################################
# CREATE CONVEX HULL FOR ANALYSIS WINDOW
W=ripras(coordinates(spp))
# COERCE TO spatstat ppp OBJECT
spp.ppp=as.ppp(coordinates(spp), W)
plot(spp.ppp)
# ESTIMATE BANDWIDTH
area <- area.owin(W)
lambda <- spp.ppp$n/area
ripley <- min(diff(W$xrange), diff(W$yrange))/4
rlarge <- sqrt(1000/(pi * lambda))
rmax <- min(rlarge, ripley)
bw <- seq(0, rmax, by=rmax/10)
# CALCULATE PERMUTED CROSS-K AND PLOT RESULTS
Lenv <- envelope(spp.ppp, fun="Kest", r=bw, i="1", j="2", nsim=99, nrank=5,
transform=expression(sqrt(./pi)-bw), global=TRUE)
plot(Lenv, main="Besag's-L", xlab="Distance", ylab="L(r)", legend=F, col=c("white","black","grey","grey"),
lty=c(1,2,2,2), lwd=c(2,1,1,1) )
polygon( c(Lenv$r, rev(Lenv$r)), c(Lenv$lo, rev(Lenv$hi)), col="lightgrey", border="grey")
lines(supsmu(bw, Lenv$obs), lwd=2)
lines(bw, Lenv$theo, lwd=1, lty=2)
legend("topleft", c(expression(hat(L)(r)), "Simulation Envelope", "theo"), pch=c(-32,22),
col=c("black","grey"), lty=c(1,0,2), lwd=c(2,0,2), pt.bg=c("white","grey"))