1 Introducción

La geoestadística permite analizar variables espaciales que dependen de la ubicación geográfica, conocidas como variables regionalizadas.

En este estudio se analiza la temperatura registrada en una finca de producción de aguacate en el Cauca, con el objetivo de identificar patrones espaciales, evaluar autocorrelación y realizar predicción mediante kriging.

2 2. Objetivo

Aplicar técnicas de geoestadística para:

  • Analizar la distribución espacial de la temperatura
  • Evaluar autocorrelación espacial mediante semivariograma
  • Ajustar modelos teóricos (exponencial, gaussiano y esférico)
  • Seleccionar el mejor modelo
  • Realizar predicción espacial (kriging)
  • Validar el modelo mediante cross-validation

En caso de no evidenciar autocorrelación significativa, se evaluarán variables ambientales alternativas como humedad relativa o viento.

3 Carga y filtrado de datos

Se cargan los datos provenientes de sensores instalados en la finca.

datos <- read_excel(
  "C:/Users/Nelson Cardenas/OneDrive/Documentos/1_M_Ciencia_Datos_PUJC/2do_Sem/4_Anls_Inf_Geo_3045-A/Mod 2/Proy_Geoest_Aguacate_M2U1/Datos_Completos_Aguacate.xlsx"
)

head(datos, 10)

3.1 Interpretación

  • Aunque el conjunto de datos contiene 564 registros y 21 variables, con head(datos, 10) solo se observan las primeras 10 filas.

  • Los datos corresponden a mediciones realizadas en árboles de aguacate, identificados mediante id_arbol, e incluyen coordenadas geográficas (Latitude y Longitude) y la fecha y hora de captura (FORMATTED_DATE_TIME).

  • Las coordenadas son cercanas entre sí, lo que indica que las mediciones pertenecen a una misma zona de estudio en la finca.

4 5. Filtrado de fecha

Se selecciona el periodo de análisis correspondiente al 01/10/2020.

datos <- datos %>%
  filter(grepl("01/10/2020", FORMATTED_DATE_TIME))

En esta etapa se filtran los datos para seleccionar únicamente las mediciones realizadas el 01/10/2020. Esto permite trabajar con un periodo específico de análisis y facilita el estudio espacial de las variables registradas en la finca.

5 Selección de variables

datos_geo <- datos %>%
  select(Longitude, Latitude, Temperature)

En esta etapa se seleccionan las variables necesarias para el análisis geoestadístico: las coordenadas espaciales (Longitude y Latitude) y la variable de estudio (Temperature). Esto permite construir la variable regionalizada para analizar la distribución espacial de la temperatura en la finca.

5.1 Evaluación de variables ambientales (exploratoria)

De manera exploratoria, se consideraron variables ambientales adicionales; sin embargo, se seleccionó la temperatura por presentar mayor coherencia con el objetivo del estudio y una estructura espacial más estable, lo que facilita su análisis mediante técnicas geoestadísticas.

6 Exploración espacial

Se realiza una visualización inicial de la distribución de la temperatura.

borde <- datos_geo[chull(datos_geo$Longitude, datos_geo$Latitude), ]

ggplot(datos_geo, aes(Longitude, Latitude)) +
  geom_point(aes(color = Temperature), size = 2) +
  geom_polygon(
    data = borde,
    aes(Longitude, Latitude),
    fill = NA,
    color = "black",
    linewidth = 0.6
  ) +
  coord_fixed() +
  scale_color_viridis_c(option = "viridis") +
  labs(
    title = "Distribución espacial de la temperatura",
    x = "Longitud",
    y = "Latitud",
    color = "Temperatura (°C)"
  ) +
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5),
    panel.grid = element_blank()
  )

6.1 Interpretación:

  • El mapa representa la distribución espacial de la temperatura dentro del área de estudio, delimitada mediante la envolvente convexa de los puntos de muestreo. Se observa una variabilidad térmica aproximada entre 24 °C y 28 °C, lo que indica heterogeneidad espacial en la variable analizada.

  • La disposición de los valores no sigue un patrón aleatorio, sino que evidencia agrupamientos locales y transiciones graduales en el espacio, lo cual sugiere la presencia de dependencia espacial. Este comportamiento es consistente con la hipótesis de autocorrelación espacial, donde observaciones cercanas tienden a presentar valores similares.

  • En este contexto, se justifica la aplicación de técnicas geoestadísticas como el semivariograma para cuantificar la estructura de dependencia espacial y el kriging para la interpolación y predicción de valores en ubicaciones no muestreadas.

