1. Introducción

El carbono orgánico del suelo (SOC, por sus siglas en inglés Soil Organic Carbon) es una variable importante para evaluar las propiedades del suelo, debido a su relación con la fertilidad, la calidad del suelo y el almacenamiento de carbono en los ecosistemas. Su distribución espacial puede presentar variaciones asociadas a factores ambientales y características del territorio.

En este cuaderno se aplican dos técnicas de interpolación espacial: Distancia Inversa Ponderada (IDW, Inverse Distance Weighted) y Kriging Ordinario (OK, Ordinary Kriging), con el propósito de estimar una superficie continua de carbono orgánico del suelo a una profundidad de 15–30 cm. Los datos empleados corresponden a estimaciones de SOC obtenidas de SoilGrids con una resolución espacial de 250 m, las cuales serán procesadas mediante herramientas de análisis espacial y geoestadística en R.

2. Configuración del entorno

Antes de iniciar el análisis espacial del carbono orgánico del suelo, es necesario preparar el entorno de trabajo mediante la limpieza de la memoria de R y la carga de las librerías requeridas. Estas herramientas permiten realizar la lectura y manipulación de datos espaciales, procesamiento de información ráster y vectorial, aplicación de métodos de interpolación geoestadística y visualización de los resultados obtenidos.

2.1 Limpieza del entorno de trabajo

La función rm(list = ls()) permite eliminar los objetos almacenados en la memoria temporal de R, iniciando el análisis desde un entorno limpio y evitando posibles conflictos con objetos generados en sesiones anteriores.

rm(list=ls())

2.2 Instalación de librerías

Las librerías utilizadas contienen funciones necesarias para el manejo de información espacial, análisis geoestadístico e interpolación de datos. La instalación de estos paquetes solo es necesaria la primera vez que se utilizan en el equipo.

Se recomienda ejecutar estas instrucciones desde la consola de R antes de desarrollar el análisis.

# install.packages("sp")
# install.packages("terra")
# install.packages("sf")
# install.packages("stars")
# install.packages("gstat")
# install.packages("automap")
# install.packages("leaflet")
# install.packages("leafem")
# install.packages("ggplot2")
# install.packages("dplyr")
# install.packages("curl")

2.3 Carga de librerías

Una vez instalados los paquetes, se cargan mediante la función library(), permitiendo utilizar las funciones necesarias para la preparación de datos, análisis espacial, interpolación mediante IDW y Kriging Ordinario, y generación de mapas.

library(sp)
library(terra)
## terra 1.9.34
library(sf)
## Linking to GEOS 3.14.1, GDAL 3.12.1, PROJ 9.7.1; sf_use_s2() is TRUE
library(stars)
## Loading required package: abind
library(gstat)
library(automap)
library(leaflet)
library(leafem)
library(ggplot2)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:terra':
## 
##     intersect, union
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(curl)
## Using libcurl 8.14.1 with Schannel

3. Descarga y lectura de datos de carbono orgánico del suelo

Para el análisis espacial del carbono orgánico del suelo (SOC, por sus siglas en inglés Soil Organic Carbon) se utilizó la información disponible en SoilGrids, producto desarrollado por ISRIC. La capa seleccionada corresponde al carbono orgánico del suelo a una profundidad de 15–30 cm, con una resolución espacial aproximada de 250 m.

La información fue descargada en formato ráster (.tif) para el área de estudio correspondiente a Riosucio, Chocó. Esta capa será utilizada como información base para la aplicación de métodos de interpolación espacial como Distancia Inversa Ponderada (IDW) y Kriging Ordinario (OK).

3.1 Lectura de la capa SOC

La capa ráster se carga mediante la función rast() del paquete terra, la cual permite trabajar con información espacial en formato ráster dentro de R.

soc <- terra::rast("datos/soc.tif")

soc
## class       : SpatRaster
## size        : 837, 885, 1  (nrow, ncol, nlyr)
## resolution  : 0.002259887, 0.002389486  (x, y)
## extent      : -78, -76, 6, 8  (xmin, xmax, ymin, ymax)
## coord. ref. : lon/lat WGS 84 (EPSG:4326)
## source      : soc.tif
## name        : soc

