Análisis espacial con R
Se puede ver como un subconjunto de la estadística
Se preocupa del análisis e interpretación de datos geográficamente referenciados
.
Preguntas típicas de un análisis geoestadístico
¿Cómo la variable varía en el espacio?
¿Qué controla su variación?
¿Dónde ubicar las muestras para describir la variación espacial?
¿Cuántas muestras son necesarias para representar la variación espacial.
¿Cuál es el valor de la variable en una nueva ubicación?
¿Cuál es la incerteza de los valores estimados?
La podemos definir como una producción analítica de mapas usando observaciones de campo, información explicativa en un software computacional que calcula los valores en las posiciones de interés
.
Generalmente involucra:
Modelo universal de variación
\[Z(s) = z^*(s)+\epsilon'(s)+\epsilon''\]
\(z^*(s)\) : parte determinística
\(\epsilon'(s)\) : componente espacial correlacionado
\(\epsilon''\) : error gausiano (incerteza)
En una situación ideal la variabilidad de una variable ambiental es determinada por una limitada cantidad de inputs/predictores que siguen una conocida ley física.
Si la ecuación física es conocida podemos predecir exactamente la variable objetivo/salida.
En la realidad la relación entre la variable y las condiciones ambientales es demasiado compleja que no la podemos modelar excatamente.
Notación
Variable objetivo
\(Z\) denotada como \(z(s_1),z(s_2),...,(zs_n)\)
Donde \(s_i = (x_i,y_i)\)
Dominio \(\mathbb{A}\)
\[Z = {Z(s),\forall s \in \mathbb{A}} \]
El dominio geográfico de interés es una matriz rectangular
Un arreglo de filas x columnas sobre el dominio de interés
\[z = {z(s_j),j=1,...,m}\]
\[s_j \in \mathbb{A}\]
Hay muchos métodos de predicción espacial.
En un principio es díficil saber cual utilizar y por qué.
Los podemos agrupar en:
Métodos determinísticos
: parámetros determinados de forma empírica. No se hace estimación del error.
Modelos estadísticos lineales
: los parámetros se estiman de forma objetiva siguiendo la teoría de probabilidades.
Sistemas expertos
El término escala es un poco confuso
¿Por qué la escala/resolución importa?
Ilustremos con un ejemplo: simulación de 1000 hogares de los cuales sabemos su ingreso anual.
Usando el índice de GINI
Ahora realicemos diferentes agregaciones
Es el concepto más fundamental en geografía.
Primera ley de la geografía
everything is related to everything else, but near things are more related than distant things - Waldo Tobler
La distancia generalmente se describen como una matriz de distancias
En la matriz de distancias
tenemos la distancia entre todos los objetos de interés.
Creemos una matriz de distancia
Grafiquemos
A B C D E
B 0.9219544
C 1.0440307 0.5099020
D 0.4472136 1.2529964 1.2041595
E 0.4123106 0.5830952 0.6324555 0.6708204
F 0.6082763 0.8944272 1.2727922 1.0440307 0.7615773
Podemos convertirla a una matriz
A B C D E F
A 0.0000000 0.9219544 1.0440307 0.4472136 0.4123106 0.6082763
B 0.9219544 0.0000000 0.5099020 1.2529964 0.5830952 0.8944272
C 1.0440307 0.5099020 0.0000000 1.2041595 0.6324555 1.2727922
D 0.4472136 1.2529964 1.2041595 0.0000000 0.6708204 1.0440307
E 0.4123106 0.5830952 0.6324555 0.6708204 0.0000000 0.7615773
F 0.6082763 0.8944272 1.2727922 1.0440307 0.7615773 0.0000000
Si la distancia estuviera en coordenads geográfica el calculo de distancia sería incorrecto con dist
.
Pero podemos usar {sf}
library(sf)
pts <- data.frame(x=pts[,1],y=pts[,2])
ptsSF <- st_as_sf(pts,coords = c('x','y'),crs=4326)
st_distance(ptsSF)
Units: [m]
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 0.00 86826.47 98792.67 48205.70 38863.54 67368.58
[2,] 86826.47 0.00 56371.60 122172.28 57310.42 87073.90
[3,] 98792.67 56371.60 0.00 111886.31 60033.55 130640.94
[4,] 48205.70 122172.28 111886.31 0.00 64951.28 114660.40
[5,] 38863.54 57310.42 60033.55 64951.28 0.00 82727.69
[6,] 67368.58 87073.90 130640.94 114660.40 82727.69 0.00
Un paso importante en estadistica espacial y modelado es obtener una métrica de la influencia espacial entre objetos geográficos.
Se puede expresar como función de adyacencia (póligonos)
En general es expresada como una matriz espacial de pesos
Esta influencia en realidad es muy compleja y no la podemos calcular.
Pero la podemos estimar de varias formas.
A B C D E F
8.347893 6.676920 6.116255 6.313148 8.525257 5.818589
Podemos hacerlo dividiendo por la suma total.
ptsSF_utm <- st_transform(ptsSF,32719)
bb <- st_buffer(ptsSF_utm,5000) |> st_bbox()
r <- rast(xmin=bb[1],xmax=bb[3],ymin=bb[2],ymax=bb[4],res=10000)
xy <- xyFromCell(r,1:ncell(r)) |>
vect()
values(r) <- 1:ncell(r)
grid <- as.polygons(r)
plot(grid)
plot(vect(ptsSF_utm),col='red',add=TRUE)
plot(xy,col='blue',add = TRUE)