Estadística Espacio Temporal

Interpolación espacial




logo

Maestría en Estadística Aplicada

Roberto Trespalacios

Temas

  • Interpolación espacial
    • Clasificación de la interpolación espacial.
    • Proximidad por poligonos de Voronoi.
    • KNN.
    • Distancia inversa.
    • Spline de placa delgada (Thin plate spline).
    • Kriging

Introducción

  • Casi cualquier variable de interés tiene autocorrelación espacial.
  • Eso puede ser un problema en las pruebas estadísticas, pero es una característica muy útil en la estimación y predicción espacial, ya que generalmente nos ocupamos de que los valores en ubicaciones cercanas sean similares.
  • Existen múltiples técnicas de interpolación espacial. Mostraremos algunas de ellas.
  • Pero antes, veamos su clasificación.

Clasificación de la interpolación espacial

Las técnicas de interpolación pueden clasificarse en las siguientes cinco clases principales:

  • Interpolación de punto/interpolación de área
  • Interpolaciones globales/locales
  • Interpolaciones exactas/aproximadas
  • Interpolaciones estocástica/determinista
  • Interpolaciones graduales/abruptas

Interpolación para puntos/linea/área

  • En la interpolación de puntos, dado un número de puntos cuyas ubicaciones y valores son conocidos, determine los valores de otros puntos en ubicaciones predeterminadas.
  • La interpolación de puntos se usa para datos que se pueden recopilar en ubicaciones de puntos.
  • Ejemplo: lecturas de estaciones meteorológicas, alturas de puntos, lecturas de pozos de petróleo, mediciones de porosidad.
  • La interpolación punto a punto es el tipo de interpolación espacial que se realiza con más frecuencia en GIS(Sistema de informacion georeferencial).
    Datos de precipitaciones

Interpolación para puntos/linea/área

  • Los datos de entrada no necesariamente tienen que ser puntos. De hecho, puntos, líneas y/o áreas pueden ser interpoladas.
  • A menudo, los mapas tienen la elevación representada como isolíneas, donde la elevación es la misma a lo largo de una línea particular.
  • Si tales isolíneas se digitalizaran, podrían interpolarse para crear una superficie continua (DEM). Pero a menudo, las isolíneas son el resultado de una primera interpolación.
    Lineas de contornos para la elevación

Interpolación para puntos/linea/área

  • La tercera opción, la interpolación basada en áreas, no es muy común, pero existe sin embargo.
  • En la interpolación por áreas, dado un conjunto de datos mapeados en un conjunto de zonas de origen, determina los valores de los datos para un conjunto diferente de zonas objetivo.
  • Ejemplo: si se tiene un ráster poblacional, que muestra el número de personas por \( km^2 \) y se quiere estimar la población por municipio, se podría utilizar dicho método.
    Conteos de población para secciones censales, estimación de poblaciones para distritos electorales

Interpolación global/local

  • Los métodos de interpolación global aplican una única función(método) matemática a todos los puntos de datos observados y generalmente producen superficies lisas.
  • Un cambio en un valor de entrada afecta todo el mapa.
  • La interpolación global se usa cuando hay una hipótesis sobre la forma de los datos sobre la superficie en general.
  • Los métodos locales aplican repetidamente una única función matemática a pequeños subconjuntos del conjunto total de puntos de datos observados y luego vinculan estas superficies regionales para crear una superficie compuesta que cubre todo el área de estudio.
  • Un cambio en un valor de entrada solo afecta el resultado dentro de la ventana.
  • Algunos interpoladores locales pueden ampliarse para incluir una gran proporción de los puntos de datos en el conjunto, lo que los hace en un sentido global.

Interpolación exacta/aproximada

  • Los métodos exactos de interpolación de puntos respetan todos los puntos de datos observados para los cuales hay datos disponibles.
  • Esto significa que la superficie producida pasa exactamente a través de los puntos de datos observados, y no debe suavizar o alterar sus valores.
  • Los métodos exactos son más apropiados cuando hay un alto grado de apego a las mediciones realizadas en los puntos de datos observados.
  • Interpoladores proximales, B-splines y el método Kriging, estiman sobre todos los puntos de datos dados
  • Los métodos de interpolación aproximados no tienen que respetar los puntos de datos observados, pero pueden suavizarlos o modificarlos para que se ajusten a una tendencia general.
  • Los métodos aproximados son más apropiados cuando existe un grado de incertidumbre en torno a las mediciones realizadas en el punto de muestra.