La salida permite verificar las características espaciales de la capa SOC. El ráster presenta una extensión geográfica entre -78° y -76° de longitud, y 6° y 8° de latitud, correspondiente al área de estudio. Además, se encuentra en el sistema de referencia WGS84 (EPSG:4326) y presenta una resolución espacial aproximada de 250 m, característica del producto SoilGrids.

3.2 Conversión del factor de escala

Los productos de SoilGrids almacenan los valores utilizando un factor de escala definido por la fuente original. Por esta razón, es necesario aplicar la conversión correspondiente para obtener los valores reales de carbono orgánico del suelo.

soc <- soc / 10

soc
## class       : SpatRaster
## size        : 837, 885, 1  (nrow, ncol, nlyr)
## resolution  : 0.002259887, 0.002389486  (x, y)
## extent      : -78, -76, 6, 8  (xmin, xmax, ymin, ymax)
## coord. ref. : lon/lat WGS 84 (EPSG:4326)
## source(s)   : memory
## varname     : soc
## name        :   soc
## min value   :     0
## max value   : 340.5

Después de aplicar el factor de escala, la capa presenta valores de carbono orgánico del suelo entre 0 y 340.5, correspondientes a las estimaciones ajustadas del producto SoilGrids para el área de estudio.

3.3 Revisión y transformación del sistema de referencia

La capa descargada presenta un sistema de referencia propio del producto original. Para facilitar la integración con otras capas espaciales y realizar análisis geográficos, se transforma al sistema de coordenadas geográficas WGS84 mediante la función project().

soc_wgs84 <- terra::project(
  soc,
  "EPSG:4326"
)

soc_wgs84
## class       : SpatRaster
## size        : 837, 885, 1  (nrow, ncol, nlyr)
## resolution  : 0.002259887, 0.002389486  (x, y)
## extent      : -78, -76, 6, 8  (xmin, xmax, ymin, ymax)
## coord. ref. : lon/lat WGS 84 (EPSG:4326)
## source(s)   : memory
## name        :   soc
## min value   :     0
## max value   : 340.5

La capa ya se encontraba en el sistema de referencia WGS84 (EPSG:4326), por lo que no fue necesario realizar una transformación adicional. Esto permite trabajar directamente con coordenadas geográficas de longitud y latitud para su integración con otras capas espaciales del área de estudio.

3.4 Conversión a objeto stars

Finalmente, la capa ráster transformada se convierte en un objeto stars, permitiendo utilizar herramientas adicionales para análisis espacial y visualización.

soc_stars <- stars::st_as_stars(soc_wgs84)

soc_stars
## stars object with 2 dimensions and 1 attribute
## attribute(s):
##      Min. 1st Qu. Median     Mean 3rd Qu.  Max.
## soc     0    31.2   55.8 81.17753   108.6 340.5
## dimension(s):
##   from  to offset     delta refsys x/y
## x    1 885    -78   0.00226 WGS 84 [x]
## y    1 837      8 -0.002389 WGS 84 [y]

La conversión a un objeto stars permite mantener la estructura espacial del ráster y facilita su integración con herramientas de análisis espacial. La capa conserva el sistema de referencia WGS 84 y presenta valores de carbono orgánico del suelo entre 0 y 340.5, con una mediana de 55.8 y un valor medio de 81.18 dentro del área analizada.

3.5 Visualización espacial del carbono orgánico del suelo

Para observar la distribución espacial del carbono orgánico del suelo dentro del área de estudio, se genera una representación cartográfica utilizando la capa stars. La visualización permite identificar los patrones espaciales de variación del SOC antes de aplicar los métodos de interpolación.

leaflet() %>%
  addTiles() %>%
  leafem:::addGeoRaster(
    soc_stars,
    opacity = 0.8,
    colorOptions = colorOptions(
      palette = c("orange", "yellow", "cyan", "green"),
      domain = c(0, 340)
    )
  )

El mapa permite visualizar la distribución espacial del carbono orgánico del suelo mediante una escala cromática. Las tonalidades naranjas y amarillas corresponden a valores relativamente bajos e intermedios de SOC, mientras que las tonalidades azuladas representan valores mayores dentro de la escala utilizada. La distribución de colores permite identificar la variabilidad espacial del carbono orgánico del suelo en el área de estudio.