7 Evaluación de tendencia espacial

par(mfrow = c(1, 2))

smoothScatter(datos_geo$Longitude, datos_geo$Temperature,
              xlab = "Longitud",
              ylab = "Temperatura (°C)",
              main = "Tendencia espacial: Longitud vs Temperatura")

smoothScatter(datos_geo$Latitude, datos_geo$Temperature,
              xlab = "Latitud",
              ylab = "Temperatura (°C)",
              main = "Tendencia espacial: Latitud vs Temperatura")

par(mfrow = c(1, 1))

7.1 Interpretación:

  • La evaluación de tendencia espacial permite analizar si la temperatura presenta variaciones sistemáticas en función de la ubicación geográfica.

  • En los gráficos de dispersión suavizada se observa la relación entre la temperatura y las coordenadas (longitud y latitud), lo que permite identificar posibles gradientes espaciales.

  • En general, no se evidencia una tendencia lineal fuerte, lo que sugiere que la variabilidad de la temperatura no depende de forma determinística de la posición geográfica, sino que está dominada por una estructura de autocorrelación espacial.

  • Este resultado respalda la aplicación de métodos geoestadísticos como el semivariograma y el kriging, ya que el fenómeno presenta variación espacial estructurada más que tendencia global.

8 Variable regionalizada

geodata <- as.geodata(
  datos_geo,
  coords.col = 1:2,
  data.col = 3
)

plot(geodata)

distancias <- summary(dist(geodata$coords))

tabla_dist <- data.frame(
  Estadístico = names(distancias),
  Valor = as.numeric(distancias)
)

knitr::kable(
  tabla_dist,
  caption = "Resumen de distancias espaciales entre puntos"
)
Resumen de distancias espaciales entre puntos
Estadístico Valor
Min. 0.0000171
1st Qu. 0.0004051
Median 0.0006408
Mean 0.0006827
3rd Qu. 0.0009178
Max. 0.0019591

8.1 Interpretación

Los gráficos exploratorios permiten analizar la relación entre las coordenadas espaciales y la temperatura registrada. Se observa la distribución de los datos en función de las coordenadas X (longitud) y Y (latitud), así como la variabilidad de la temperatura respecto a cada eje espacial.

Gráfico Descripción Interpretación
YCoord vs XCoord Distribución espacial de los puntos de muestreo. Muestra la ubicación de los árboles dentro del área de estudio y la cobertura espacial de las mediciones.
YCoord vs Data Relación entre la latitud y la temperatura. Permite identificar posibles cambios de temperatura en dirección norte-sur.
Data vs XCoord Relación entre la longitud y la temperatura. Permite observar variaciones de temperatura en dirección este-oeste.
Density vs Data Distribución de densidad de la temperatura. Muestra la concentración y frecuencia de los valores de temperatura registrados en la finca.
summary(dist(geodata$coords))
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
## 1.712e-05 4.051e-04 6.408e-04 6.827e-04 9.178e-04 1.959e-03

8.2 Interpretación:

Las distancias entre los puntos de muestreo permiten establecer rangos apropiados para la construcción del semivariograma. Dado que las observaciones se encuentran muy próximas entre sí, con distancias que van desde 1.712e-05 hasta 1.959e-03, se garantiza una buena resolución espacial para analizar la dependencia espacial de la temperatura.

9 Semivariograma experimental

variograma <- variog(
  geodata,
  uvec = seq(0, max(dist(geodata$coords))/2, length = 15)
)
## variog: computing omnidirectional variogram
env <- variog.mc.env(geodata, obj = variograma)
## variog.env: generating 99 simulations by permutating data values
## variog.env: computing the empirical variogram for the 99 simulations
## variog.env: computing the envelops
plot(variograma, envelope = env)

9.1 Interpretación:

Se construyó el semivariograma experimental de la temperatura para analizar su comportamiento espacial. Se generaron 99 simulaciones para formar bandas de envoltura y comparar el patrón observado con uno aleatorio. Esto permite identificar si existe dependencia espacial significativa en la distribución de la temperatura dentro del área de estudio.

10 Ajuste de modelos teóricos