Interpolación gradual/abrupta

  • Los métodos de interpolación gradual y abrupta se distinguen por la continuidad de la superficie producida.
  • Los métodos graduales producen una superficie lisa entre los puntos de muestra, mientras que los métodos abruptos producen superficies con una apariencia escalonada.
  • El modelo de terreno puede requerir ambos métodos, ya que puede ser necesario reproducir cambios graduales entre los puntos observados, por ejemplo en un terreno ondulado, y cambios abruptos en los que se producen acantilados y valles.
  • Un ejemplo típico de un interpolador gradual es el promedio móvil ponderado por distancia.
  • Usualmente produce una superficie interpolada con cambios graduales.
  • Sin embargo, si el número de puntos usados en el promedio móvil se reduce a un número pequeño, o incluso uno, habría cambios abruptos en la superficie. Ejemplo: Frentes meteorológicos producirá valores rápidamente cambiantes pero continuos. Fallas geológicas producirá cambios abruptos.

Interpolación determinística o estocástica

  • Los métodos determinísticos de interpolación se pueden usar cuando hay suficiente conocimiento sobre la superficie geográfica que se modela para permitir que su carácter se describa como una función matemática.
  • Desafortunadamente, esto rara vez es el caso de las superficies utilizadas para representar las características del mundo real.
  • Para manejar esta incertidumbre, se usan modelos estocásticos (aleatorios) para incorporar variación aleatoria en la superficie interpolada.
  • Los métodos estocásticos incorporan el concepto de aleatoriedad.
  • La superficie interpolada se conceptualiza como una de muchas que se podrían haber observado, todas las cuales podrían haber producido los puntos de datos conocidos.
  • Los interpoladores estocásticos incluyen análisis de superficie de tendencia, los procedimientos tales como el análisis de superficie de tendencia permiten calcular la significación estadística de la superficie y la incertidumbre de los valores predichos.
    Análisis de Fourier y Kriging

Ejemplo: Precipitación en California

Trabajaremos con los datos de Precipitacion de California.

library(readr)
d <- read_csv("~/Desktop/curso_glm_utb/geo-estadistica/pres.geo/sec_4_geo/precipitacion.csv")

Precipitacion anual por estaciones

d$prec <- rowSums(d[, c(6:17)])
plot(sort(d$prec), ylab=expression(paste("Precipitación (", mm/año, ")")), las=1, xlab='Estaciones')
library(sp)
dsp <- SpatialPoints(d[,c(4,3)], proj4string=CRS("+proj=longlat +datum=NAD83"))
dsp <- SpatialPointsDataFrame(dsp, d)
CAcoor <- readRDS("~/Desktop/curso_glm_utb/geo-estadistica/pres.geo/sec_4_geo/counties.rds")

# definimos los grupos
clases <- c(0,200,300,500,1000,3000)
# colores
colores <- colorRampPalette(c("yellow", 'orange', 'blue', 'dark blue'))
pols <- list("sp.polygons", CAcoor, fill = "lightgray")

spplot(dsp, "prec", cuts=clases, col.regions=colores(5), key.space = list(x = 1, y = .7), sp.layout=pols, pch=20, cex=2, main = expression(paste("Precipitación en California (", mm/año, ")")))

Ejemplo: Precipitación en California

  • Transformemos la longitud/latitud a coordenadas planas, utilizando el sistema de referencia de coordenadas comúnmente utilizado para USA (“Teale Albers”)
  • Con esto, garantizamos que nuestros resultados de interpolación se alineen con otros conjuntos de datos que tenemos.
TAcoor <- CRS("+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_0=0 +y_0=-4000000 +datum=NAD83 +units=m +ellps=GRS80 +towgs84=0,0,0")
library(rgdal)
dta <- spTransform(dsp, TAcoor)
cata <- spTransform(CAcoor, TAcoor)

Modelo inicial básico

  • Vamos a interpolar (estimar las ubicaciones no muestreadas) los valores de precipitación.
  • La forma más simple sería tomar la media de todas las observaciones.
  • Podemos considerar ese “modelo básico” con el que podemos comparar otros enfoques.
  • Utilizaremos el error mínimo cuadrático medio (EMCM) como estadística de evaluación.
EMCM <- function(observado, predicho) {
  sqrt(mean((predicho - observado)^2, na.rm=TRUE))
}
mod.bas <- EMCM(mean(dsp$prec), dsp$prec)

Poligonos de Voronoi