4. Muestreo espacial de la capa SOC

Para aplicar métodos de interpolación espacial es necesario contar con puntos de referencia distribuidos dentro del área de estudio. Por esta razón, se realiza un muestreo aleatorio de la capa continua de carbono orgánico del suelo, generando puntos con valores asociados de SOC.

Se utiliza la función spatSample() del paquete terra, la cual permite extraer ubicaciones aleatorias desde una capa ráster y conservar los valores asociados.

set.seed(123456)

samples <- terra::spatSample(
  soc,
  500,
  "random",
  as.points = TRUE
)

samples
## class       : SpatVector
## geometry    : points
## dimensions  : 500, 1  (geometries, attributes)
## extent      : -77.99887, -76.00339, 6.001195, 7.996416  (xmin, xmax, ymin, ymax)
## coord. ref. : lon/lat WGS 84 (EPSG:4326)
## names       :   soc
## type        : <num>
## values      :  91.5
##                  30
##                68.1
##               ...

El objeto generado corresponde a un SpatVector compuesto por 500 puntos de muestreo aleatorio, cada uno asociado con un valor de carbono orgánico del suelo (soc). Los puntos presentan una distribución espacial dentro del área seleccionada, con coordenadas en el sistema de referencia WGS84 (EPSG:4326).

Posteriormente, el objeto SpatVector se convierte a un objeto espacial sf, facilitando su manejo mediante herramientas de análisis espacial.

muestras <- sf::st_as_sf(samples)

head(muestras)

La conversión genera un objeto espacial de tipo sf con geometría de puntos, manteniendo la información del atributo soc y sus coordenadas espaciales. El objeto conserva el sistema de referencia WGS84 (EPSG:4326), permitiendo su integración con otras herramientas de análisis espacial.

muestras <- na.omit(muestras)

head(muestras)

Los registros con valores ausentes (NA) son eliminados para evitar errores en los análisis posteriores, ya que los métodos de interpolación requieren valores completos del atributo SOC en cada punto de muestreo.

Finalmente, se extraen las coordenadas geográficas de los puntos muestreados y se genera una tabla con la información necesaria para los análisis posteriores.

coordenadas <- sf::st_coordinates(muestras)

sitios <- data.frame(
  id = seq_len(nrow(muestras)),
  longitud = coordenadas[,1],
  latitud = coordenadas[,2],
  soc = muestras$soc
)

head(sitios)

La tabla generada contiene la identificación de cada punto de muestreo (id), sus coordenadas geográficas de longitud y latitud, y el valor asociado de carbono orgánico del suelo (soc). Esta estructura permite utilizar los puntos como datos de entrada para los métodos de interpolación espacial.

4.1 Visualización de los puntos muestreados

La distribución espacial de los puntos seleccionados se visualiza sobre la capa original de carbono orgánico del suelo. Esto permite verificar que los puntos cubren adecuadamente el área de estudio y representan diferentes ubicaciones espaciales.

leaflet() %>%
  addTiles() %>%
  leafem:::addGeoRaster(
    soc_stars,
    opacity = 0.7,
    colorOptions = colorOptions(
      palette = c("orange", "yellow", "cyan", "green"),
      domain = c(0,340)
    )
  ) %>%
  addMarkers(
    lng = sitios$longitud,
    lat = sitios$latitud,
    popup = sitios$soc,
    clusterOptions = markerClusterOptions()
  )

La visualización permite observar la distribución espacial de los puntos seleccionados sobre la superficie de SOC. Los puntos representan las ubicaciones utilizadas como muestras para estimar posteriormente la distribución espacial del carbono orgánico mediante métodos de interpolación.

5. Interpolación espacial

La interpolación espacial permite estimar valores de carbono orgánico del suelo en ubicaciones donde no existen mediciones directas, utilizando la información obtenida de los puntos de muestreo generados anteriormente.

Para este análisis se utilizarán dos métodos de interpolación: Distancia Inversa Ponderada (IDW) y Kriging Ordinario (OK). Ambos métodos utilizan los puntos de muestreo de SOC como información de referencia para generar una superficie continua del atributo analizado.

