LAPORAN UJIAN TENGAH SEMESTER

Spatial Statistics






Disusun oleh:

Andini Dwi Kurnia Putri (140610230082)



Dosen Pengampu:

Dr. I Gede Nyoman Mindra Jaya, M.Si




PROGRAM STUDI S-1 STATISTIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS PADJADJARAN
JATINANGOR
2025

1 Pendahuluan

1.1 Latar Belakang

World Health Organization (WHO) menjelaskan bahwa Indonesia (sebagai negara kepulauan dengan kompleksitas geografis dan keragaman sosio-ekonomi yang tinggi) sedang menghadapi tantangan kesehatan masyarakat yang memerlukan pendekatan analitis yang mendalam. Di tingkat provinsi di Indonesia, beban penyakit menular kronis seperti malaria, demam berdarah dengue (DBD), filariasis, dan zoonosis mematikan rabies masih menjadi masalah utama pada tahun 2024. Faktor biologis bukan satu-satunya yang mempengaruhi penyebaran dan tingkat keparahan penyakit ini; faktor sosial dan interaksi lingkungan juga berperan. Faktor-faktor ini termasuk Persentase Rumah Tangga yang Memiliki Akses terhadap Sanitasi Layak, yang merupakan indikator penting dalam pencegahan penyakit berbasis lingkungan; Kepadatan Penduduk per km, yang menunjukkan bagaimana penularan berjalan di daerah padat; Jumlah Desa yang Memiliki Rumah Sakit, yang menunjukkan kemampuan sistem kesehatan provinsi untuk bertindak; dan Persentase Penduduk Miskin, yang menunjukkan kerentanan umum masyarakat terhadap penyakit. Penelitian ini akan memeriksa adanya ketergantungan antar-provinsi, juga dikenal sebagai ketergantungan spasial, dan membandingkan kekuatan model. Tujuan penelitian ini adalah untuk menemukan model statistik yang paling akurat dengan membandingkan berbagai model untuk menentukan keberadaan dan kekuatan ketergantungan spasial terkait beban penyakit menular kronis di Indonesia. Hasilnya diharapkan akan membantu memberikan informasi tentang kebijakan kesehatan publik yang tepat sasaran dan terintegrasi.

1.2 Identifikasi masalah

  • Apakah faktor sosio-ekonomi dan lingkungan/infrastruktur kesehatan (Sanitasi Layak, Kepadatan Penduduk, Jumlah Rumah Sakit, dan Kemiskinan) secara signifikan mempengaruhi beban penyakit menular kronis (malaria, DBD, filariasis, dan rabies) di tingkat provinsi?

  • Apakah terdapat ketergantungan spasial (antar-provinsi) dalam penyebaran penyakit menular kronis, dan seberapa kuat pengaruhnya?

  • Model statistik manakah yang paling akurat dan kuat dalam memodelkan hubungan ini untuk rekomendasi kebijakan?

1.3 Tujuan

  • Mendeskripsikan pola dan distribusi spasial kasus penyakit menular kronis (malaria, DBD, filariasis, dan rabies) di seluruh provinsi di Indonesia pada tahun 2024 melalui visualisasi peta tematik.

  • Menguji adanya autokorelasi spasial global dan lokal pada kasus penyakit menular kronis (malaria, DBD, filariasis, dan rabies).

  • Menganalisis dampak faktor lingkungan, sosio-ekonomi, dan infrastruktur kesehatan (Sanitasi Layak, Kepadatan Penduduk, Jumlah Rumah Sakit, dan Kemiskinan) terhadap kasus penyakit dengan mempertimbangkan efek spasial.

  • Mengidentifikasi model regresi spasial yang paling cocok untuk menjelaskan beban penyakit menular kronis di Indonesia melalui perbandingan kekuatan model.

1.4 Batasan Penelitian

  • Penelitian ini difokuskan pada kasus penyakit menular kronis (malaria, Demam Berdarah Dengue/DBD, filariasis, dan rabies) yang menjadi beban utama masyarakat di tingkat provinsi di seluruh Indonesia pada tahun 2024.

  • Analisis spasial dilakukan pada tingkat Provinsi secara keseluruhan.

  • Variabel dependen utama adalah beban penyakit menular kronis untuk malaria, DBD, filariasis, dan rabies.

  • Variabel independen (penjelas) dibatasi pada empat faktor utama: Persentase Rumah Tangga yang Memiliki Akses terhadap Sanitasi Layak, Kepadatan Penduduk per-km, Jumlah Desa yang Memiliki Rumah Sakit, dan Persentase Penduduk Miskin.

  • Model spasial menggunakan matriks bobot spasial Queen Contiguity

