Procesos Agregados (Clustering)

Modelo Máter

En este proceso los puntos son independientemente uniformes en el disco \(b(0, R)\). Para este modelo la función de densidad de la distancia desde el centro del cluster es:

\(\delta(r)=\frac{dr^{d-1}}{R^{d}}\)

Variando el radio del disco del cluster y el número promedio de puntos por cluster se observa lo siguiente:

require(spatstat)

matern=rMatClust(10, 0.05, 5, win = owin(c(0,1),c(0,1))) 
matern1=rMatClust(10, 0.05, 10, win = owin(c(0,1),c(0,1)))
matern2=rMatClust(10, 2, 5, win = owin(c(0,1),c(0,1)))
matern3=rMatClust(10, 2, 10, win = owin(c(0,1),c(0,1)))

par(mfrow=c(2,2)) 
plot(matern, main="r=0.05 y mu=5")
plot(matern1, main="r=0.05 y mu=10")
plot(matern2, main="r=2 y mu=5")
plot(matern3, main="r=2 y mu=10")

Para radios pequeños se observa más claramente la aglomeración o clusters mientras que en radios grandes el proceso es similr al poisson.

Se calcularon las funciones K y G para el primer proceso.

plot(pcf(matern, correction=c("translate")), main = "PCF (Homogénea)")

plot(Kest(matern, correction=c("translate")), main = "K-estimada (Homogénea)")

Los gráficos anteriores muestran agregación del proceso puntual.

Para el caso inhomogéneo se generó el proceso usando la siguiente función de intensidad:

\(\lambda(x)=5(exp(2x-1))\)

intensidad=as.im(function(x,y){ 5 * exp(2 * x - 1) }, owin())
matern_inhom=rMatClust(10, 0.05, intensidad)
plot(intensidad)

plot(matern_inhom)

Asi mismo, se calcularon las funciones K y G teniendo en cuenta el proceso puntual inhomogéneo.

plot(pcfinhom(matern_inhom, lambda = intensidad, correction=c("translate")), main = "PCF (Inhomogénea)")

plot(Kinhom(matern_inhom, lambda = intensidad, correction=c("translate")), main = "K-estimada (Inhomogénea)")

También, se estimaron los respectivos envelopes para cada uno de los casos anteriores:

kmaternh <- envelope(matern, Kest, nsim = 99, fix.n = TRUE, verbose = F) 
kmatern <- envelope(matern_inhom, Kinhom, nsim = 99, fix.n = TRUE, verbose = F) 
gmaternh <- envelope(matern, pcf, nsim = 99, fix.n = TRUE, verbose = F) 
gmatern <- envelope(matern_inhom, pcfinhom, nsim = 99, fix.n = TRUE, verbose = F) 

par(mfrow=c(1,2)) 
plot(kmaternh, main = "Envelopes- K homogénea")
plot(kmatern, main = "Envelopes- K inhomogenea") 

par(mfrow=c(1,2)) 
plot(gmaternh, main = "Envelopes- g homogénea")
plot(gmatern, main = "Envelopes- g inhomogenea")

Los envelopes rechazan la hipótesis nula de aleatoriedad.

Modelo Thomas

En este proceso la distribución de puntos (hijas) alrededor de los puntos padres es la simétrica distribución normal con parámetro \(sigma\). Aqui:

\(\delta(r)=\frac{r}{\sigma^{2}}exp(-\frac{r^{2}}{2\sigma^{2}})\)

Variando el parámetro sigma y número promedio de puntos por cluster se observa lo siguiente:

thomas=rThomas(10, 0.05, 5, win = owin(c(0,1),c(0,1)))
thomas1=rThomas(10, 0.05, 10, win = owin(c(0,1),c(0,1)))
thomas2=rThomas(10, 2, 5, win = owin(c(0,1),c(0,1)))
thomas3=rThomas(10, 2, 10, win = owin(c(0,1),c(0,1)))

par(mfrow=c(2,2)) 
plot(thomas, main="r=0.05 y mu=5")
plot(thomas1, main="r=0.05 y mu=10")
plot(thomas2, main="r=2 y mu=5")
plot(thomas3, main="r=2 y mu=10")

Para valores de sigma pequeños se observa mayor agregación, en valores altos mayor dispersión.

Se calcularon las funciones K y G para el primer proceso generado.

par(mfrow=c(1,2)) 
plot(pcf(thomas, correction=c("translate")), main = "PCF (Homogénea)")
plot(Kest(thomas, correction=c("translate")), main = "K-estimada (Homogénea)")

Asumiendo homogeneidad, se observa agregación de aceurdo a las funciones K y PCF.

Para el caso inhomogéneo, se utilizó la misma función del proceso matern.

intensidad=as.im(function(x,y){ 5 * exp(2 * x - 1) }, owin())
thomasinhom=rThomas(10, 0.2, intensidad)

par(mfrow=c(1,2)) 
plot(intensidad)
plot(thomasinhom)

Asi mismo, se estimaron las funciones k y g en el caso inhomogéneo:

par(mfrow=c(1,2)) 
plot(pcfinhom(thomasinhom, lambda = intensidad, correction=c("translate")), main = "PCF (Inhomogénea)")
plot(Kinhom(thomasinhom, lambda = intensidad, correction=c("translate")), main = "K-estimada (Inhomogénea)")

Asi mismo, para el proceso inhomogeneo, los gráficos muestran agregación del proceso puntual.

se generaron los envelopes para cada una de las funciones estimadas anteriormente:

kthomash <- envelope(thomas, Kest, nsim = 99, fix.n = TRUE, verbose = F) 
kthomas <- envelope(thomasinhom, Kinhom, nsim = 99, fix.n = TRUE, verbose = F) 

gthomash <- envelope(thomas, pcf, nsim = 99, fix.n = TRUE, verbose = F) 
gthomas <- envelope(thomasinhom, pcfinhom, nsim = 99, fix.n = TRUE, verbose = F) 

par(mfrow=c(1,2)) 
plot(kthomash, main = "Envelopes- K homogénea")
plot(kthomas, main = "Envelopes- K inhomogenea") 

par(mfrow=c(1,2)) 
plot(gthomash, main = "Envelopes- g homogénea")
plot(gthomas, main = "Envelopes- g inhomogenea")

Para el caso de las funciones homogeneas se rechaza la aleatoriedad mientras que asumiendo que el proceso es inhomogeneo no.

Procesos Neyman Scott

La fórmula general para la intensidad es:

\(\lambda=\lambda_{p}\overline{c}\)

  nclust <- function(x0, y0, radius, n)
  {
  return(runifdisc(n, radius, centre=c(x0, y0)))
  }
neyman=rNeymanScott(10, 0.2, nclust, radius=0.01, n=5)
plot(neyman)

Se estimó la función K y G para este proceso:

par(mfrow=c(1,2)) 
plot(pcf(neyman, correction=c("translate")), main = "PCF (Homogénea)")
plot(Kest(neyman, correction=c("translate")), main = "K-estimada (Homogénea)")

Para distancias pequeñas se observa agregación en las dos funciones pero luego para r más o menos de 0.18 cambia.

Asi mismo, los envelopes por cada función:

kneymanh <- envelope(neyman, Kest, nsim = 99, fix.n = TRUE, verbose = F) 
gneymanh <- envelope(neyman, pcf, nsim = 99, fix.n = TRUE, verbose = F) 

par(mfrow=c(1,2)) 
plot(kneymanh , main = "Envelopes- K homogénea")
plot(gneymanh , main = "Envelopes- G homogenea") 

Procesos Cox

Un proceso log gaussiano cox es un proceso cox en el cual la intensidad (driving intensity) tiene la siguiente forma:

\(Λ(\mu)=exp G(\mu)\)

Donde, \(G(\mu)\) es un campo aleatorio gaussiano.

Se generó el proceso cox usando la libreria RandomFields y un modelo de covarianza exponencial el cual tiene la siguiente función:

\(C_{0}(r)=\sigma^{2}exp(-r/\alpha)\)

require(RandomFields)
cox <- rLGCP(model="exp", mu=3, var=0.2, scale=0.1, win = square(1))
lambda=attributes(cox)$Lambda

cox1 <- rLGCP(model="exp", mu=7, var=0.2, scale=0.1, win = square(1))
lambda1=attributes(cox1)$Lambda


par(mfrow=c(2,2)) 
plot(cox)
plot(lambda)
plot(cox1)
plot(lambda1)

variando la varianza y dejando fija la media y alpha:

require(RandomFields)
cox2 <- rLGCP(model="exp", mu=4, var=0.5, scale=0.5, win = square(1))
lambda2=attributes(cox2)$Lambda

cox3 <- rLGCP(model="exp", mu=4, var=0.5, scale=0.1, win = square(1))
lambda3=attributes(cox3)$Lambda


par(mfrow=c(2,2)) 
plot(cox2)
plot(lambda2)
plot(cox3)
plot(lambda3)

Se realizó la estimación de las funciones K y g, teniendo en cuenta la función de intensidad estimada en el modelo. Para un proceso Cox log-gaussiano la función de correlación por pares se calcula como:

\(G_{2}(\mu,\nu)=exp(C(\mu,\nu))\)

donde \(C(\mu,\nu)=cov(G(\mu),G(\nu))\)

par(mfrow=c(1,2)) 
plot(pcfinhom(cox, correction=c("isotropic")), main = "PCF (Inhomogénea)")
plot(Kinhom(cox, correction=c("isotropic")), main = "K-estimada (Inhomogénea)")

Asi mismo, los envelopes:

kcoxh <- envelope(cox, Kinhom, nsim = 99, fix.n = TRUE,verbose = F) 
gcoxh <- envelope(cox, pcfinhom, nsim = 99, fix.n = TRUE, verbose = F) 

par(mfrow=c(1,2)) 
plot(kcoxh , main = "Envelopes- K Inhomogénea")
plot(gcoxh , main = "Envelopes- G Inhomogenea") 

Modelo para Datos Regulares