mod_exp <- variofit(variograma, cov.model = "exponential")
## variofit: covariance model used is exponential 
## variofit: weights used: npairs 
## variofit: minimisation function used: optim
## variofit: searching for best initial value ... selected values:
##               sigmasq phi   tausq  kappa
## initial.value "2.65"  "0"   "1.77" "0.5"
## status        "est"   "est" "est"  "fix"
## loss value: 3409.44581621135
mod_gau <- variofit(variograma, cov.model = "gaussian")
## variofit: covariance model used is gaussian 
## variofit: weights used: npairs 
## variofit: minimisation function used: optim
## variofit: searching for best initial value ... selected values:
##               sigmasq phi   tausq  kappa
## initial.value "1.77"  "0"   "1.77" "0.5"
## status        "est"   "est" "est"  "fix"
## loss value: 7777.74662277015
mod_sph <- variofit(variograma, cov.model = "spherical")
## variofit: covariance model used is spherical 
## variofit: weights used: npairs 
## variofit: minimisation function used: optim
## variofit: searching for best initial value ... selected values:
##               sigmasq phi   tausq  kappa
## initial.value "1.77"  "0"   "1.77" "0.5"
## status        "est"   "est" "est"  "fix"
## loss value: 6219.14439538438
plot(variograma)
lines(mod_exp, col = "blue", lwd = 2)
lines(mod_gau, col = "red", lwd = 2)
lines(mod_sph, col = "green", lwd = 2)

10.1 Interpretación:

Se ajustaron tres modelos teóricos de semivariograma (exponencial, gaussiano y esférico) para representar la estructura espacial de la temperatura. Cada modelo fue evaluado mediante su función de pérdida, obteniendo que el modelo exponencial presenta el menor valor (3409.45), lo que indica un mejor ajuste frente a los otros modelos (gaussiano: 7777.75 y esférico: 6219.14).

La comparación gráfica muestra cómo cada modelo intenta representar la variabilidad espacial observada, siendo el exponencial el que mejor captura la dependencia espacial en los datos del estudio.

11 Selección del modelo teórico

Se ajustaron tres modelos teóricos al semivariograma experimental: exponencial, gaussiano y esférico.

La selección del mejor modelo se realizó con base en el criterio de suma de cuadrados del error (SSE), obtenidos a partir del ajuste por mínimos cuadrados ponderados.

Los resultados fueron:

  • Modelo exponencial: SSE = 3214.11
  • Modelo gaussiano: SSE = 4771.25
  • Modelo esférico: SSE = 3864.17

El modelo exponencial presentó el menor error de ajuste, por lo tanto, es el que mejor representa la estructura de dependencia espacial de la temperatura en la finca de estudio.

summary(mod_exp)
## $pmethod
## [1] "WLS (weighted least squares)"
## 
## $cov.model
## [1] "exponential"
## 
## $spatial.component
##     sigmasq         phi 
## 2.654809727 0.000830353 
## 
## $spatial.component.extra
## kappa 
##   0.5 
## 
## $nugget.component
##    tausq 
## 1.769873 
## 
## $fix.nugget
## [1] FALSE
## 
## $fix.kappa
## [1] TRUE
## 
## $practicalRange
## [1] 0.00251548
## 
## $sum.of.squares
##    value 
## 3214.111 
## 
## $estimated.pars
##       tausq     sigmasq         phi 
## 1.769873152 2.654809727 0.000830353 
## 
## $weights
## [1] "npairs"
## 
## $call
## variofit(vario = variograma, cov.model = "exponential")
## 
## attr(,"class")
## [1] "summary.variomodel"
summary(mod_gau)
## $pmethod
## [1] "WLS (weighted least squares)"
## 
## $cov.model
## [1] "gaussian"
## 
## $spatial.component
##      sigmasq          phi 
## 1.6580196878 0.0002174429 
## 
## $spatial.component.extra
## kappa 
##   0.5 
## 
## $nugget.component
##    tausq 
## 1.521734 
## 
## $fix.nugget
## [1] FALSE
## 
## $fix.kappa
## [1] TRUE
## 
## $practicalRange
## [1] 0.0004078753
## 
## $sum.of.squares
##    value 
## 4771.254 
## 
## $estimated.pars
##        tausq      sigmasq          phi 
## 1.5217339906 1.6580196878 0.0002174429 
## 
## $weights
## [1] "npairs"
## 
## $call
## variofit(vario = variograma, cov.model = "gaussian")
## 
## attr(,"class")
## [1] "summary.variomodel"
summary(mod_sph)
## $pmethod
## [1] "WLS (weighted least squares)"
## 
## $cov.model
## [1] "spherical"
## 
## $spatial.component
##     sigmasq         phi 
## 1.769873152 0.001014556 
## 
## $spatial.component.extra
## kappa 
##   0.5 
## 
## $nugget.component
##    tausq 
## 1.769873 
## 
## $fix.nugget
## [1] FALSE
## 
## $fix.kappa
## [1] TRUE
## 
## $practicalRange
## [1] 0.001014556
## 
## $sum.of.squares
##    value 
## 3864.176 
## 
## $estimated.pars
##       tausq     sigmasq         phi 
## 1.769873152 1.769873152 0.001014556 
## 
## $weights
## [1] "npairs"
## 
## $call
## variofit(vario = variograma, cov.model = "spherical")
## 
## attr(,"class")
## [1] "summary.variomodel"

