Aplicarlas funciones K,G y L para los procesos puntuales que se presentan en la base de datos de Berín tanto para procesos homogeneos como inhomogeneos:
Primeramente, se procede a cargar los datos y los correspondientes paquetes:
# cargo de paquetes y de datos
library(spatstat)
library(rgeos)
library(sf)
library(rasterVis)
load(url("https://userpage.fu-berlin.de/soga/300/30100_data_sets/ppp_data_berlin.RData"))
La interacción entre dos puntos arbitrarios se mide por propiedades de segundo orden, que reflejan cualquier tendencia de los eventos a aparecer agrupados (los puntos tienden a estar juntos), independientes (el proceso de Poisson) o espaciados regularmente (los puntos tienden a evitarse entre sí).
A continuación, se presentan la distribución de los tres objetos ppp en el mapa de Berlín los cuales son los tres patrones puntuales los cuales corresponden al patrón completamente aleatorio (independiente), al portón regular y al patrón agregado (clusterizado) respectivamente:
par(mar=c(1,1,2,2), mfrow=c(1,3))
plot(ppp.random, main='independant')
plot(ppp.regular, main='regular')
plot(ppp.locations, main='clustered')
La función K es una herramienta que permite analizar la interacción entre los eventos de patrones puntuales y fue propuesta por Brian D. Ripley entre los años 1976 y 1977 para un proceso estacionario e isotrópico de segundo orden.
Comparamos la estimación \(\hat K(r)\) con la función Poisson para procesos puntuales homogeneos donde $K(r) = r^2 $. Los valores \(\hat K(r)> \pi r^2\) sugieren agrupamiento, mientras que \(\hat K(r)< \pi r^2\) sugiere un patrón regular.
En spatstat, la función Kest() para procesos homogéneos y kinhom para procesos inhomogéneos calcula varias estimaciones de la función K. De forma predeterminada, el gráfico trazado incluye \(K_{pois}(r)\) para procesos de Poisson homogéneos, \(K_{board}(r)\), la estimación con corrección de bordes, \(K_{trans}(r)\), la estimación con corrección de traducción y \(K_{iso}(r)\), la estimación de corrección isotrópica de Ripley.
Ahora, se traza función K para el conjunto de datos de puntos aleatorios (ppp.random), para el conjunto de datos de puntos agregados (ppp.locations) y para el conjunto de datos de puntos regulares (ppp.regular).
# ppp aleatorios
par(mfrow = c(1,2))
#homogeneo
plot(Kest(ppp.random), main='independent H')
#inhomogeneo
plot(Kinhom(ppp.random), main='independent Inh')
El gráfico muestra que las diversas estimaciones, \(\hat K(r)\), están cerca de \(K_{pois}(r)\), lo que corresponde a un proceso de Poisson homogéneo y tambien ocurre para el caso inhomogéneo, por lo tanto, indica una aleatoriedad espacial completa.
Ahora se examina el patrón de puntos agrupados.
# ppp agrupados
par(mfrow = c(1,2))
#homogeneo
plot(Kest(ppp.locations), main='clustered H')
#inhomogeneo
plot(Kinhom(ppp.locations), main='clustered Inh')
Las curvas de \(\hat K(r)>K_{pois}(r)\) sugieren agrupamiento en el caso del proceso con una funcion K estimada de un proceso homogéneo.En cambio, para el caso de K inhomogénea se observa lo contrario, ya que la curvaa observada esta por debajo de la teórica parece presentar un proceso inibitorio.
Finalmente, se analiza el patrón de datos regulares (inibición):
# ppp regular
par(mfrow = c(1,2))
#homogeneo
plot(Kest(ppp.regular), main='regular H')
#inhomogeneo
plot(Kinhom(ppp.regular), main='regular Inh')
Las curvas de \(\hat K(r)<K_{pois}(r)\) sugieren inibición.Mientras que, para el caso inhomogeneo se observa como en un principio la curva observada esta por debajo de la curva teorica aunque hacia el final esta por encima lo que indicaria ser un proceso de agregación.
La función correlación por pares, g(r), aunque contiene la misma información estadística que la función K(r), es más fácil de interpretar. En dos dimensiones, K(r) se define dibujando un círculo de radio r centrado en un punto del patrón y contando el número total de puntos que caen en este círculo, mientras que para definir g(r) se dibujan dos círculos concéntricos de radio r y r + h, donde h es un pequeño incremento de distancia, y se cuentan los puntos que caen en el anillo entre los dos círculos, por lo cual g(r) contiene contribuciones solamente de distancias entre puntos iguales a r.
Esta función se define entonces como la probabilidad de observar un par de puntos del proceso separados por una distancia r, dividida por la probabilidad correspondiente a la de un proceso de Poisson. Se Expresa como sigue:
\[\hat G(r) = \frac{1}{N(x)} \sum_{x} 1[t_i \leq r] \]
Ahora, se traza función G para el conjunto de datos de puntos aleatorios (ppp.random), para el conjunto de datos de puntos agregados (ppp.locations) y para el conjunto de datos de puntos regulares (ppp.regular).
# ppp aleatorios
par(mfrow = c(1,2))
#homogeneo
plot(Gest(ppp.random), main='independent H')
#inhomogeneo
plot(Ginhom(ppp.random), main='independent Inh')
El gráfico muestra que las diversas estimaciones, \(\hat G(r)\), no están muy alejadas de \(G_{pois}(r)\) en ambos casos, lo que corresponde a procesos de Poisson homogéneos, lo que indica aleatoriedad espacial completa.
Ahora se examina el conjunto de datos de puntos agrupados.
# ppp agrupados
par(mfrow = c(1,2))
#homogeneo
plot(Gest(ppp.locations), main='clustered H')
#inhomogeneo
plot(Ginhom(ppp.locations), main='clustered Inh')
Nuevamente, por defecto, el gráfico incluye tres estimaciones. Para un patrón agrupado, las ubicaciones observadas deben estar más cerca entre sí de lo esperado bajo CSR. Todas las estimaciones son \(\hat G(r)>G_{pois}(r)\),al igual que para el caso inhomogéneo, lo que sugiere un patrón agrupado en ambos casos.
Finalmente, se analiza el conjunto de datos regulares (inibición):
# ppp regular
par(mfrow = c(1,2))
#homogeneo
plot(Gest(ppp.regular), main='regular H')
#inhomogeneo
plot(Ginhom(ppp.regular), main='regular Inh')
Un patrón regular debe tener distancias al vecino más cercano más altas de lo esperado bajo CSR. \(\hat G(r)\) es cero para r≤2600, lo que muestra que no hay distancias al vecino más cercano inferiores a 2600 m. Ahora para el caso inhomogeneo tambien la curva observada esta por debajo de la teórica aunque a partir de los 4200m para estar por encima de ella, en ambos casos se puede envidenciar un proceso inibitorio
Una transformación de K de uso común es la función L que se expresa como:
\[\hat L(r) = \frac{\sqrt{K(r)}}{\pi}\] que transforma la función Poisson K en la línea recta \(L_{pois}(r)=r\), lo que facilita la evaluación visual del gráfico. Para calcular la función L estimada, podemos usar la función Lest() del paquete spatstat.
Ahora, se traza función L para el conjunto de datos de puntos aleatorios (ppp.random), para el conjunto de datos de puntos agregados (ppp.locations) y para el conjunto de datos de puntos regulares (ppp.regular).
# ppp aleatorio
plot(Linhom(ppp.random), main='independant')
El gráfico muestra que las diversas estimaciones, \(\hat L_{iso}(r)\), están cerca de \(L_{pois}(r)\), lo que corresponde a un proceso de Poisson homogéneo y, por lo tanto, indica una aleatoriedad espacial completa.
Ahora se examina el conjunto de datos de puntos agrupados.
# ppp agrupado
plot(Linhom(ppp.locations), main='clustered')
Las curvas de \(\hat L_{iso}(r)>K_{pois}(r)\) sugieren agrupamiento.
Finalmente, se analiza el conjunto de datos regulares (inibición):
# ppp regular
plot(Linhom(ppp.regular), main='regular')
Las curvas de \(\hat L_{}(r)<K_{pois}(r)\) sugieren inibición.
Luego se procede hacer un proceso de envevidos usando la función envelopes().
Ahora se procede a realizar los simulaciones usando la función envelopes().Para calcular las envolventes de puntos, proporcionamos a la función un objeto que contiene datos de patrones de puntos (Y), una función que calcula elestadístico de resumen deseada para un patrón de puntos (fun), el número de patrones de puntos simulados que se generarán al calcular los sobres (nsim) y el rango del valor del sobre (nrank). Un rango de 1 significa que se utilizarán los valores mínimo y máximo simulados.
se aplica la función de envelopes(), utilizando Kinhom() como nuestra estadística de resumen deseada, en el conjunto de datos de puntos aleatorios (ppp.random).
E <- envelope(Y = ppp.random, fun = Kinhom, nsim = 39, nrank = 1)
## Generating 39 simulations of CSR ...
## 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.
##
## Done.
# gráfico del proceso aleatorio
plot(E, main= "Envelopes proceso completamente aleatorio")
Se observa como la curva observada se encuentra dentro de las curvas envolventes y se apega mucho a la curva teórica, por tanto se puede hablar de un proceso homogéneo y un patrón completamente aleatorio.
Después, se realiza el mismo proceso analogo para ppp.locations
E2 <- envelope(Y = ppp.locations, fun = Kinhom, nsim = 39, nrank = 1)
## Generating 39 simulations of CSR ...
## 1, 2, [etd 4:15] 3, [etd 4:37] 4,
## [etd 4:23] 5, [etd 4:09] 6, [etd 3:57] 7, [etd 3:48] 8,
## [etd 3:41] 9, [etd 3:31] 10, [etd 3:21] 11, [etd 3:13] 12,
## [etd 3:04] 13, [etd 3:04] 14, [etd 3:32] 15, [etd 3:54] 16,
## [etd 4:13] 17, [etd 4:10] 18, [etd 3:55] 19, [etd 3:45] 20,
## [etd 3:44] 21, [etd 3:43] 22, [etd 3:44] 23, [etd 3:41] 24,
## [etd 3:33] 25, [etd 3:25] 26, [etd 3:15] 27, [etd 3:04] 28,
## [etd 2:52] 29, [etd 2:39] 30, [etd 2:25] 31, [etd 2:11] 32,
## [etd 1:55] 33, [etd 1:40] 34, [etd 1:24] 35, [etd 1:08] 36,
## [etd 52 sec] 37, [etd 35 sec] 38, [etd 18 sec] 39.
##
## Done.
# gráfico del proceso agrupado
plot(E2, main= "Envelopes proceso agrupado")
Se observa claramente que la curva observada esta por debajo de la curva teórica y por fuera de las bandas de confianza de los envelopes, por tanto se puede hablar de que los datos tiene comportamiento inhibitorio y son resultado de un proceso inhomogéneo.
Y Finalmente, se realiza el mismo proceso para el caso inibitorio:
E3 <- envelope(Y = ppp.regular, fun = Kinhom, nsim = 39, nrank = 1)
## Generating 39 simulations of CSR ...
## 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.
##
## Done.
# gráfico del proceso aleatorio
plot(E3, main= "Envelopes proceso inibitorio")
Se observa como la curva observada está en su mayoria por dentro de las bandas de confianza de los envelopes y aunque fluctúa alrededor de la curva teórica, además, dicha curva proviene de un proceso inhomogeneo y se podria decir hasta cierto punto que es completamente aleatorio usando el criterio de envelopes.