2 Tinjauan Pustaka

2.1 Spatial Dependence

Dalam statistik klasik, asumsi independensi observasi tidak berlaku, namun, dependensi spasial terjadi ketika nilai variabel di suatu provinsi dipengaruhi oleh variabel yang sama di provinsi tetangganya. Dalam kasus penyakit menular kronis seperti malaria, diare, filariasis, dan rabies, ketergantungan ini dapat disebabkan oleh penyebaran penyakit antar-wilayah (spatial lag) atau kesamaan faktor sosio-ekonomi dan lingkungan yang tidak teramati di daerah yang berdekatan. Pemodelan ini penting karena wilayah dengan beban penyakit tinggi cenderung membentuk kluster geografis, yang memerlukan pengujian autokorelasi spasial untuk mengetahui kekuatan dan karakteristik penyebarannya antar-provinsi.

2.2 Autokorelasi Spasial

Salah satu ukuran statistik yang dikenal sebagai autokorelasi spasial menunjukkan seberapa sistematis nilai suatu fenomena di suatu lokasi bergantung pada nilai fenomena yang sama di lokasi-lokasi sekitarnya. Kondisi ini dapat bersifat positif, yaitu daerah di sekitarnya cenderung memiliki nilai variabel yang sebanding (kluster nilai tinggi atau rendah), atau negatif, yaitu daerah di sekitarnya cenderung memiliki nilai variabel yang negatif. Untuk mempelajari pola ini, digunakan metrik global seperti Indeks Moran’s I untuk menguji keberadaan autokorelasi spasial umum di seluruh wilayah, dan metrik lokal seperti Local Indicators of Spatial Association (LISA), yang termasuk Local Moran’s I untuk menentukan lokasi kluster (misalnya, tinggi atau rendah) dan outlier spasial.

2.3 Model Spatial Econometrics

Model Ekonometrik Spasial digunakan untuk menganalisis data antar-wilayah (seperti provinsi) di mana nilai suatu provinsi dipengaruhi oleh provinsi tetangganya (disebut dependensi spasial).  Ada dua model utama yaitu model SAR untuk melihat apakah jumlah kasus penyakit di suatu provinsi dipengaruhi langsung oleh jumlah kasus penyakit yang sama di provinsi tetangganya (efek penyebaran). Sementara itu, model SEM untuk mencari apakah ada faktor tersembunyi (seperti kesamaan iklim atau budaya) yang belum kita masukkan dalam model, namun memiliki pola spasial dan memengaruhi provinsi tetangga secara bersamaan. Hasil yang dihasilkan oleh kedua model ini lebih akurat daripada regresi konvensional. Kedua model ini biasanya diestimasi dengan metode Maximum Likelihood (MLE).

3 Metodologi

3.1 Sumber Data

Data yang digunakan dalam penelitian ini berasal dari laporan resmi Kementerian Kesehatan Republik Indonesia, terutama Profil Kesehatan Indonesia selama periode tahun 2024. Data yang digunakan sebagai unit observasi dalam penelitian mencakup semua 38 provinsi di Indonesia. Variabel-variabel yang digunakan adalah sebagai berikut:

data <-read.csv("D:/SEMESTER 5/Spasial/DATA SPASIAL EPIDEM - VARIABEL DEPENDEN.csv")
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.3
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
data <- data %>%
  rename(
    Akses_Sanitasi = Persentase.Rumah.Tangga.Memiliki.Akses.terhadap.Sanitasi.Layak..Persen.,
    Kepadatan_Penduduk = Kepadatan.Penduduk.per.km.persegi..Km2.,
    Jumlah_Rumah_Sakit = Jumlah.Desa.yang.Memiliki.Rumah.Sakit,
    Penduduk_Miskin = Presentase.Penduduk.Miskin
  )
head(data)