El modelo se basa esencialmente en un adelgazamiento aplicado a un proceso de Poisson estacionario \(N_b\) con intensidad \(\lambda_b\). Los puntos en \(N_b\) están marcados independientemente por números aleatorios distribuidos uniformemente en (0-1). El adelgazamiento retiene un punto \(x\) en \(N_b\) con marca \(m(x)\) si la esfera \(b(x,r_0)\) no contiene puntos en \(N_b\) con marcas menores que \(m(x)\).

Ejemplo

En las aplicaciones, los puntos en \(N_b\) pueden ser la ubicación de las semillas, mientras que las marcas son puntos en el tiempo en el que germinan (es decir cuanto tarda en germinar apartir del momento de siembra). Entonces \(N\) consiste en las ubicaciones \(x\) de aquellas plantas cuyas semillas fueron las primeras en germinar dentro de un área \(b(x,r_0)\), el área que las plantas necesitan para la absorción de nutrientes. La intensidad de N viene dada por:

\[\lambda=p*\lambda_b\]

Aquí \(p\) es la probabilidad de retención del “punto típico” en \(N_b\), que viene dada por:

\[p=\int_{0}^{1}r(t)dt\]

donde \(r(t)=exp(-\lambda_b*V_t)\) es la probabilidad de retención de un punto con marca t con \(0 ≤ t ≤ 1\). Esta fórmula resulta de la observación de que el proceso de subpunto de \(N_b\) que consta de los puntos con una marca menor que t es simplemente un adelgazamiento \(t\) de un proceso de Poisson, que es en sí mismo un proceso de Poisson de intensidad \(\lambda_b*t\).

modelos MaternI, MaternII y Simple Sequential Inhibition

Se generaron lo datos con los 3 modelos para datos regulares, teniendo en cuenta kappa igual a 10 y un radio de 0.02 para los modelos maternI y matern II. En el caso del modelo SSI se utilizó un radio de 0.03 y total de puntos 10. Todos en una ventana 1x1.

##Caso Modelo MaterI
require(spatstat)
ppmaternI=rMaternI(kappa = 10,r = 0.02) 
plot(ppmaternI)

##Caso Modelo MaterII
ppmaternII=rMaternII(kappa = 10,r = 0.02) 
plot(ppmaternII)

##Caso Modelo SSI
ppSSI=rSSI(r = 0.03,n = 10) 
plot(ppSSI)

Se calcularon las funciones K y G para los tres procesos:

##Modelo MaterI
par(mfrow=c(1,2))
plot(pcf(ppmaternI, correction=c("translate")), main = "PCF (Homogénea)")
plot(Kest(ppmaternI, correction=c("translate")), main = "K-estimada (Homogénea)")

##Modelo MaterII
par(mfrow=c(1,2))
plot(pcf(ppmaternII, correction=c("translate")), main = "PCF (Homogénea)")
plot(Kest(ppmaternII, correction=c("translate")), main = "K-estimada (Homogénea)")

##Modelo SSI
par(mfrow=c(1,2))
plot(pcf(ppSSI, correction=c("translate")), main = "PCF (Homogénea)")
plot(Kest(ppSSI, correction=c("translate")), main = "K-estimada (Homogénea)")

Además, se estimaron los respectivos envelopes para cada uno de los casos anteriores:

##Modelo MaterI
gmaternI = envelope(ppmaternI, pcf, nsim = 99, fix.n = TRUE, verbose = F) 
kmaternI = envelope(ppmaternI, Kest, nsim = 99, fix.n = TRUE, verbose = F)

par(mfrow=c(1,2))
plot(gmaternI, main = "Envelopes- G homogénea- MaternI")
plot(kmaternI, main = "Envelopes- K homogénea- MaternI")

##Caso Modelo MaterII
gmaternII = envelope(ppmaternII, pcf, nsim = 99, fix.n = TRUE)
## Generating 99 simulations of CSR with fixed number of points  ...
## 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
## 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
## 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,  99.
## 
## Done.
kmaternII = envelope(ppmaternII, Kest, nsim = 99, fix.n = TRUE)
## Generating 99 simulations of CSR with fixed number of points  ...
## 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
## 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
## 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,  99.
## 
## Done.
par(mfrow=c(1,2))
plot(gmaternII, main = "Envelopes- G homogénea- MaternII")
plot(kmaternII, main = "Envelopes- K homogénea- MaternII")

##Caso Modelo SSI
gSSI = envelope(ppSSI, pcf, nsim = 99, fix.n = TRUE, verbose = F) 
kSSI = envelope(ppSSI, Kest, nsim = 99, fix.n = TRUE, verbose = F) 

plot(gSSI, main = "Envelopes- G homogénea- SSI")
plot(kSSI, main = "Envelopes- K homogénea- SSI")

  1. Matérn, B. (1960) Spatial variation: Stochastic models and their applications to problems in forest surveys and other sampling investigations. Meddelanden från Statens Skogsforskn- ingsinstitut, 49(5).

  2. Matérn, B. (1986) Spatial Variation, Lecture Notes in Statistics 36. Springer-Verlag, Berlin.