Definición

  • En el diagrama o celda de Voronoi, se asigna a cada dato la región del espacio cuyos puntos no son más cercanos a ningún otro dato.
  • Cada región es cerrada, incluye su frontera y un punto en la frontera equidista de dos o más datos.
    Trulli
    Poligonos de Voronoi.
  • Construcción de poligonos de Voronoi.

Ejemplo: Interpolación del vecino más cercano (KNN)

En la interpolación del vecino más cercano (KNN) tenemos los vecinos de interpolación más cercanos (k=5).

  • Usaremos la librería gstat para esto.
  • Primero nos ajustamos a un modelo con donde ~1 significa “interceptar solamente”.
  • En el caso de los datos espaciales, eso sería solo coordenadas 'x' e 'y'.
  • Establecemos el número máximo de puntos en 5, y la “potencia de distancia inversa” idp en cero (esto significa que todos los vecinos tienen igual peso).
library(gstat)
gs <- gstat(formula=prec~1, locations=dta, nmax=5, set=list(idp = 0))
nn <- interpolate(r, gs)
nnmsk <- mask(nn, vr)
nnmsk[] <- nnmsk[]
plot(nnmsk)

Interpolación por distancia inversa ponderada

  • La distancia inversa ponderada (IDW) es una forma general de encontrar un valor interpolado \( Z(S) \) en un punto dado \( S \) basado en la muestra \( \{ Z(S_i)\} \) para \( i = 1,2, \dots, n \). La función de interpolación es: \[ Z(S)=\sum _{{i=1}}^{n}{w_iZ(S_i)}, \quad \text{para } S \neq S_i. \]
  • donde \( \displaystyle w_i = \frac{\frac{1}{d(S,S_i)^p}}{\sum_{i=1}^n \frac{1}{d(S,S_i)^p}} \), para \( p \in \mathbb{Z}^+ \) y \( S \in D \).
    Aquí \( d(S,S_i)^p \) es la potencia \( p \) de la distancia euclidiana.
  • Ejemplo (p=1)
    \[ Z(S)=\frac{\frac{22}{4}+\frac{30}{3}+\frac{27}{2.5}+\frac{16}{2.8}+\frac{35}{2.7}}{\frac{1}{4}+\frac{1}{3}+\frac{1}{2.5}+\frac{1}{2.8}+\frac{1}{2.7}}=26.3 \]

Ejemplo: Distancia inversa ponderada

  • Este método de distancia inversa ponderada es comúnmente utilizado.
  • La única diferencia con el enfoque KNN, es que es más importante los que tienen un mayor peso(menor distancia).
library(gstat)
gs <- gstat(formula=prec~1, locations=dta, set=list(idp = 2))# p=2 por defecto
idw <- interpolate(r, gs)

idwr <- mask(idw, vr)
plot(idwr)

Spline de placa delgada

  • Los splines de placa delgada (TPS) son una técnica basada en splines para la interpolación y el suavizado de datos.
  • Fueron presentados al diseño geométrico por el matemático norte americano Dennis Duchon. Son un caso especial importante de un spline poliarmonico (\( \Delta^m f= 0 \)).
  • El TPS surge de la consideración de la integral del cuadrado de la segunda derivada; esto forma su medida de suavidad.
  • Para \( x \) bidimensional, la interpolación TPS ajusta una función de mapeo \( f(x) \) entre los conjuntos de puntos correspondientes \( \{y_i\} \) y \( \{x_i\} \) que minimiza la siguiente función: \[ E_{tps}(f) = \sum_{i=1}^K \|y_i - f(x_i) \|^2 \] La variante de suavizado, en consecuencia, usa un parámetro de penalización \( \lambda \) para el ajuste y para controlar la deformación (\( K \) es el número de nodos interiores), minimizando así: \[ E_{tps,suavisada}(f) = \sum_{i=1}^K \|y_i - f(x_i) \|^2 + \lambda \iint\left[\left(\frac{\partial^2 f}{\partial x_1^2}\right)^2 + 2\left(\frac{\partial^2 f}{\partial x_1 \partial x_2}\right)^2 + \left(\frac{\partial^2 f}{\partial x_2^2}\right)^2 \right] \textrm{d} x_1 \, \textrm{d}x_2 \]

Spline de placa delgada

library(fields)
m <- Tps(coordinates(aq), aq$OZDLYAV)
tps <- interpolate(r, m)
tps <- mask(tps, idw)
plot(tps)