Variabel Malaria, DBD, Filariasis, dan Rabies merupakan jumlah kasus yang terjadi di masing-masing provinsi. Variabel penyakit ini akan menjadi variabel dependen yang masing-masing penyakit ini akan dibuatkan model dan dilakukan mapping. Kemudian Presentase Rumah Tangga yang Memiliki Akses Sanitasi Layak, Kepadatan Penduduk, Jumlah Desa yang Memiliki Rumah Sakit, dan Presentase Penduduk Miskin akan menjadi variabel independen yang sekiranya akan dianalisis apakah mempengaruhi dan ada aspek autokorelasi spasial.

3.2 Unit Spasial

Unit spasial (spatial unit) yang digunakan dalam penelitian ini adalah 38 Provinsi di Indonesia. Setiap provinsi dilihat sebagai satuan geografis yang mewakili satu observasi dalam analisis spasial. Data kasus yang digunakan berasal dari Kementerian Kesehatan dan Badan Pusat Statistik (BPS) yang tersedia dan disagregasi pada tingkat administrasi.

3.3 Metode Analisis

Metode analisis yang dilakukan pada penelitian ini meliputi eksplorasi data secara spasial untuk melihat penyebaran data. Kemudian akan dilakukan perhitungan autokorelasi spasial menggunakan indeks seperti Morans I dan LISA. Selanjutnya, model-model spasial ekonometrik akan dibandingkan dan akan dipilih model terbaik paling cocok dan sesuai dengan data untuk memprediksi data.

3.4 Alur Kerja

Alur kerja yang akan dilakukan adalah :

  1. Persiapan data

  2. Uji pola spasial

  3. Pemodelan Ekonometrik

  4. Penentuan model terbaik

  5. Interpretasi

4 Hasil dan Pembahasan

4.1 Analisis Deskriptif

Untuk melihat pola dari data yang ada dilakukan analisis deskriptif dan pemetaan untuk masing-masing penyakit.

# ===============================
# 1. LOAD LIBRARIES
# ===============================
library(sf)
## Warning: package 'sf' was built under R version 4.3.3
## Linking to GEOS 3.11.2, GDAL 3.8.2, PROJ 9.3.1; sf_use_s2() is TRUE
library(dplyr)
library(spdep)
## Warning: package 'spdep' was built under R version 4.3.3
## Loading required package: spData
## Warning: package 'spData' was built under R version 4.3.3
## To access larger datasets in this package, install the spDataLarge
## package with: `install.packages('spDataLarge',
## repos='https://nowosad.github.io/drat/', type='source')`
library(ggplot2)
library(viridis)
## Warning: package 'viridis' was built under R version 4.3.3
## Loading required package: viridisLite
# ===============================
# 2. BACA DAN PERBAIKI DATA SPASIAL
# ===============================
batas_prov <- readRDS("D:/SEMESTER 5/Spasial/Batas_Provinsi_Indonesia.rds")
# batas_prov <- st_read("C:\\KAMPUS CHECK!\\SPASIAL\\Batas_Provinsi_Indonesia.shp")

batas_prov <- batas_prov %>%
  mutate(Provinsi = as.character(WADMPR)) %>%
  st_make_valid() %>%
  st_zm(drop = TRUE, what = "ZM") %>%
  st_buffer(0)

# ===============================
# 3. BACA DATA PENYAKIT
# ===============================
# Pastikan data memiliki kolom:
# Provinsi, Malaria, DBD, Filariasis, Rabies, Jumlah.Penduduk..Ribu.

data <- data %>%
  mutate(
    Jumlah_Penduduk = Jumlah.Penduduk..Ribu. * 1000,  # konversi ribu ke orang
    Malaria_prev = (Malaria / Jumlah_Penduduk) * 100000,
    DBD_prev = (DBD / Jumlah_Penduduk) * 100000,
    Filariasis_prev = (Filariasis / Jumlah_Penduduk) * 100000,
    Rabies_prev = (Rabies / Jumlah_Penduduk) * 100000
  )

# Gabungkan dengan shapefile
data_map <- batas_prov %>%
  left_join(data, by = "Provinsi")

# ===============================
# 4. BUAT WEIGHTS UNTUK ANALISIS SPASIAL (OPSIONAL)
# ===============================
nb <- poly2nb(data_map, queen = TRUE)
## Warning in poly2nb(data_map, queen = TRUE): some observations have no neighbours;
## if this seems unexpected, try increasing the snap argument.
## Warning in poly2nb(data_map, queen = TRUE): neighbour object has 9 sub-graphs;
## if this sub-graph count seems unexpected, try increasing the snap argument.
listw <- nb2listw(nb, style = "W", zero.policy = TRUE)
weights <- list(neighbors = nb, weights = listw)