5.1 Creación del objeto gstat

Antes de realizar la interpolación es necesario crear un objeto de clase gstat, el cual almacena la información requerida para construir los modelos espaciales. Este objeto contiene la variable a estimar, los datos de calibración y, en el caso del Kriging, el modelo de variograma utilizado.

La función gstat() permite definir el tipo de interpolación según los argumentos proporcionados:

  • Sin especificar un modelo de variograma se utiliza interpolación mediante IDW.
  • Incluyendo un modelo de variograma se puede aplicar Kriging Ordinario.

Para la creación del objeto se utilizan principalmente tres argumentos:

  • formula: define la variable dependiente que será interpolada.
  • data: corresponde a los puntos de muestreo utilizados como datos de referencia.
  • model: contiene el modelo de variograma para los métodos geoestadísticos.

5.2 Interpolación mediante IDW

La interpolación por Distancia Inversa Ponderada (IDW, por sus siglas en inglés Inverse Distance Weighted) estima los valores de carbono orgánico del suelo en ubicaciones sin mediciones directas, asignando mayor influencia a los puntos de muestreo más cercanos.

Para aplicar este método se crea un objeto gstat utilizando la variable SOC y los puntos de muestreo disponibles. Al no incluir un modelo de variograma, el objeto generado corresponde a una interpolación determinística mediante IDW.

g1 <- gstat::gstat(
  formula = soc ~ 1,
  data = muestras
)

Para realizar la predicción espacial se requiere una superficie de referencia que indique las ubicaciones donde se generarán las estimaciones. Se crea un ráster simplificado a partir de la capa SOC original, reduciendo su resolución para optimizar el procesamiento.

rrr <- terra::aggregate(soc, 4)

rrr
## class       : SpatRaster
## size        : 210, 222, 1  (nrow, ncol, nlyr)
## resolution  : 0.009039548, 0.009557945  (x, y)
## extent      : -78, -75.99322, 5.992832, 8  (xmin, xmax, ymin, ymax)
## coord. ref. : lon/lat WGS 84 (EPSG:4326)
## source(s)   : memory
## name        :       soc
## min value   :         0
## max value   : 318.18125

La capa generada mantiene la extensión espacial y el sistema de referencia de la información original, pero con un menor número de celdas debido al proceso de agregación.

Posteriormente, se asigna un valor constante a las celdas del ráster, ya que en este caso solo se utiliza como plantilla espacial para definir las ubicaciones de predicción.

values(rrr) <- 1

names(rrr) <- "valor"

rrr
## class       : SpatRaster
## size        : 210, 222, 1  (nrow, ncol, nlyr)
## resolution  : 0.009039548, 0.009557945  (x, y)
## extent      : -78, -75.99322, 5.992832, 8  (xmin, xmax, ymin, ymax)
## coord. ref. : lon/lat WGS 84 (EPSG:4326)
## source(s)   : memory
## name        : valor
## min value   :     1
## max value   :     1

El ráster se convierte a un objeto stars, formato requerido por la función predict() para generar la interpolación.

stars.rrr <- stars::st_as_stars(rrr)

La interpolación IDW se ejecuta utilizando el modelo definido previamente y la plantilla espacial generada.

z1 <- predict(g1, stars.rrr)
## [inverse distance weighted interpolation]
z1
## stars object with 2 dimensions and 2 attributes
## attribute(s):
## Warning in (function (..., deparse.level = 1) : number of columns of result is
## not a multiple of vector length (arg 1)
##                  Min.  1st Qu.  Median     Mean  3rd Qu.     Max.   NAs
## var1.pred  0.06897168 45.24411 64.5568 80.36305 107.6142 292.3348     0
## var1.var           NA       NA      NA      NaN       NA       NA 46620
##                  NA's
## var1.pred  0.06897168
## var1.var   0.00000000
## dimension(s):
##   from  to offset     delta refsys x/y
## x    1 222    -78   0.00904 WGS 84 [x]
## y    1 210      8 -0.009558 WGS 84 [y]

