D.4 Predicción espacial (KU)
Para generar la rejilla de predicción consideramos un buffer de radio 40 en torno a las posiciones espaciales:
En lugar de emplear una rejilla sf:
por comodidad es preferible emplear una rejilla stars:
Si suponemos un modelo (no constante) para la tendencia, es necesario añadir los valores de las variables explicativas a la rejilla de predicción:
Además, en este caso recortamos la rejilla para filtrar predicciones alejadas de las observaciones:
Obtenemos las predicciones mediante kriging universal (Sección 4.3 y Sección 4.4):
## [using universal kriging]
ERROR en krige: cambia las coordenadas del objeto stars
## x y
## Min. :-181.86 Min. :-28.03
## 1st Qu.:-100.73 1st Qu.: 33.25
## Median : -16.22 Median : 97.09
## Mean : -16.22 Mean : 97.09
## 3rd Qu.: 68.29 3rd Qu.:160.93
## Max. : 149.42 Max. :222.21
## x y
## Min. :-181.86 Min. :-28.03
## 1st Qu.:-100.73 1st Qu.: 33.25
## Median : -16.22 Median : 97.09
## Mean : -16.22 Mean : 97.09
## 3rd Qu.: 68.29 3rd Qu.:160.93
## Max. : 149.42 Max. :222.21
Posible solución: añadir el resultado a grid:
Finalmente representamos las predicciones y las varianzas kriging:
plot(grid["var1.pred"], breaks = "equal", col = sf.colors(64), key.pos = 4,
main = "Predicciones kriging")
plot(grid["var1.var"], breaks = "equal", col = sf.colors(64), key.pos = 4,
main = "Varianzas kriging")
También podríamos emplear el paquete ggplot2:
library(ggplot2)
library(gridExtra)
p1 <- ggplot() + geom_stars(data = grid, aes(fill = var1.pred, x = x, y = y)) +
scale_fill_viridis_c() + geom_sf(data = aquifer_sf) +
coord_sf(lims_method = "geometry_bbox")
p2 <- ggplot() + geom_stars(data = grid, aes(fill = var1.var, x = x, y = y)) +
scale_fill_viridis_c() + geom_sf(data = aquifer_sf) +
coord_sf(lims_method = "geometry_bbox")
grid.arrange(p1, p2, ncol = 2)