11.1 Interpretación:

Se ajustaron tres modelos teóricos de semivariograma (exponencial, gaussiano y esférico) utilizando mínimos cuadrados ponderados. Al comparar los resultados, el modelo exponencial presenta el mejor ajuste, con la menor suma de cuadrados (3214.11) y un rango práctico de 0.00252, lo que indica una mayor coherencia con la estructura espacial observada.

El modelo gaussiano presenta el peor ajuste (4771.25), seguido del esférico (3864.18), lo que sugiere que la dependencia espacial de la temperatura se describe mejor con un comportamiento de tipo exponencial.

En general, los parámetros estimados (nugget, sill y rango) confirman la existencia de dependencia espacial a corta distancia dentro del área de estudio.

12 Validación cruzada del modelo exponencial

cv <- xvalid(
  geodata,
  model = mod_exp
)
## xvalid: number of data locations       = 534
## xvalid: number of validation locations = 534
## xvalid: performing cross-validation at location ... 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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 
## xvalid: end of cross-validation
errores <- cv$error

mean_error <- mean(errores, na.rm = TRUE)
mae <- mean(abs(errores), na.rm = TRUE)
rmse <- sqrt(mean(errores^2, na.rm = TRUE))
sd_error <- sd(errores, na.rm = TRUE)

mean_error
## [1] -0.0008900079
mae
## [1] 1.00289
rmse
## [1] 1.227824
sd_error
## [1] 1.228975

12.1 Interpretación

  • La validación cruzada tipo leave-one-out permite evaluar la capacidad predictiva del modelo de kriging. El error medio cercano a cero (≈ 0.0009) indica ausencia de sesgo sistemático en las predicciones.

  • El error absoluto medio (MAE ≈ 1.00) y el RMSE (≈ 1.23) reflejan un nivel de error moderado, consistente con la variabilidad espacial del fenómeno analizado.

  • En conjunto, los resultados indican que el modelo exponencial presenta un desempeño adecuado para la predicción espacial de la temperatura.

13 Kriging (predicción espacial)

library(geoR)
library(fields)
library(viridis)


best_model <- mod_exp

xg <- seq(min(datos_geo$Longitude),
          max(datos_geo$Longitude),
          length.out = 100)

yg <- seq(min(datos_geo$Latitude),
          max(datos_geo$Latitude),
          length.out = 100)

loc_grid <- expand.grid(x = xg, y = yg)
loc_grid <- as.matrix(loc_grid)

krig <- krige.conv(
  geodata,
  loc = loc_grid,
  krige = krige.control(
    obj.model = best_model
  )
)
## krige.conv: model with constant mean
## krige.conv: Kriging performed using global neighbourhood
zmat <- matrix(
  krig$predict,
  nrow = length(xg),
  ncol = length(yg)
)

image.plot(
  x = xg,
  y = yg,
  z = zmat,
  col = viridis(100),
  xlab = "Longitud",
  ylab = "Latitud",
  main = "Mapa de Kriging – Temperatura (Finca de Aguacate)",
  legend.args = list(text = "Temperatura", side = 3, line = 0.5)
)

contour(
  x = xg,
  y = yg,
  z = zmat,
  add = TRUE,
  col = "white",
  lwd = 0.4
)