El resultado corresponde a un objeto stars que contiene la superficie continua estimada de carbono orgánico del suelo mediante el método IDW. La variable var1.pred representa los valores interpolados del SOC, con un rango aproximado entre 0.07 y 292.33 dentro del área de estudio. Esta capa representa la distribución espacial estimada del atributo a partir de los puntos de muestreo utilizados.

z1 <- z1["var1.pred",,]

names(z1) <- "soc"

z1
## stars object with 2 dimensions and 1 attribute
## attribute(s):
##            Min.  1st Qu.  Median     Mean  3rd Qu.     Max.
## soc  0.06897168 45.24411 64.5568 80.36305 107.6142 292.3348
## dimension(s):
##   from  to offset     delta refsys x/y
## x    1 222    -78   0.00904 WGS 84 [x]
## y    1 210      8 -0.009558 WGS 84 [y]

La superficie interpolada mediante IDW conserva el sistema de referencia WGS84 y presenta valores estimados de SOC entre 0.07 y 292.33. La representación cartográfica mediante una escala de colores permite identificar la variación espacial estimada del carbono orgánico del suelo, mientras que los puntos de muestreo muestran las ubicaciones utilizadas como referencia para la interpolación.

paleta <- colorNumeric(
  palette = c("orange", "yellow", "cyan", "green"),
  domain = c(0,340),
  na.color = "transparent"
)

leaflet() %>%
  addTiles() %>%
  leafem:::addGeoRaster(
    z1,
    opacity = 0.7,
    colorOptions = colorOptions(
      palette = c("orange", "yellow", "cyan", "green"),
      domain = c(0,340)
    )
  ) %>%
  addMarkers(
    lng = sf::st_coordinates(muestras)[,1],
    lat = sf::st_coordinates(muestras)[,2],
    popup = muestras$soc,
    clusterOptions = markerClusterOptions()
  ) %>%
  addLegend(
    "bottomright",
    pal = paleta,
    values = z1$soc,
    title = "Interpolación IDW - SOC"
  )

La interpolación IDW permite obtener una superficie continua del carbono orgánico del suelo a partir de los puntos muestreados. La variación espacial representada mediante colores permite identificar zonas con diferente distribución estimada del atributo dentro del área de estudio.

5.3 Interpolación mediante Kriging Ordinario

A diferencia del método IDW, el Kriging Ordinario (OK) es un método geoestadístico que considera la dependencia espacial entre los puntos de muestreo. Para esto, se requiere construir un modelo de variograma que permita describir cómo cambia la similitud entre los valores de SOC con respecto a la distancia entre los puntos.

El primer paso consiste en calcular el variograma experimental utilizando la función variogram(). Este permite analizar el comportamiento de la autocorrelación espacial del carbono orgánico del suelo.

v_emp_ok <- gstat::variogram(
  soc ~ 1,
  data = muestras
)

v_emp_ok

El variograma experimental muestra la relación entre la distancia de separación de los puntos de muestreo (dist) y la variabilidad del carbono orgánico del suelo (gamma). En los primeros rangos de distancia se observan valores menores de variabilidad, mientras que al aumentar la distancia entre puntos incrementa el valor de gamma, indicando una disminución de la similitud espacial entre las muestras de SOC.

plot(v_emp_ok)

Para ajustar automáticamente el modelo de variograma se utiliza la función autofitVariogram() del paquete automap. Esta función selecciona el modelo que mejor representa la estructura espacial de los datos.

v_mod_ok <- automap::autofitVariogram(
  soc ~ 1,
  as(muestras, "Spatial")
)

plot(v_mod_ok)

El modelo ajustado contiene los parámetros necesarios para realizar la interpolación mediante Kriging Ordinario.

v_mod_ok$var_model

El modelo de variograma ajustado está compuesto por dos componentes: un efecto nugget (Nug) y un modelo esférico (Ste). El efecto nugget presenta un psill de 164.78, asociado a la variabilidad que no puede ser explicada por la estructura espacial, como posibles errores de medición o variaciones a escalas menores que la resolución del muestreo.

El componente esférico presenta un psill de 287770.68 y un range de 12322.12, indicando la distancia aproximada hasta la cual existe dependencia espacial entre los valores de carbono orgánico del suelo. A partir de esta distancia, la influencia espacial entre los puntos disminuye considerablemente.

