Análisis espacial con R
El método de inverso de la distancia utiliza \(\frac{1/D^\beta}{\sum 1/D^\beta}\) como peso para la influencia de la variable a diferentes distancias.
Quizas podemos encontrar algo mejor que el inverso de la distancia para esto (ej. Moran).
Podemos obtener los pesos de forma objetiva de manera que los pesos reflejen la verdadera autocorrelación.
Matheron (1962) propone el cálculo de la denóminada semivarianza entre valores vecinos.
\[ \gamma(h) = \frac{1}{2}E[(z(s_i)-z(s_i+h))^2] \]
\(Z_(s_i)\): valor de la variable en el punto \(s_i\)
\(Z_(s_i+h)\): valor de la variable en el punto \(s_i\) más una distancia \(h\)
Si tenemos \(n\) puntos generamos \(n\cdot (n-1)/2\) pares entre ellos.
isotrópico
\[\gamma(\tilde h_j) = \frac{1}{2\cdot N_h} \sum_{i=1}^{N_h} [(z(s_i)-z(s_i+h))^2]\]
La nuve de puntos que se genera con el cálculo de las semivarianza no es simple de graficar.
Por lo que se promedia la semivarianza dentro de una distancia de retraso (lag)
Lo que esperamos encontrar es que las semivarianzas son valores bajos a cortas distancias y que aumentan y se estabiliza a una cierta distancia.
Esto se puede interpretar como: las variables respuesta son más similares a cortas distancia hasta aumentar en donde en cierto punto donde la diferencia entre los pares de puntos es más menos igual a la varianza global.
El variograma es ajustado por mínimos cuadrados.
Los pesos son determinados por \(\frac{N_j}{j_j^2}\). Donde \(N_j\) es la cantidad de puntos a cierta distancia de retraso y \(h_j\) es la distancia.
meuse
meuse
Para \(n\cdot (n-1)/2\) pares de puntos = 11.935
meuse
Sin embargo el variograma experimental se va ajustando a distintos intervalos \(h_{ij}=|| s_i-s_j ||\)
meuse
Variograma experimental
El comando:
calcula y grafíca el variograma
hace varias decisiones por nosotros (default)
Decide que la dirección es ignorada
Los pares de puntos son elegidos de acuerdo a distancia de seperación, no dirección.
Podemos elegir buscar por dirección.
Distancia máxima dentro de la cual los puntos son considerados
Por defecto es el 1/3 de la diagonal de la extensión total.
\[\frac{cutoff}{15}\]
Estos valores resultan en un ajuste inicial
Puede que no sean apropiados, por lo que pueden ser sobreescritos
El lag width
no tiene que tener un valor fijo y pueden ser intervalos
El variograma es usado para realizar predicciones espaciales.
Así como el método inverso de la distancia define el peso (influencia), otros métodos utilizan el variograma para determinar la influencia.
La forma tradicional de ajustar un variograma es ajustar un modelo paramétrico
Una vez calculado el variograma experimental debemos hacer un ajuste utilizando alguno de los diferentes modelos de variograma autorizados:
En R
En {gstat}
los modelos de variogramas son construidos usando un modelo o una combinación de modelos.
Lista de modelos de variogramas
short long
1 Nug Nug (nugget)
2 Exp Exp (exponential)
3 Sph Sph (spherical)
4 Gau Gau (gaussian)
5 Exc Exclass (Exponential class/stable)
6 Mat Mat (Matern)
7 Ste Mat (Matern, M. Stein's parameterization)
8 Cir Cir (circular)
9 Lin Lin (linear)
10 Bes Bes (bessel)
11 Pen Pen (pentaspherical)
12 Per Per (periodic)
13 Wav Wav (wave)
14 Hol Hol (hole)
15 Log Log (logarithmic)
16 Pow Pow (power)
17 Spl Spl (spline)
18 Leg Leg (Legendre)
19 Err Err (Measurement error)
20 Int Int (Intercept)
Hay muchos modelos para ajustar al variograma experimental
La mayoría de estudios han usado: exponencial, esférico, gausiano, Matérn o power.
Para ajustar uno de estos modelos mediante mínimos cuadrados, debemos hacer varios pasos:
Elegir un modelo apropiado
Elegir valores iniciales para los parámetros del modelo (sill, range, nugget)
Ajustar el modelo utilizando uno de los criterios de ajuste
Para el variograma de log(zinc)
El modelo esférico y quizas el exponencial lucen como buenas alternativas
Necesitamos valores iniciales
Revisemos los parametros de la función vgm
para definir un modelo de variograma y sus parametros iniciales
La función fit.variogram
aplica mínimos cuadrados para ajustar los parámetros del modelo de variograma
El modelo ajustado tiene un rango de 1600 en el eje principal (45° NE)
Y de \(0.3 \cdot 1600 = 480\) en la dirección menor (135°)
El paquete {gstat}
no proporciona ajuste automático del variograma con anisotropía.
Variables colocadas
\[\gamma(\tilde h_ij) = \frac{1}{2\cdot N_h} \sum_{i=1}^{N_h} [z_i(s)-z_i(s+h)]\cdot [z_j(s)-z_j(s+h)]\]
Variables no colocadas
\[\gamma(\tilde h_ij) = \frac{1}{2\cdot N_h} \sum_{i=1}^{N_h} [z_i(s)-m_i]\cdot [z_j(s)-m_j]\]
Cuando tenemos más de una variable observada en cada posición \(s(x,y)\)
En {gstat}
ordenamos y copiamos las variables
En el caso de los datos meuse
para el caso de 5 parámetros de concentraciones zinc
, Cadmium
,Cupper
y lead
data:
logCd : formula = log(cadmium)`~`1 ; data dim = 155 x 12
logCu : formula = log(copper)`~`1 ; data dim = 155 x 12
logPb : formula = log(lead)`~`1 ; data dim = 155 x 12
logZn : formula = log(zinc)`~`1 ; data dim = 155 x 12
El variograma experimental
Para ajustar con múltiples variable utilizamos fit.lmc
Como se puede observarlas variables tienen una fuerte correlación cruzada.
Podemos ver sus correlaciones.
El variograma de los residuos es utilizado cuando, por ejemplo, tengo el ajuste de un modelo de regresión.
En el caso de los datos meuse
\[log[\hat Z(s)] = \beta_0 + \beta_1\cdot \sqrt{D(s)} + \epsilon\] Los residuso
\[log[Z(s)]-log[\hat Z(s)]\]
Para el modelado de los residuos {gstat}
usa OLS
OLS
considera que las observaciones son independientes.
Para considerar la estructura dependiente presente (espacial), pueden considerarse Generalized Least Square (GLS)
Comparemos entre OLS y GLS
OLS
Comparemos entre OLS y GLS
GLS
g.wls <- gstat(NULL,"log-zinc",log(zinc)~sqrt(dist),meuse.sf,model=vt.fit,set=list(gls=1))
(variogram(g.wls)$gamma - vt$gamma)/vt$gamma
[1] 2.465425e-05 -9.643664e-05 -2.069750e-04 -3.034732e-04 -5.839567e-05
[6] -1.249649e-04 2.066984e-04 1.135141e-04 3.844557e-07 -4.096026e-05
[11] -2.551952e-04 2.041244e-04 -1.660468e-04 1.996696e-04 3.291614e-05