# ===============================
# 5. LOOP PEMBUATAN PETA DENGAN GRADASI WARNA
# ===============================
diseases <- c("Malaria", "DBD", "Filariasis", "Rabies")

for (d in diseases) {
  prev_col <- paste0(d, "_prev")
  
  p <- ggplot(data_map) +
    geom_sf(aes(fill = .data[[prev_col]]), color = "white", size = 0.3) +
    scale_fill_viridis_c(
      option = "inferno",   # bisa diganti: "magma", "viridis", "inferno", "cividis"
      na.value = "grey90",
      direction = -1,
      name = paste("Prevalensi", d, "(per 100.000)")
    ) +
    labs(
      title = paste("Peta Prevalensi", d, "di Indonesia"),
      subtitle = "Gradasi warna menunjukkan intensitas kasus per 100.000 penduduk",
      caption = "Sumber data: Dinkes / BPS",
      fill = "Kasus / 100k"
    ) +
    theme_minimal() +
    theme(
      plot.title = element_text(size = 16, face = "bold", hjust = 0.5),
      plot.subtitle = element_text(size = 11, hjust = 0.5),
      legend.position = "right"
    )
  
  print(p)
  
  # Simpan hasil peta ke file PNG
  ggsave(
    filename = paste0("Peta_Gradasi_", d, ".png"),
    plot = p, width = 8, height = 5, dpi = 300
  )
}

4.2 Uji Autokorelasi Spasial

# Daftar penyakit yang diuji
diseases <- c("Malaria", "DBD", "Filariasis", "Rabies")

# Data frame hasil
autocorr_results <- data.frame(
  Penyakit = character(),
  Moran_I = numeric(),
  Moran_p = numeric(),
  Geary_C = numeric(),
  Geary_p = numeric(),
  stringsAsFactors = FALSE
)

# Loop tiap penyakit
for (d in diseases) {
  prev_col <- paste0(d, "_prev")
  values <- data_map[[prev_col]]
  
  # Hilangkan NA
  valid_idx <- !is.na(values)
  values <- values[valid_idx]
  
  if (length(values) > 3) {
    # Moran's I
    moran_res <- moran.test(values, listw, zero.policy = TRUE)
    
    # Geary's C
    geary_res <- geary.test(values, listw, zero.policy = TRUE)
    
    autocorr_results <- rbind(
      autocorr_results,
      data.frame(
        Penyakit = d,
        Moran_I = round(moran_res$estimate[1], 4),
        Moran_p = round(moran_res$p.value, 4),
        Geary_C = round(geary_res$estimate[1], 4),
        Geary_p = round(geary_res$p.value, 4)
      )
    )
  }
}

# ===============================
# 5. TAMPILKAN HASIL
# ===============================
print(autocorr_results)
##                      Penyakit Moran_I Moran_p Geary_C Geary_p
## Moran I statistic     Malaria  0.4240  0.0001  0.5748  0.0356
## Moran I statistic1        DBD  0.0376  0.3377  1.0231  0.5537
## Moran I statistic2 Filariasis  0.2695  0.0001  0.5759  0.0572
## Moran I statistic3     Rabies  0.0488  0.1925  0.1456  0.0005

Dari hasil pengujian autokorelasi spasial didapatkan bahwa yang memang memiliki autokorelasi spasial adalah penyakit Malaria, DBD, dan Filariasis. Namun untuk penyakit rabies tidak ada autokorelasi spasial. Hal ini menunjukkan bahwa penyakit DBD, Malaria, dan Filariasis dapat menyebar melalui wilayah sedangkan Rabies tidak memiliki klaster wilayah kasusnya.

calculate_morans_i <- function(data, disease_var, weights) {
  prevalence_var <- paste0(disease_var, "_prev")
  prevalence_values <- st_drop_geometry(data)[[prevalence_var]]
  valid_idx <- !is.na(prevalence_values)
  prevalence_values <- prevalence_values[valid_idx]

  if (length(prevalence_values) < 3) {
    return(data.frame(Statistic = NA, P_value = NA, Expected = NA, Variance = NA))
  }

  nb <- weights$neighbors
  nb_subset <- subset(nb, valid_idx)
  weights_subset <- nb2listw(nb_subset, style = "W", zero.policy = TRUE)

  morans <- moran.test(prevalence_values, weights_subset, zero.policy = TRUE)

  return(data.frame(
    Disease = disease_var,
    Statistic = morans$statistic,
    P_value = morans$p.value,
    Expected = morans$estimate[2],
    Variance = morans$estimate[3]
  ))
}