Los principales elementos del modelo de variograma son:

  • model: indica el tipo de componente ajustado al variograma experimental.
  • psill: representa la contribución de cada componente a la variabilidad total del atributo.
  • range: corresponde a la distancia máxima donde se mantiene la dependencia espacial.
  • Nug: representa la variabilidad no explicada por la estructura espacial del modelo.

Una vez definido el modelo de variograma, se incorpora dentro de un objeto gstat para realizar la interpolación mediante Kriging Ordinario.

g2 <- gstat::gstat(
  formula = soc ~ 1,
  model = v_mod_ok$var_model,
  data = muestras
)

La predicción espacial se realiza utilizando la misma plantilla ráster empleada en la interpolación IDW.

z2 <- predict(g2, stars.rrr)
## [using ordinary kriging]
z2
## stars object with 2 dimensions and 2 attributes
## attribute(s):
##                  Min.   1st Qu.    Median       Mean   3rd Qu.      Max.
## var1.pred   -1.601612  36.69861  56.46834   81.20333  114.9961  277.9224
## var1.var   321.310090 813.34855 978.78884 1007.21693 1157.5407 3670.2357
## dimension(s):
##   from  to offset     delta refsys x/y
## x    1 222    -78   0.00904 WGS 84 [x]
## y    1 210      8 -0.009558 WGS 84 [y]

La salida corresponde a un objeto stars generado mediante Kriging Ordinario. El atributo var1.pred contiene los valores estimados de carbono orgánico del suelo, mientras que var1.var representa la varianza asociada a la predicción, es decir, la incertidumbre espacial del modelo.

La superficie estimada presenta valores de SOC entre -1.60 y 277.92, con un valor medio aproximado de 81.20 dentro del área interpolada.

z2 <- z2["var1.pred",,]

names(z2) <- "soc"

z2
## stars object with 2 dimensions and 1 attribute
## attribute(s):
##           Min.  1st Qu.   Median     Mean  3rd Qu.     Max.
## soc  -1.601612 36.69861 56.46834 81.20333 114.9961 277.9224
## dimension(s):
##   from  to offset     delta refsys x/y
## x    1 222    -78   0.00904 WGS 84 [x]
## y    1 210      8 -0.009558 WGS 84 [y]

El resultado corresponde a la superficie interpolada de carbono orgánico del suelo mediante Kriging Ordinario. La capa presenta valores estimados de SOC entre -1.60 y 277.92, con una media de 81.20. Esta superficie representa la distribución espacial del SOC considerando la dependencia espacial identificada mediante el variograma.

Finalmente, se representa la superficie interpolada mediante Kriging Ordinario junto con los puntos utilizados como referencia.

leaflet() %>%
  addTiles() %>%
  leafem:::addGeoRaster(
    z2,
    opacity = 0.7,
    colorOptions = colorOptions(
      palette = c("orange", "yellow", "cyan", "green"),
      domain = c(0,340)
    )
  ) %>%
  addMarkers(
    lng = sf::st_coordinates(muestras)[,1],
    lat = sf::st_coordinates(muestras)[,2],
    popup = muestras$soc,
    clusterOptions = markerClusterOptions()
  ) %>%
  addLegend(
    "bottomright",
    pal = paleta,
    values = z2$soc,
    title = "Interpolación Kriging Ordinario - SOC"
  )
## Warning in pal(c(r[1], cuts, r[2])): Some values were outside the color scale
## and will be treated as NA

La interpolación mediante Kriging Ordinario genera una superficie continua del carbono orgánico del suelo considerando la estructura espacial identificada mediante el variograma. La distribución de colores permite observar los patrones espaciales estimados del SOC dentro del área de estudio.

6. Evaluación de resultados

6.1 Evaluación cualitativa

Se comparan visualmente la capa original de SOC y las superficies generadas mediante IDW y Kriging Ordinario. La visualización permite identificar similitudes y diferencias en la distribución espacial estimada del carbono orgánico del suelo entre los métodos de interpolación.

stars.soc <- st_as_stars(soc)
colores <- colorOptions(
  palette = c("orange", "yellow", "cyan", "green"),
  domain = c(0,340),
  na.color = "transparent"
)

