Ordinary Kriging digunakan untuk menginterpolasi variabel kemiskinan dengan mempertimbangkan struktur autokorelasi spasial melalui variogram. Model variogram yang terbentuk digunakan untuk menghasilkan prediksi nilai pada seluruh wilayah Sulawesi Selatan sehingga diperoleh peta distribusi spasial yang lebih akurat dibandingkan metode deterministik.

Load Library

library(sf)
## Linking to GEOS 3.13.1, GDAL 3.11.4, PROJ 9.7.0; sf_use_s2() is TRUE
library(sp)
library(gstat)
library(raster)
library(ggplot2)

Persiapan Data dan Peta

shp <- st_read("D:/Youtube/Spasial/SHP/sulsel.shp")
## Reading layer `sulsel' from data source `D:\Youtube\Spasial\SHP\sulsel.shp' using driver `ESRI Shapefile'
## Simple feature collection with 24 features and 13 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: 117.0385 ymin: -7.758941 xmax: 121.8402 ymax: -1.895236
## Geodetic CRS:  WGS 84
data <- read.csv("D:/Youtube/Spasial/LISA.csv")
data
##              wilayah Kemiskinan
## 1           Bantaeng        7.2
## 2              Barru        7.5
## 3               Bone        9.5
## 4          Bulukumba       11.1
## 5           Enrekang       10.5
## 6               Gowa        7.8
## 7          Jeneponto       12.5
## 8  Kepulauan Selayar       10.8
## 9               Luwu       11.0
## 10        Luwu Timur       11.8
## 11        Luwu Utara       12.2
## 12          Makassar        4.5
## 13             Maros        6.9
## 14            Palopo        9.3
## 15           Pangkep        8.2
## 16          Parepare        6.5
## 17           Pinrang        8.3
## 18            Sidrap        7.9
## 19            Sinjai        9.8
## 20           Soppeng        8.7
## 21           Takalar        9.0
## 22       Tana Toraja       12.7
## 23      Toraja Utara       13.0
## 24              Wajo       10.2
shp$kemiskinan <- data$Kemiskinan
shp$wilayah <- shp$NAME_2
shp <- st_transform(shp, 32750)
shp_sp <- as(shp, "Spatial")

Eksplorasi Variogram

vgm_exp <- variogram(kemiskinan ~ 1, data = shp_sp)

Fit Model Variogram

Model umum: spherical / exponential / gaussian

model <- vgm(psill = 2, model = "Sph", range = 100000, nugget = 3)
fit <- fit.variogram(vgm_exp, model)
## Warning in fit.variogram(vgm_exp, model): No convergence after 200 iterations:
## try different initial values?

Buat Grid Prediksi

grid <- st_make_grid(shp, cellsize = 2000, what = "centers")
grid <- as(grid, "Spatial")

Ordinary Kriging

kriging_res <- krige(kemiskinan ~ 1, shp_sp, grid, model = fit)
## [using ordinary kriging]

Konversi Hasil

ok_df <- as.data.frame(kriging_res)
names(ok_df)[1:2] <- c("x","y")

Visualisasi Peta Kriging

library(ggplot2)

ggplot(ok_df, aes(x = x, y = y, fill = var1.pred)) +
  geom_tile() +
  coord_equal() +
  scale_fill_viridis_c() +
  labs(title = "Peta Ordinary Kriging - Kemiskinan",
       fill = "Prediksi")