calculate_lisa <- function(data, disease_var, weights) {
  data_df <- st_drop_geometry(data)
  prevalence_var <- paste0(disease_var, "_prev")
  prevalence <- data_df[[prevalence_var]]

  valid_idx <- !is.na(prevalence)
  prevalence_valid <- prevalence[valid_idx]

  if (length(prevalence_valid) < 3) return(data[valid_idx, ])

  nb <- weights$neighbors
  nb_subset <- subset(nb, valid_idx)
  weights_subset <- nb2listw(nb_subset, style = "W", zero.policy = TRUE)

  lisa <- localmoran(prevalence_valid, weights_subset, zero.policy = TRUE)

  data_subset <- data[valid_idx, ]
  data_subset$Prevalence <- prevalence_valid
  data_subset$Ii <- lisa[, 1]
  data_subset$p_value <- lisa[, 5]
  data_subset$Prevalence_std <- scale(prevalence_valid)[, 1]
  data_subset$Lag_std <- scale(lag.listw(weights_subset, prevalence_valid))[, 1]

  # Klasifikasi cluster
  data_subset$Cluster <- "Not Significant"
  sig_mask <- data_subset$p_value < 0.05
  data_subset$Cluster[sig_mask & data_subset$Prevalence_std > 0 & data_subset$Lag_std > 0] <- "HH (Hotspot)"
  data_subset$Cluster[sig_mask & data_subset$Prevalence_std < 0 & data_subset$Lag_std < 0] <- "LL (Coldspot)"
  data_subset$Cluster[sig_mask & data_subset$Prevalence_std > 0 & data_subset$Lag_std < 0] <- "HL (Outlier)"
  data_subset$Cluster[sig_mask & data_subset$Prevalence_std < 0 & data_subset$Lag_std > 0] <- "LH (Outlier)"

  data_subset$Disease <- disease_var
  return(data_subset)
}

# ===============================================================
# 7️⃣ JALANKAN UNTUK SEMUA PENYAKIT
# ===============================================================
diseases <- c("Malaria", "DBD", "Filariasis", "Rabies")

# --- Global Moran’s I
morans_results <- lapply(diseases, function(d) calculate_morans_i(data_map, d, weights))
morans_df <- do.call(rbind, morans_results)
print(morans_df)
##                                        Disease Statistic      P_value
## Moran I statistic standard deviate     Malaria 3.8851713 5.112888e-05
## Moran I statistic standard deviate1        DBD 0.4188743 3.376540e-01
## Moran I statistic standard deviate2 Filariasis 3.8389479 6.178133e-05
## Moran I statistic standard deviate3     Rabies 0.8685617 1.925434e-01
##                                        Expected    Variance
## Moran I statistic standard deviate  -0.02941176 0.013620467
## Moran I statistic standard deviate1 -0.02941176 0.025593176
## Moran I statistic standard deviate2 -0.02941176 0.006062039
## Moran I statistic standard deviate3 -0.02941176 0.008101394
# --- Local Moran’s I (LISA)
lisa_results <- lapply(diseases, function(d) calculate_lisa(data_map, d, weights))
names(lisa_results) <- diseases

# ===============================================================
# 8️⃣ VISUALISASI PETA LISA
# ===============================================================
for (d in diseases) {
  lisa_data <- lisa_results[[d]]
  if (is.null(lisa_data)) next

  p <- ggplot(lisa_data) +
    geom_sf(aes(fill = Cluster), color = "white", size = 0.3) +
    scale_fill_manual(
      values = c(
        "HH (Hotspot)" = "#E31A1C",
        "LL (Coldspot)" = "#1F78B4",
        "HL (Outlier)" = "#FEB24C",
        "LH (Outlier)" = "#A1D99B",
        "Not Significant" = "grey90"
      )
    ) +
    labs(
      title = paste("Peta LISA (Local Moran’s I):", d),
      subtitle = "Hotspot dan Coldspot berdasarkan prevalensi penyakit",
      fill = "Cluster"
    ) +
    theme_minimal()

  print(p)
}