m <- leaflet() %>%
  addTiles() %>%
  addGeoRaster(stars.soc, opacity = 0.8, colorOptions = colores, group="RealWorld") %>%
  addGeoRaster(z1, colorOptions = colores, opacity = 0.8, group="IDW") %>%
  addGeoRaster(z2, colorOptions = colores, opacity = 0.8, group="OK") %>%
  addLayersControl(
    overlayGroups = c("RealWorld", "IDW", "OK"),
    options = layersControlOptions(collapsed = FALSE)
  ) %>%
  addLegend(
    "bottomright",
    pal = paleta,
    values = z1$soc,
    title = "Carbono orgánico del suelo"
  )

m

6.2 Validación cruzada

La validación cruzada permite evaluar la precisión de los métodos de interpolación comparando los valores observados en los puntos de muestreo con los valores estimados por el modelo.

Se utiliza el método Leave-One-Out Cross Validation, donde cada punto es excluido temporalmente, se estima su valor mediante el modelo y posteriormente se compara con el valor real registrado.

La función gstat.cv() permite realizar este procedimiento utilizando un objeto gstat.

Validación cruzada para IDW

cv1 <- gstat::gstat.cv(g1)
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
## [inverse distance weighted interpolation]
cv1 <- na.omit(cv1)

cv1
## class       : SpatialPointsDataFrame 
## features    : 500 
## extent      : -77.99887, -76.00339, 6.001195, 7.996416  (xmin, xmax, ymin, ymax)
## crs         : +proj=longlat +datum=WGS84 +no_defs 
## variables   : 6
## names       :        var1.pred, var1.var, observed,          residual, zscore, fold 
## min values  : 3.19872550388059,       NA,        0, -178.383099564193,     NA,    1 
## max values  : 268.831184376548,       NA,      297,  171.467640109315,     NA,  500

El resultado contiene información de los valores predichos (var1.pred), valores observados (observed) y el error de predicción (residual). Estos elementos permiten evaluar el desempeño del modelo de interpolación.

cv1 <- st_as_sf(cv1)
sp::bubble(as(cv1[, "residual"], "Spatial"))

Los residuos representan la diferencia entre los valores observados y los estimados por el modelo. Valores cercanos a cero indican una mejor aproximación entre la predicción y la medición real.

El error cuadrático medio (RMSE) permite cuantificar la precisión del modelo. Valores menores indican una menor diferencia promedio entre los valores observados y predichos.

sqrt(sum((cv1$var1.pred - cv1$observed)^2) / nrow(cv1))
## [1] 41.98308

El método IDW presentó un RMSE de 41.98, mientras que Kriging Ordinario obtuvo un RMSE de 38.19. Debido a que un menor RMSE indica una menor diferencia entre los valores observados y estimados, el Kriging Ordinario presentó un mejor desempeño para la interpolación del carbono orgánico del suelo en este análisis.

Validación cruzada para Kriging Ordinario

El mismo procedimiento de validación cruzada se aplica al modelo de Kriging Ordinario para evaluar su capacidad de predicción.

cv2 <- gstat::gstat.cv(g2)
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
## [using ordinary kriging]
cv2 <- na.omit(cv2)

cv2 <- st_as_sf(cv2)

cv2

El resultado de la validación cruzada para Kriging Ordinario corresponde a un objeto espacial con 500 puntos evaluados. La tabla contiene los valores predichos (var1.pred), los valores observados (observed), el error de predicción (residual) y la incertidumbre asociada (var1.var).

Los residuos permiten identificar la diferencia entre los valores estimados y los valores reales utilizados en la validación.

sqrt(sum((cv2$var1.pred - cv2$observed)^2) / nrow(cv2))
## [1] 38.19445

El método IDW presentó un RMSE de 41.98, mientras que Kriging Ordinario obtuvo un RMSE de 38.19. Además, los residuos del Kriging presentan una distribución más cercana a cero, indicando menor sesgo en las predicciones. Por lo tanto, el Kriging Ordinario presentó un mejor desempeño para la interpolación del carbono orgánico del suelo en este análisis.

Bibliografía

Lizarazo, I. (2023). Spatial interpolation of soil organic carbon. RPubs.
https://rpubs.com/ials2un/soc_interp