points(
  geodata$coords,
  pch = 20,
  cex = 0.6
)

13.1 Interpretación

  • La temperatura presenta dependencia espacial significativa, evidenciada por el semivariograma experimental, lo que confirma que el fenómeno no es aleatorio.

  • El modelo exponencial fue el mejor ajuste con SSE = 3214.11, superando al gaussiano (4771.25) y al esférico (3864.17), lo que indica una mejor representación de la estructura espacial.

  • La validación cruzada leave-one-out mostró un desempeño adecuado del modelo, con MAE ≈ 1.00, RMSE ≈ 1.23 y sesgo cercano a cero (0.0009), evidenciando buena capacidad predictiva.

  • El kriging permitió generar una superficie continua de temperatura, identificando gradientes espaciales entre aproximadamente entre 22,2 °C al 29,7 °C, lo que evidencia variabilidad térmica dentro de la finca.

  • En conjunto, los resultados confirman que la geoestadística es una herramienta efectiva para caracterizar y predecir la variabilidad espacial de la temperatura, siendo útil para la toma de decisiones en agricultura de precisión.

14 Validación del modelo (Cross-validation)

cv <- xvalid(geodata, model = mod_exp)
## xvalid: number of data locations       = 534
## xvalid: number of validation locations = 534
## xvalid: performing cross-validation at location ... 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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 
## xvalid: end of cross-validation
errores <- cv$error

mean(errores, na.rm = TRUE)   # sesgo
## [1] -0.0008900079
mean(abs(errores), na.rm = TRUE)  # MAE
## [1] 1.00289
sqrt(mean(errores^2, na.rm = TRUE))  # RMSE
## [1] 1.227824

14.1 Interpretación:

  • Se realizó validación cruzada tipo leave-one-out con el objetivo de evaluar la capacidad predictiva del modelo de kriging ajustado bajo estructura exponencial.

  • Los resultados obtenidos indican un sesgo prácticamente nulo (−0.00089), lo que evidencia que el modelo no sobreestima ni subestima sistemáticamente la temperatura.

  • El error absoluto medio (MAE = 1.0029) indica que, en promedio, las predicciones se desvían aproximadamente 1 °C respecto a los valores observados.

  • El error cuadrático medio (RMSE = 1.2278) confirma un nivel de error moderado y consistente con la variabilidad espacial del fenómeno.

  • En conjunto, los indicadores muestran que el modelo exponencial presenta una buena capacidad predictiva, coherente con la estructura de dependencia espacial identificada en el semivariograma.

  • Por lo tanto, el modelo es adecuado para interpolación espacial de temperatura en zonas no muestreadas dentro del área de estudio.

15 Conclusiones

  • La variable temperatura presenta dependencia espacial significativa, evidenciada mediante el semivariograma experimental, lo que confirma que el fenómeno no se comporta de manera aleatoria.

  • Las simulaciones de envoltura del semivariograma respaldan la existencia de estructura espacial, ya que la variabilidad observada se mantiene fuera del comportamiento esperado bajo aleatoriedad.

  • El modelo exponencial fue el que mejor representó la estructura espacial de los datos, con el menor error de ajuste (SSE = 3214.11) frente al gaussiano (4771.25) y esférico (3864.17).

  • La validación cruzada tipo leave-one-out mostró un desempeño adecuado del modelo, con un RMSE ≈ 1.23, MAE ≈ 1.00 y un sesgo cercano a cero (0.0009), lo que indica buena capacidad predictiva sin sobreestimación sistemática.

  • El análisis de los parámetros del semivariograma (nugget, sill y rango) permitió caracterizar una dependencia espacial de corta distancia, consistente con variaciones locales dentro del área de estudio.

  • El kriging ordinario permitió generar una superficie continua de temperatura, identificando variaciones espaciales aproximadas entre 24 °C y 35 °C, incluso en zonas sin muestreo directo.

  • Estos resultados confirman que la geoestadística es una herramienta adecuada para agricultura de precisión, ya que permite zonificación espacial útil para decisiones de manejo como riego y control microclimático.

  • Finalmente, se evidencia que la calidad del modelo depende directamente de la densidad y distribución de los puntos de muestreo, siendo clave para mejorar la precisión de la predicción espacial.

  • El análisis confirma que la temperatura presenta estructura espacial aprovechable, validando completamente el uso de kriging como método de interpolación en el área de estudio