Dari LISA Maps menunjukkan pada penyakit Malaria terdapat hotspot pada Pulau Papua, untuk penyakit DBD terdapat outlier pada sekitar pulau Kalimantan, dan untuk penyakit Filariasis menunjukkan adanya hotspot juga di Pulau Papua.

4.3 Estimasi Model

library(spatialreg)
## Warning: package 'spatialreg' was built under R version 4.3.3
## Loading required package: Matrix
## 
## Attaching package: 'spatialreg'
## The following objects are masked from 'package:spdep':
## 
##     get.ClusterOption, get.coresOption, get.mcOption,
##     get.VerboseOption, get.ZeroPolicyOption, set.ClusterOption,
##     set.coresOption, set.mcOption, set.VerboseOption,
##     set.ZeroPolicyOption
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.3.3
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.3.3
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
fit_spatial_models <- function(data, disease_var, x_vars, weights) {
  data_clean <- st_drop_geometry(data)
  prevalence_var <- paste0(disease_var, "_prev")
  valid_idx <- !is.na(data_clean[[prevalence_var]]) & rowSums(is.na(data_clean[, x_vars])) == 0
  data_valid <- data_clean[valid_idx, ]
  
  if (nrow(data_valid) < 5) return(NULL)
  
  formula_str <- paste(prevalence_var, "~", paste(x_vars, collapse = " + "))
  formula_obj <- as.formula(formula_str)
  
  models <- list()
  
  # Model dasar dan spasial
  models$ols <- lm(formula_obj, data = data_valid)
  models$lag <- lagsarlm(formula_obj, data = data_valid, listw = weights$weights, zero.policy = TRUE)
  models$error <- errorsarlm(formula_obj, data = data_valid, listw = weights$weights, zero.policy = TRUE)
  models$durbin <- lagsarlm(formula_obj, data = data_valid, listw = weights$weights, type = "mixed", zero.policy = TRUE)
  
  # Bandingkan berdasarkan AIC
  df <- data.frame(
    Penyakit = disease_var,
    Model = c("OLS", "Spatial Lag (SAR)", "Spatial Error (SEM)", "Spatial Durbin (SDM)"),
    AIC = c(AIC(models$ols), AIC(models$lag), AIC(models$error), AIC(models$durbin)),
    BIC = c(BIC(models$ols), BIC(models$lag), BIC(models$error), BIC(models$durbin))
  )
  
  return(df)
}

diseases <- c("Malaria", "DBD", "Filariasis", "Rabies")

# Variabel Independen
x_vars <- c("Akses_Sanitasi", "Kepadatan_Penduduk", "Jumlah_Rumah_Sakit", "Penduduk_Miskin")

results <- lapply(diseases, function(d) fit_spatial_models(data_map, d, x_vars, weights))
## Warning in lagsarlm(formula_obj, data = data_valid, listw = weights$weights, : inversion of asymptotic covariance matrix failed for tol.solve = 2.22044604925031e-16 
##   reciprocal condition number = 1.61738e-16 - using numerical Hessian.
## Warning in errorsarlm(formula_obj, data = data_valid, listw = weights$weights, : inversion of asymptotic covariance matrix failed for tol.solve = 2.22044604925031e-16 
##   reciprocal condition number = 1.96018e-16 - using numerical Hessian.
## Warning in lagsarlm(formula_obj, data = data_valid, listw = weights$weights, : inversion of asymptotic covariance matrix failed for tol.solve = 2.22044604925031e-16 
##   reciprocal condition number = 1.88266e-16 - using numerical Hessian.
model_compare <- do.call(rbind, results)

print(model_compare)
##      Penyakit                Model      AIC      BIC
## 1     Malaria                  OLS 793.2026 803.0281
## 2     Malaria    Spatial Lag (SAR) 792.0896 803.5527
## 3     Malaria  Spatial Error (SEM) 793.4620 804.9251
## 4     Malaria Spatial Durbin (SDM) 796.0660 814.0794
## 5         DBD                  OLS 421.9835 431.8091
## 6         DBD    Spatial Lag (SAR) 423.9029 435.3660
## 7         DBD  Spatial Error (SEM) 423.6017 435.0649
## 8         DBD Spatial Durbin (SDM) 425.4054 443.4188
## 9  Filariasis                  OLS 366.3758 376.2013
## 10 Filariasis    Spatial Lag (SAR) 367.7756 379.2387
## 11 Filariasis  Spatial Error (SEM) 368.2551 379.7182
## 12 Filariasis Spatial Durbin (SDM) 371.6518 389.6652
## 13     Rabies                  OLS 527.6803 537.5058
## 14     Rabies    Spatial Lag (SAR) 529.5495 541.0126
## 15     Rabies  Spatial Error (SEM) 529.6759 541.1390
## 16     Rabies Spatial Durbin (SDM) 527.8317 545.8451

Dari hasil pemodelan spasial ekonometrik, untuk penyakit Malaria model yang memiliki AIC paling kecil adalah model SAR (Spatial Autoregressice Model), penyakit DBD model terbaiknya adalah OLS (Ordinary Least Square) tetapi karena ada autokorelasi spasial maka model yang cocok adalah SEM (Spatial Error Model), penyakit Filariasis model terbaik adalah OLS tetapi karena adanya autokorelasi spasial sehingga model yang cocok adalah SAR, dan penyakit Rabies model terbaiknya adalah OLS.

Model SEM cocok digunakan untuk DBD karena model SEM memungkinkan penyebaran kasus antar wilayah dipengaruhi oleh faktor eksternal lainnya. Sedangkan model SAR untuk malaria dan filariasis lebih erat kaitannya dengan penyebaran karena lingkungan dan vektor nya.

5 Kesimpulan dan Saran

5.1 Kesimpulan

Berdasarkan hasil uji autokorelasi spasial menggunakan Moran’s I dan Geary C didapatkan bahwa tiga penyakit (Malaria, DBD, dan Filariasis) memiliki autokorelasi spasial yang memiliki pola persebaran yang mengelompok antarwilayah, sedangkan penyakit Rabies tidak menunjukkan adanya autokorelasi spasial. Temuan ini mengindikasikan bahwa kasus penyakit Malaria, DBD, dan Filariasis pada suatu wilayah dipengaruhi oleh kondisi wilayah-wilayah sekitarnya.

Pembentukan model ekonometrik spasial dilakukan untuk menjelaskan variasi prevalensi penyakit. Untuk penyakit DBD model terbaik adalah SEM dan untuk penyakit malaria dan filariasis model terbaiknya adalah SAR

5.2 Saran

  • Implementasi Kebijakan Kesehatan Berbasis Klaster Spasial
    Pemerintah dan dinas kesehatan perlu melakukan intervensi lintas-wilayah terutama pada provinsi yang teridentifikasi sebagai hotspot. Penanganan penyakit yang memiliki efek spasial langsung, seperti Malaria dan Filariasis, sebaiknya dilakukan dengan intervensi serentak antarwilayah yang saling berdekatan.
  • Fokus pada Peningkatan Sanitasi dan Pengentasan Kemiskinan
    Karena sanitasi dan kemiskinan terbukti sebagai determinan paling signifikan, program peningkatan sanitasi lingkungan, pemenuhan air bersih, serta program pemberdayaan ekonomi perlu diprioritaskan untuk menurunkan risiko penyakit menular kronis secara berkelanjutan.
  • Optimalisasi Program Pencegahan DBD Berbasis Perubahan Perilaku
    Mengingat faktor spasial pada DBD lebih banyak dipengaruhi oleh unsur tidak teramati, seperti perilaku masyarakat dan kebersihan lingkungan, maka edukasi dan pemberdayaan masyarakat melalui kampanye PSN, 3M Plus, dan gerakan kesehatan berbasis komunitas perlu ditingkatkan.
  • Penguatan Sistem Informasi dan Monitoring Spasial Penyakit
    Pemerintah disarankan mengembangkan sistem pemantauan (surveillance) berbasis GIS dan dashboard spasial yang terintegrasi untuk memantau pergerakan penyakit secara real time dan memetakan wilayah prioritas intervensi secara cepat dan akurat.
  • Penelitian Lanjutan dengan Pendekatan Spatio-Temporal
    Untuk mendapatkan pemahaman lebih mendalam, penelitian selanjutnya dapat menggunakan model Panel Data Spasial agar dapat menangkap dinamika spasial dan temporal secara bersamaan, serta menambahkan variabel lain seperti iklim, mobilitas penduduk, dan kualitas layanan kesehatan.