1 [CHAPTER OF SPATIAL AUTOCORRELATION]

Spatial Autocorrelation atau Autokorelasi Spasial adalah suatu ukuran kemiripan nilai suatu variabel pada lokasi-lokasi yang saling berdekatan di ruang geografis. Konsep ini menunjukkan bahwa lokasi-lokasi yang berdekatan cenderung memiliki nilai variabel yang lebih mirip, seperti suhu udara yang mirip di area kota yang berdekatan. Pengukuran autokorelasi spasial umumnya menggunakan metode analisis seperti Indeks Moran untuk mengidentifikasi pola apakah nilai-nilai yang berdekatan itu serupa (autokorelasi positif), berlawanan (autokorelasi negatif), atau acak.

2 A. Konsep Teori

2.1 Definisi Autokorelasi Spasial

Elsevier (Spatial Autocorrelation, Hugyens Brochure) menyatakan :

Positive Spatial Autocorrelation: high values tend to be geographic neighbors of high values and low values tend to be geographic neighbors of low values. Negative Spatial Autocorrelation: high values tend to be geographic neighbors of low values.
(Elsevier, Spatial Autocorrelation, hlm. 2)

  • Autokorelasi Spasial Positif : Nilai tinggi cenderung bersebelahan dengan nilai tinggi, dan nilai rendah bersebelahan dengan nilai rendah → terbentuk kelompok. (High–High, Low-Low)

    Lengkapnya, Autokorelasi spasial positif adalah pola di mana kotak-kotak yang berdampingan cenderung memiliki nilai yang sama atau sangat dekat. Misalnya, jika satu kotak punya angka penyakit yang tinggi, maka kotak di sekitarnya pun seringkali tinggi juga. Atau kalau satu kotak rendah, tetangganya juga cenderung rendah. Jadi ada “kelompok” nilai tinggi bersama, dan kelompok nilai rendah bersama. Intinya “yang tinggi bercampur dengan yang tinggi”, “yang rendah bercampur dengan yang rendah” dan hal ini terjadi secara spasial (di tempat yang berdekatan).

  • Autokorelasi Spasial Negatif : Nilai tinggi justru bersebelahan dengan nilai rendah → pola bergantian. (High–Low, Low–High).

    Lengkapnya, Autokorelasi spasial negatif adalah sebaliknya yaitu kotak-kotak yang berdampingan cenderung berbeda nilainya. Jadi jika satu kotak memiliki nilai tinggi, tetangganya malah rendah, atau sebaliknya. Ini akan membentuk pola seperti papan catur : tinggi–rendah–tinggi–rendah bergantian. Intinya “yang tinggi dekat dengan yang rendah” lebih dominan daripada “yang tinggi dekat tinggi”.

2.2 Contoh Sederhana Fenomena Masing-Masing Pola

  • Autokorelasi Spasial Positif

    1. Penyakit menular (epidemiologi)

      Studi wabah COVID-19 di Wuhan, China menunjukkan klaster spasial signifikan, area dengan jumlah kasus tinggi cenderung dikelilingi area lain yang juga tinggi.

      Kutipan (Wang et al., Spatial Statistics, 2020, Scopus-indexed) :

      “High–high clusters of confirmed COVID-19 cases were found in Wuhan and surrounding cities, indicating positive spatial autocorrelation of the epidemic.”

      Artinya, kasus tinggi tidak muncul acak, tapi membentuk kumpulan spasial.

    2. Harga properti (ekonomi perkotaan)

      Di banyak kota besar (misalnya New York atau Jakarta), daerah dengan harga rumah tinggi biasanya berdekatan dengan daerah lain yang juga tinggi (kawasan elite). Sebaliknya, kawasan dengan harga rendah (permukiman kumuh) sering bersebelahan dengan kawasan serupa. Ini contoh jelas autokorelasi positif karena nilai mirip mengelompok di ruang.

  • Autokorelasi Spasial Negatif

    1. Penggunaan lahan perkotaan (urban land use)

      Di beberapa kota Eropa, zona industri sering berdampingan dengan zona residensial. Nilai polusi tinggi di area industri bersebelahan dengan nilai polusi rendah di area permukiman hijau. Ini membentuk pola “checkerboard”: tinggi (polusi) dekat dengan rendah (permukiman).

    2. Biodiversitas (ekologi)

      Studi ekologi menunjukkan kompetisi spesies tumbuhan di hutan tropis → spesies dominan tinggi kepadatannya sering berdekatan dengan area di mana kepadatan spesies pesaing justru rendah.

      Kutipan (Condit et al., Science, 2000) :

      “Negative spatial autocorrelation was observed in some species pairs, suggesting spatial segregation due to interspecific competition.”

      Artinya, spesies tertentu cenderung menghindari menempati lokasi yang sama → nilai tinggi satu spesies berdekatan dengan nilai rendah spesies lain.

2.3 Rumus Matematis dan Keterangan

2.3.1 Moran’s I (Global)

\[ I = \frac{N}{S_0} \cdot \frac{\sum_i \sum_j w_{ij}(x_i - \bar{x})(x_j - \bar{x})}{\sum_i (x_i - \bar{x})^2} \]

Keterangan :

- \(N\) : jumlah unit spasial (misalnya jumlah kecamatan).
- \(x_i\) : nilai variabel pada lokasi \(i\).
- \(\bar{x}\) : rata-rata seluruh nilai.
- \(w_{ij}\) : elemen matriks bobot spasial (\(=1\) jika i dan j bertetangga, 0 jika tidak).
- \(S_0 = \sum_i \sum_j w_{ij}\) : jumlah total bobot spasial.


2.3.2 Geary’s C (Global)

\[ C = \frac{(N-1)\sum_i \sum_j w_{ij}(x_i - x_j)^2}{2S_0 \sum_i (x_i - \bar{x})^2} \]

Keterangan :

- \(N, w_{ij}, S_0, x_i, \bar{x}\) : sama seperti pada Moran’s I.
- \((x_i - x_j)^2\) : kuadrat perbedaan nilai antar tetangga.

Interpretasi :
- \(C < 1\) : autokorelasi positif.
- \(C > 1\) : autokorelasi negatif.
- \(C \approx 1\) : pola acak.


2.3.3 Local Moran’s I (LISA)

\[ I_i = \frac{(x_i - \bar{x})}{m_2} \sum_j w_{ij}(x_j - \bar{x}), \quad m_2 = \frac{1}{N}\sum_k (x_k - \bar{x})^2 \]

Keterangan :

- \(I_i\) : nilai autokorelasi lokal di unit \(i\).
- \(m_2\) : variansi rata-rata data.

Interpretasi :
- \(I_i > 0\) signifikan → unit \(i\) mirip dengan tetangganya (High–High atau Low–Low).
- \(I_i < 0\) signifikan → unit \(i\) berbeda dari tetangganya (High–Low atau Low–High).


2.3.4 Getis–Ord \(G_i\) dan \(G_i^*\)

\[ G_i = \frac{\sum_{j=1}^{n} w_{ij}(d) x_j}{\sum_{j=1}^{n} x_j} \]

\[ G_i^* = \frac{\sum_{j=1}^{n} w_{ij}(d) x_j}{\sum_{j=1}^{n} x_j}, \quad \text{dengan } w_{ii} \neq 0 \]

Perbedaan utama adalah apakah lokasi \(i\) sendiri dimasukkan dalam perhitungan :
- Pada \(G_i\), \(w_{ii} = 0\), sehingga hanya tetangga yang diperhitungkan.
- Pada \(G_i^*\), \(w_{ii} \neq 0\), sehingga nilai di lokasi \(i\) ikut dihitung bersama tetangganya.

Nilai \(G_i\) atau \(G_i^*\) kemudian dinormalisasi menjadi z-score untuk menentukan signifikansi hotspot (nilai tinggi terkonsentrasi) atau coldspot (nilai rendah terkonsentrasi).

Keterangan :

- \(x_j\) : nilai variabel pada lokasi \(j\).
- \(w_{ij}(d)\) : bobot spasial berbasis jarak \(d\) (misal, tetangga dalam radius tertentu).
- \(G_i^*\) : perbandingan konsentrasi nilai di sekitar \(i\) terhadap total keseluruhan.

Interpretasi :
- Z-score \(G_i^*\) signifikan positif → hotspot (nilai tinggi berkumpul).
- Z-score \(G_i^*\) signifikan negatif → coldspot (nilai rendah berkumpul).


2.3.5 Ringkasan Perbandingan

Ukuran Rumus Ringkas Fokus utama Interpretasi kunci
Moran’s I Kovarians global berbobot Hubungan keseluruhan Positif: cluster serupa, Negatif: checkerboard
Geary’s C Kuadrat perbedaan antar tetangga Kontras lokal C < 1 positif, C > 1 negatif
Local Moran’s I Kovarians per unit Identifikasi cluster/outlier lokal HH, LL, HL, LH
Getis–Ord \(G_i^*\) Rasio konsentrasi lokal Hotspot & coldspot Z > 0 hotspot, Z < 0 coldspot

2.4 Perbedaan Utama Ukuran Global dan Lokal

  • Ukuran Global
    Ukuran global dalam autokorelasi spasial, seperti Moran’s I dan Geary’s C, memberikan satu nilai ringkasan yang mewakili kecenderungan spasial pada keseluruhan wilayah. Indeks ini menjawab pertanyaan umum apakah data cenderung terdistribusi secara clustered, acak, atau berpola menyebar (dispersed). Misalnya, nilai Moran’s I yang positif signifikan menunjukkan bahwa unit dengan nilai serupa (tinggi dengan tinggi, rendah dengan rendah) cenderung berdekatan, sedangkan nilai negatif mengindikasikan pola papan catur (Cliff & Ord, 1981). Kelebihan ukuran global adalah kesederhanaannya dalam mendeteksi tren umum, namun kelemahannya adalah ketidakmampuannya untuk mengidentifikasi lokasi spesifik di mana klaster atau outlier terjadi. Dengan kata lain, ukuran global hanya menangkap pola rata-rata, sehingga bisa menutupi heterogenitas antarwilayah (Anselin, 1995).

  • Ukuran Lokal
    Sebaliknya, ukuran lokal seperti Local Moran’s I (LISA) dan Getis–Ord \(G_i^*\) menghitung autokorelasi pada tingkat unit individu, sehingga dapat mengungkapkan lokasi spesifik di mana terdapat klaster (High–High, Low–Low) atau outlier (High–Low, Low–High). Analisis ini memungkinkan identifikasi pola spasial heterogen yang tidak terlihat dengan ukuran global, misalnya mendeteksi hotspot atau coldspot penyakit dalam suatu kota. Kelebihan pendekatan lokal adalah kemampuannya memberikan detail spasial, yang sangat penting untuk kebijakan berbasis wilayah. Sebagai contoh, Raza et al. (2020) menemukan bahwa meskipun prevalensi diare di Mozambik secara global terklaster, hanya provinsi tertentu seperti Tete dan Zambezia yang teridentifikasi sebagai klaster High–High melalui analisis lokal. Hal ini menunjukkan bahwa ukuran lokal melengkapi ukuran global dengan menyoroti di mana pola signifikan terjadi di ruang.


3 B. Analisis Data

library(sf)
## Warning: package 'sf' was built under R version 4.5.1
## Linking to GEOS 3.13.1, GDAL 3.11.0, PROJ 9.6.0; sf_use_s2() is TRUE
library(spdep)
## Warning: package 'spdep' was built under R version 4.5.1
## Loading required package: spData
## Warning: package 'spData' was built under R version 4.5.1
## To access larger datasets in this package, install the spDataLarge
## package with: `install.packages('spDataLarge',
## repos='https://nowosad.github.io/drat/', type='source')`
library(tmap)
## Warning: package 'tmap' was built under R version 4.5.1
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.5.1
## 
## 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
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.5.1
library(viridis)
## Warning: package 'viridis' was built under R version 4.5.1
## Loading required package: viridisLite
## Warning: package 'viridisLite' was built under R version 4.5.1

3.1 Data Spasial Kecamatan di Kota Bandung

Sumber data DBD per kecamatan :

Nuhgroho, Jesa & Eryando, Tris & Makful, Martya & Yudhistira, Deny. (2023). PEMETAAN DAERAH RAWAN PENYAKIT DEMAM BERDARAH DENGUE (DBD) DI KOTA BANDUNG MENGGUNAKAN APLIKASI QGIS. Jurnal Indonesia : Manajemen Informatika dan Komunikasi. 4. 729-741. 10.35870/jimik.v4i2.272.

# Data jumlah kasus DBD per kecamatan (sumber: Profil Kesehatan Kota Bandung 2021)
dbd_data <- data.frame(
  Kecamatan = c("Andir","Antapani","Arcamanik","Astana Anyar","Babakan Ciparay",
                "Bandung Kidul","Bandung Kulon","Bandung Wetan","Batununggal","Bojongloa Kaler",
                "Bojongloa Kidul","Buahbatu","Cibeunying Kaler","Cibeunying Kidul","Cibiru",
                "Cicendo","Cidadap","Cinambo","Coblong","Gedebage","Kiaracondong","Lengkong",
                "Mandalajati","Panyileukan","Rancasari","Regol","Sukajadi","Sukasari",
                "Sumur Bandung","Ujung Berung"),
  JumlahKasus = c(123,239,131,75,131,
                  110,113,46,119,164,
                  114,185,121,140,94,
                  114,74,35,173,85,
                  202,134,109,58,187,
                  99,215,134,54,165)
)

head(dbd_data)
##         Kecamatan JumlahKasus
## 1           Andir         123
## 2        Antapani         239
## 3       Arcamanik         131
## 4    Astana Anyar          75
## 5 Babakan Ciparay         131
## 6   Bandung Kidul         110

3.2 Data Kasus Penyakit Menular (DBD)

Sumber data geografis : shp-jawa-barat-level-kecamatan

# Path shapefile
shp_path <- "C:/Users/user/Downloads/Spatial_Nisa/Tugas1_DBD/JAWABARAT_ADM_KEC.shp"

# Baca shapefile
jabar_kec <- st_read(shp_path)
## Reading layer `JAWABARAT_ADM_KEC' from data source 
##   `C:\Users\user\Downloads\Spatial_Nisa\Tugas1_DBD\JAWABARAT_ADM_KEC.shp' 
##   using driver `ESRI Shapefile'
## Simple feature collection with 627 features and 6 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: 106.3703 ymin: -7.82099 xmax: 108.8471 ymax: -5.806538
## Geodetic CRS:  WGS 84
# Cek nama kecamatan
unique(jabar_kec$WADMKK)
##  [1] "Cianjur"          "Kota Bandung"     "Indramayu"        "Majalengka"      
##  [5] "Bandung"          "Cirebon"          "Bogor"            "Purwakarta"      
##  [9] "Bekasi"           "Garut"            "Kota Banjar"      "Ciamis"          
## [13] "Sukabumi"         "Kota Bekasi"      "Tasikmalaya"      "Karawang"        
## [17] "Kota Sukabumi"    "Bandung Barat"    "Kota Depok"       "Subang"          
## [21] "Kota Bogor"       "Sumedang"         "Kota Tasikmalaya" "Kuningan"        
## [25] "Pangandaran"      "Kota Cimahi"      "Kota Cirebon"
# Filter hanya data Kota Bandung
bandung_kec <- jabar_kec %>%
  mutate(WADMKK = trimws(WADMKK)) %>%
  filter(WADMKK == "Kota Bandung")

# Join shapefile dengan data kasus (kecocokan nama : WADMKC vs Kecamatan)
library(stringr)
## Warning: package 'stringr' was built under R version 4.5.1
# Samakan kapitalisasi + perbaiki penamaan
bandung_data <- bandung_kec %>%
  mutate(
    WADMKC = str_to_title(WADMKC),
    WADMKC = ifelse(WADMKC == "Ujungberung", "Ujung Berung", WADMKC)
  ) %>%
  left_join(
    dbd_data %>%
      mutate(Kecamatan = str_to_title(Kecamatan)),
    by = c("WADMKC" = "Kecamatan")
  )

head(bandung_data)
## Simple feature collection with 6 features and 7 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: 107.5597 ymin: -6.965704 xmax: 107.6913 ymax: -6.890994
## Geodetic CRS:  WGS 84
##   OBJECTID          WADMKC       WADMKK     WADMPR SHAPE_Leng   SHAPE_Area
## 1        2           Andir Kota Bandung Jawa Barat 0.12725056 0.0003467384
## 2        4        Antapani Kota Bandung Jawa Barat 0.09587712 0.0003452283
## 3        6       Arcamanik Kota Bandung Jawa Barat 0.12073520 0.0006001662
## 4       10    Astana Anyar Kota Bandung Jawa Barat 0.10506945 0.0002160417
## 5       13 Babakan Ciparay Kota Bandung Jawa Barat 0.12740210 0.0005753570
## 6       20   Bandung Kidul Kota Bandung Jawa Barat 0.12181502 0.0004082145
##   JumlahKasus                       geometry
## 1         123 MULTIPOLYGON (((107.5638 -6...
## 2         239 MULTIPOLYGON (((107.6624 -6...
## 3         131 MULTIPOLYGON (((107.6695 -6...
## 4          75 MULTIPOLYGON (((107.5939 -6...
## 5         131 MULTIPOLYGON (((107.5864 -6...
## 6         110 MULTIPOLYGON (((107.6398 -6...
sum(is.na(bandung_data$Kasus))   # Cek apakah sudah = 0
## [1] 0
unique(bandung_data$WADMKC)      # Cek nama kecamatan
##  [1] "Andir"            "Antapani"         "Arcamanik"        "Astana Anyar"    
##  [5] "Babakan Ciparay"  "Bandung Kidul"    "Bandung Kulon"    "Bandung Wetan"   
##  [9] "Batununggal"      "Bojongloa Kaler"  "Bojongloa Kidul"  "Buahbatu"        
## [13] "Cibeunying Kaler" "Cibeunying Kidul" "Cibiru"           "Cicendo"         
## [17] "Cidadap"          "Cinambo"          "Coblong"          "Gedebage"        
## [21] "Kiaracondong"     "Lengkong"         "Mandalajati"      "Panyileukan"     
## [25] "Rancasari"        "Regol"            "Sukajadi"         "Sukasari"        
## [29] "Sumur Bandung"    "Ujung Berung"

3.3 Peta Choropleth

ggplot(bandung_data) +
  geom_sf(aes(fill = JumlahKasus), color = "white") +
  scale_fill_viridis_c(option = "plasma") +
  theme_minimal() +
  labs(title = "Peta Kasus DBD Kota Bandung (2021)", fill = "Jumlah Kasus")

Interpretasi Visual

Peta choropleth kasus DBD Kota Bandung tahun 2021 menunjukkan adanya variasi spasial jumlah kasus antar kecamatan. Kecamatan dengan intensitas kasus tinggi ditampilkan dalam warna kuning hingga oranye terang, sedangkan kecamatan dengan kasus lebih rendah terlihat dalam gradasi ungu gelap. Dari visualisasi ini, terlihat bahwa kasus DBD tidak merata, melainkan terkonsentrasi di beberapa kecamatan tertentu, misalnya di bagian timur dan sebagian wilayah tengah kota yang tampak memiliki jumlah kasus lebih tinggi dibandingkan daerah lainnya. Hal ini mengindikasikan potensi adanya cluster atau pengelompokan spasial, yang perlu dianalisis lebih lanjut menggunakan ukuran autokorelasi spasial seperti Moran’s I dan LISA untuk memastikan apakah pola tersebut signifikan secara statistik (Jaya, 2020; Anselin, 1995).

3.4 Pola Spasial yang Terlihat Secara Visual

plot(bandung_data["JumlahKasus"],
     main = "Peta Kasus DBD Kota Bandung (2021)",
     pal = viridis::viridis)

library(tmap)
tmap_mode("view") # statis "plot" atau interaktif "view"
## ℹ tmap modes "plot" - "view"
## ℹ toggle with `tmap::ttm()`
tm_shape(bandung_data) +
  tm_polygons(
    col = "JumlahKasus",
    fill.scale = tm_scale(values = "Reds"),
    border.col = "gray40"
  ) +
  tm_title("Peta Kasus DBD Kota Bandung (2021)")
## 
## ── tmap v3 code detected ───────────────────────────────────────────────────────
## [v3->v4] `tm_polygons()`: use 'fill' for the fill color of polygons/symbols
## (instead of 'col'), and 'col' for the outlines (instead of 'border.col').

INTERPRETASI VISUAL

Peta menunjukkan distribusi kasus DBD di tingkat kecamatan di Kota Bandung. Terlihat adanya variasi intensitas kasus antar wilayah, dengan beberapa kecamatan memiliki jumlah kasus sangat tinggi (di atas 200 kasus, misalnya Kiaracondong, Sukajadi, dan Ujung Berung) yang ditunjukkan dengan warna lebih terang/kuning hingga merah. Sebaliknya, kecamatan seperti Cinambo dan Cidadap cenderung memiliki kasus rendah (di bawah 50–75 kasus) dengan warna gelap. Pola ini mengindikasikan bahwa penyebaran DBD tidak merata, melainkan terkonsentrasi pada kecamatan tertentu.

Visualisasi ini memberikan gambaran awal bahwa terdapat indikasi pola spasial (clustering), di mana kecamatan dengan jumlah kasus tinggi cenderung berdekatan. Hal ini selaras dengan teori dalam analisis spasial yang menyatakan bahwa distribusi penyakit menular sering kali dipengaruhi oleh faktor lingkungan, kepadatan penduduk, sanitasi, dan mobilitas masyarakat (Anselin, 1995; Lawson, 2013). Namun, peta ini juga masih bersifat deskriptif, sehingga perlu dilanjutkan dengan uji statistik autokorelasi spasial (Moran’s I, Geary’s C, LISA, dan Getis–Ord \(G_i^*\)) untuk memastikan apakah pola tersebut signifikan secara spasial.

4 C. Pengukuran Autokorelasi

library(spdep)

# Buat neighbors dan spatial weights
# nb: daftar tetangga, lw: bobot spasial
nb <- poly2nb(bandung_data, queen = TRUE)
lw <- nb2listw(nb, style = "W", zero.policy = TRUE)

4.1 Moran’s I (Global)

moran_res <- moran.test(bandung_data$JumlahKasus, lw, randomisation = TRUE, zero.policy = TRUE)
moran_res
## 
##  Moran I test under randomisation
## 
## data:  bandung_data$JumlahKasus  
## weights: lw    
## 
## Moran I statistic standard deviate = 1.3558, p-value = 0.08758
## alternative hypothesis: greater
## sample estimates:
## Moran I statistic       Expectation          Variance 
##        0.12025930       -0.03448276        0.01302589

1) Nilai Moran’s I

Nilai Moran’s I diperoleh sebesar :

I = 0.1203

Nilai ini bersifat positif, yang berarti terdapat indikasi adanya pengelompokan (clustering) kasus DBD. Artinya, kecamatan dengan jumlah kasus tinggi cenderung berdekatan dengan kecamatan lain yang juga memiliki jumlah kasus tinggi, begitu pula untuk kecamatan dengan jumlah kasus rendah.

2) Signifikansi secara statistik (uji permutasi)

Hasil uji memberikan nilai :

p-value = 0.0876

Pada taraf signifikansi α = 0.05, hasil ini tidak signifikan, sehingga gagal menolak hipotesis nol (H0​) yang menyatakan tidak ada autokorelasi spasial. Namun, jika menggunakan α = 0.10, hasil ini dapat dikatakan marginally significant, artinya ada indikasi awal pola spasial meskipun kekuatannya tidak terlalu kuat.

3) Arti bagi pola spasial penyakit
Interpretasi dari nilai ini adalah bahwa distribusi kasus DBD di Kota Bandung cenderung membentuk cluster, meskipun kekuatan autokorelasi spasial masih relatif lemah secara statistik. Hal ini menunjukkan bahwa persebaran kasus belum sepenuhnya acak, namun bukti untuk menyatakan adanya autokorelasi spasial signifikan masih terbatas.

Oleh karena itu, analisis lanjutan dengan ukuran lokal diperlukan untuk mendeteksi lokasi spesifik hotspot (klaster kasus tinggi) dan coldspot (klaster kasus rendah) yang lebih bermanfaat untuk intervensi kesehatan masyarakat.

4.2 Geary’s C (Global)

geary_res <- geary.test(bandung_data$JumlahKasus, lw, randomisation = TRUE, zero.policy = TRUE)
geary_res
## 
##  Geary C test under randomisation
## 
## data:  bandung_data$JumlahKasus 
## weights: lw   
## 
## Geary C statistic standard deviate = 1.1732, p-value = 0.1204
## alternative hypothesis: Expectation greater than statistic
## sample estimates:
## Geary C statistic       Expectation          Variance 
##        0.86186804        1.00000000        0.01386343

1) Perbandingan dengan Moran’s I

Nilai Moran’s I yang diperoleh sebelumnya adalah I = 0.1203 dengan p = 0.0876, sedangkan Geary’s C untuk variabel yang sama adalah C = 0.8619 dengan p = 0.1204. Secara numerik kedua indeks menunjukkan arah yang sama: Moran positif (I > 0) dan Geary kurang dari 1 (C < 1) sama-sama mengindikasikan kecenderungan autokorelasi spasial positif (yaitu tetangga cenderung memiliki nilai mirip). Namun secara signifikansi statistik keduanya tidak signifikan pada tingkat α = 0.05, sehingga bukti untuk menyatakan adanya autokorelasi spasial global yang kuat belum cukup.

2) Perbedaan sensitivitas kedua ukuran

Secara teoretis Moran’s I dan Geary’s C mengukur aspek yang berbeda dari keterkaitan spasial meskipun keduanya bersifat global: Moran’s I pada dasarnya mengukur kovarians antar lokasi (analogi spasial dari korelasi Pearson), sehingga lebih peka terhadap pola pengelompokan yang halus/bertahap dan terhadap covariansi secara keseluruhan; sedangkan Geary’s C didasarkan pada kuadrat perbedaan antar tetangga :

\[ ((x_i - x_j)^2) \]

dan lebih menekankan kontras lokal atau perbedaan antar tetangga. Oleh karena itu, Geary cenderung lebih sensitif dalam mendeteksi heterogenitas skala kecil (outlier lokal atau perbedaan tajam di antara tetangga), sedangkan Moran lebih sensitif untuk mendeteksi pola clustering global yang “mulus”. Jika sebuah fenomena menunjukkan klaster halus tersebar luas, Moran dapat menjadi lebih kuat; jika fenomena memiliki banyak perbedaan lokal tajam (checkerboard atau outlier), Geary dapat bereaksi lebih kuat (Geary C < 1 menunjukkan autokorelasi positif).

4.3 Local Moran’s I (LISA)

local_res <- localmoran(bandung_data$JumlahKasus, lw, zero.policy = TRUE)

# Simpan hasil
bandung_data$lisa_I <- local_res[,1]
bandung_data$lisa_p <- local_res[,5]

# Hitung rata-rata kasus
mean_rate <- mean(bandung_data$JumlahKasus)

# Kategorisasi cluster
bandung_data$quad_sig <- NA
for (i in 1:nrow(bandung_data)) {
  if (bandung_data$lisa_p[i] <= 0.05) {
    if (bandung_data$JumlahKasus[i] > mean_rate & lag.listw(lw, bandung_data$JumlahKasus, zero.policy=TRUE)[i] > mean_rate)
      bandung_data$quad_sig[i] <- "High-High"
    else if (bandung_data$JumlahKasus[i] < mean_rate & lag.listw(lw, bandung_data$JumlahKasus, zero.policy=TRUE)[i] < mean_rate)
      bandung_data$quad_sig[i] <- "Low-Low"
    else if (bandung_data$JumlahKasus[i] > mean_rate & lag.listw(lw, bandung_data$JumlahKasus, zero.policy=TRUE)[i] < mean_rate)
      bandung_data$quad_sig[i] <- "High-Low"
    else if (bandung_data$JumlahKasus[i] < mean_rate & lag.listw(lw, bandung_data$JumlahKasus, zero.policy=TRUE)[i] > mean_rate)
      bandung_data$quad_sig[i] <- "Low-High"
  } else {
    bandung_data$quad_sig[i] <- "Not Sig"
  }
}

# Visualisasi peta LISA
ggplot(bandung_data) +
  geom_sf(aes(fill = quad_sig), color="white", size=0.2) +
  scale_fill_manual(values=c("High-High"="red","Low-Low"="blue",
                             "High-Low"="orange","Low-High"="lightblue",
                             "Not Sig"="grey80")) +
  labs(title="Peta Cluster LISA (Local Moran’s I)") +
  theme_minimal()

# Buat vektor nama untuk tiap kategori (jika kolom quad_sig ada)
hh <- bandung_data$WADMKC[bandung_data$quad_sig == "High-High"]
ll <- bandung_data$WADMKC[bandung_data$quad_sig == "Low-Low"]
hl <- bandung_data$WADMKC[bandung_data$quad_sig == "High-Low"]
lh <- bandung_data$WADMKC[bandung_data$quad_sig == "Low-High"]

# Tampilkan ringkasan jumlah tiap kategori dan nama kecamatan yang termasuk
cat("Ringkasan jumlah kategori LISA:\n")
## Ringkasan jumlah kategori LISA:
print(table(bandung_data$quad_sig))
## 
## High-High  Low-High   Not Sig 
##         1         1        28
cat("\nNama kecamatan per kategori (jika ada):\n")
## 
## Nama kecamatan per kategori (jika ada):
cat("\nHigh-High (Hotspot):\n")
## 
## High-High (Hotspot):
if(length(hh)>0) print(hh) else cat("Tidak ada kecamatan High-High yang signifikan.\n")
## [1] "Buahbatu"
cat("\nLow-Low (Coldspot):\n")
## 
## Low-Low (Coldspot):
if(length(ll)>0) print(ll) else cat("Tidak ada kecamatan Low-Low yang signifikan.\n")
## Tidak ada kecamatan Low-Low yang signifikan.
cat("\nHigh-Low (Outlier - High surrounded by Low):\n")
## 
## High-Low (Outlier - High surrounded by Low):
if(length(hl)>0) print(hl) else cat("Tidak ada kecamatan High-Low yang signifikan.\n")
## Tidak ada kecamatan High-Low yang signifikan.
cat("\nLow-High (Outlier - Low surrounded by High):\n")
## 
## Low-High (Outlier - Low surrounded by High):
if(length(lh)>0) print(lh) else cat("Tidak ada kecamatan Low-High yang signifikan.\n")
## [1] "Mandalajati"

1) Identifikasi kecamatan yang masuk kategori High-High, Low-Low, High-Low, dan Low-High

Berdasarkan hasil analisis Local Moran’s I :

High–High (Hotspot) : Kecamatan Buahbatu
Low–Low (Coldspot) : Tidak ada kecamatan yang masuk kategori ini
High–Low (Outlier – High dikelilingi Low) : Tidak ada kecamatan yang masuk kategori ini
Low–High (Outlier – Low dikelilingi High) : Kecamatan Mandalajati

2) Interpretasi hasil ini untuk kasus penyakit menular

Kecamatan Buahbatu (High–High).
Kecamatan ini teridentifikasi sebagai hotspot kasus DBD, artinya jumlah kasus di wilayah ini tinggi dan wilayah tetangganya juga menunjukkan kasus tinggi. Kondisi ini mengindikasikan adanya klaster spasial signifikan. Secara epidemiologis, Buahbatu harus menjadi prioritas utama intervensi karena potensi penyebaran lebih lanjut cukup besar. Intervensi yang disarankan mencakup pengendalian vektor (fogging, pemberantasan sarang nyamuk), sosialisasi intensif kepada masyarakat, serta surveilans aktif.

Kecamatan Mandalajati (Low–High).
Wilayah ini masuk kategori outlier, yaitu kecamatan dengan kasus relatif rendah tetapi dikelilingi oleh tetangga dengan kasus tinggi. Situasi ini menunjukkan adanya risiko penyebaran ke Mandalajati karena berada di sekitar area yang terdampak. Oleh karena itu, wilayah ini harus dipantau dengan ketat dan dipersiapkan dengan langkah pencegahan dini agar tidak berubah menjadi hotspot baru.

Tidak adanya kategori Low–Low maupun High–Low signifikan.
Hal ini menunjukkan bahwa tidak ditemukan klaster coldspot (wilayah rendah yang stabil) maupun outlier berkasus tinggi di tengah wilayah rendah. Dengan kata lain, pola spasial kasus DBD di Bandung pada 2021 lebih didominasi oleh satu klaster hotspot (Buahbatu) dan satu potensi risiko spillover (Mandalajati).

4.4 Getis–Ord \(G_i^*\)

gstar <- localG(bandung_data$JumlahKasus, lw, zero.policy = TRUE)
bandung_data$zGstar <- as.numeric(gstar)

# Visualisasi peta Hotspot
ggplot(bandung_data) +
  geom_sf(aes(fill = zGstar), color="white", size=0.2) +
  scale_fill_gradient2(low="blue", mid="white", high="red", midpoint=0,
                       name="Gi* Z-score") +
  labs(title="Peta Hotspot Getis–Ord Gi*") +
  theme_minimal()

1) Kecamatan yang termasuk hot spot dan cold spot

Hasil perhitungan Getis–Ord \(G_i^*\) menghasilkan nilai \(Z\)-score untuk tiap kecamatan :

  • Hotspot (Z > 1.96, signifikan pada α = 0.05) :
    Kecamatan Buahbatu, Kiaracondong, serta beberapa wilayah di bagian utara-tengah (misalnya Cicadas). Warna merah pada peta menunjukkan wilayah dengan konsentrasi kasus tinggi yang signifikan secara spasial.

  • Coldspot (Z < -1.96, signifikan pada α = 0.05) :
    Beberapa kecamatan di bagian barat dan selatan Kota Bandung tampak berwarna biru, menunjukkan konsentrasi kasus rendah yang berkelompok secara signifikan.

2) Perbandingan hasil dengan peta LISA

  • LISA (Local Moran’s I) berfokus pada hubungan tiap kecamatan dengan tetangga terdekat, sehingga sensitif dalam mendeteksi outlier (wilayah berbeda dengan tetangganya).
  • Getis–Ord \(G_i^*\) lebih menekankan pada konsentrasi kasus tinggi/rendah dalam suatu area (hotspot vs coldspot), sehingga mampu mengidentifikasi wilayah yang membentuk klaster kasus tinggi atau rendah secara lebih luas.

3) Perbedaan wilayah yang ditandai sebagai klaster signifikan

LISA (Local Moran’s I) :

  • Hanya mengidentifikasi 1 kecamatan sebagai hotspot signifikan (High–High) yaitu Buahbatu. Selain itu, terdeteksi 1 outlier (Low–High) yaitu Mandalajati. Sebagian besar kecamatan lainnya tidak signifikan.

Getis–Ord \(G_i^*\) :

  • Menunjukkan lebih banyak kecamatan sebagai hotspot signifikan, tidak hanya Buahbatu, tetapi juga kecamatan lain seperti Kiaracondong dan beberapa wilayah tengah-utara. Selain hotspot, \(G_i^*\) juga berhasil mengidentifikasi coldspot signifikan (wilayah dengan konsentrasi rendah), yang sama sekali tidak muncul pada hasil LISA.

LISA lebih menekankan pada hubungan nilai suatu kecamatan dengan tetangganya sehingga sangat berguna untuk mendeteksi outlier spasial (misalnya kecamatan dengan kasus tinggi tetapi dikelilingi oleh rendah, atau sebaliknya).

Getis–Ord \(G_i^*\) berfokus pada pola akumulasi nilai tinggi atau rendah dalam suatu area, sehingga dapat menandai klaster hotspot maupun coldspot yang lebih luas.

Oleh karena itu, hasil analisis menunjukkan bahwa wilayah signifikan berbeda. Buahbatu konsisten muncul di kedua analisis (sebagai hotspot). Namun, Mandalajati hanya muncul di LISA sebagai outlier, sedangkan Kiaracondong dan beberapa wilayah lain hanya muncul di \(G_i^*\) sebagai hotspot. Coldspot baru terlihat dengan \(G_i^*\).

Dengan demikian, ada perbedaan wilayah yang ditandai sebagai klaster signifikan antara kedua metode. LISA lebih sensitif terhadap outlier lokal dan \(G_i^*\) lebih kuat untuk melihat pola konsentrasi (hotspot–coldspot) secara keseluruhan.

5 D. Diskusi Kritis

5.1 Manfaat untuk Dinas Kesehatan

  • Mengetahui lokasi cluster penyakit (High–High / hotspot) → fokus intervensi.
  • Efisiensi sumber daya : tenaga kesehatan, program penyuluhan, sanitasi diarahkan ke wilayah rawan.
  • Deteksi dini pola penyebaran → memutus rantai penularan.

Analisis autokorelasi spasial (global dan lokal) memberikan informasi yang bersifat tindakan (actionable) bagi Dinas Kesehatan. Secara langsung, hasil Local Moran’s I (LISA) dan Getis–Ord \(G_i^*\) yang diperoleh mengidentifikasi lokasi spesifik di mana kasus DBD terkonsentrasi (Buahbatu teridentifikasi sebagai High–High / hotspot; Mandalajati muncul sebagai outlier Low–High; dan Kiaracondong juga muncul pada analisis \(G_i^*\)). Informasi semacam ini memungkinkan pengambilan keputusan berbasis lokasi: sumber daya pengendalian vektor (fogging, larvasida, pemberantasan genangan), program edukasi komunitas, dan surveilans dapat diprioritaskan ke kecamatan yang teridentifikasi sebagai hotspot sehingga intervensi menjadi lebih efisien dan berdampak. Selain itu, peta lokal membantu merancang intervensi yang berskala mikro, misalnya fokus pada RW/kelurahan dengan klaster kasus tinggi serta memonitor efek intervensi dari waktu ke waktu (evaluasi pra-/pasca-intervensi). Analisis spasial juga berguna untuk mengaitkan pola penyakit dengan variabel lingkungan atau sosio-ekonomi (mis. kepadatan penduduk, kualitas sanitasi, ketersediaan fasilitas kesehatan), sehingga intervensi dapat bersifat multisektoral dan lebih bertarget (Anselin, 1995; Getis & Ord, 1992; Bivand et al., 2013).

Selain fungsi penentuan prioritas, hasil autokorelasi membantu perencanaan operasional, misalnya menentukan rute dan titik fogging, penempatan pos surveilans, dan alokasi petugas lapangan. Identifikasi outlier seperti Mandalajati (low surrounded by high) juga penting: wilayah seperti ini perlu pemantauan intensif karena berisiko “terinfeksi” oleh tetangga, artinya tindakan preventif di area buffer atau perbatasan antar kecamatan menjadi relevan. Secara keseluruhan, analisis spasial mengubah data numerik kasus menjadi informasi geografis yang bisa ditindaklanjuti, sehingga kebijakan pencegahan dan mitigasi menjadi lebih efektif dan hemat sumber daya.

5.2 Keterbatasan Analisis

a) MAUP (Modifiable Areal Unit Problem)
MAUP terjadi ketika hasil analisis berubah jika unit agregasi (misal kecamatan vs. kelurahan vs. blok sensus) diubah. Satu pola klaster pada skala kecamatan bisa lenyap atau berbeda pada skala kelurahan karena agregasi data menutupi heterogenitas lokal (Openshaw, 1984). Implikasi praktisnya adalah: keputusan yang dibuat hanya berdasarkan analisis pada satu tingkat (misalnya kecamatan) berisiko tidak akurat bila implementasi operasional bekerja pada tingkat yang lebih kecil. Cara mitigasinya: lakukan analisis sensitivitas pada beberapa tingkat agregasi (multi-scale), gunakan data yang lebih detil bila memungkinkan (kelurahan atau RW), dan jika hanya tersedia data agregat, kombinasi dengan analisis lokal (LISA) serta verifikasi lapangan sebelum intervensi.

b) Pilihan bobot spasial (rook, queen, k-nearest neighbors, dll.)
Definisi ‘tetangga’ (bobot spasial \(w_{ij}\)) sangat memengaruhi hasil Moran’s I, Geary’s C, LISA, dan \(G_i^*\). Misalnya, aturan queen (berbatasan dengan titik atau sisi) berbeda hasilnya dibanding rook (hanya sisi), dan pendekatan k-NN (k tetangga terdekat) menghasilkan struktur bobot yang lain lagi. Karena epidemiologi penyakit menular dapat dipengaruhi oleh mobilitas manusia (jarak efektif) bukan semata batas administratif, pemilihan bobot harus didasari alasan substantif (misalnya jarak nyata antar pusat aktivitas, infrastruktur transportasi) dan diuji sensitivitasnya. Rekomendasi langkah analisis yaitu jalankan analisis menggunakan beberapa definisi bobot (queen, rook, 4-NN, 8-NN, jarak tertentu) dan laporkan hasil yang konsisten. Jika hasil sensitif terhadap pilihan bobot, gunakan pendekatan berbasis jarak/mobilitas atau model spasial yang eksplisit memasukkan jarak (misal model Poisson spasial, CAR/ICAR).

c) Multiple testing pada analisis lokal (LISA)
Analisis lokal melakukan banyak uji statistik (satu per unit wilayah), sehingga menimbulkan risiko false positives (penanda signifikan yang sebenarnya kebetulan) akibat multiple testing. Jika tidak dikoreksi, beberapa wilayah mungkin salah diidentifikasi sebagai hotspot. Mitigasinya termasuk penggunaan prosedur koreksi (mis. False Discovery Rate–FDR, Benjamini–Hochberg), menerapkan threshold p yang lebih ketat, atau menggunakan pendekatan permutasi yang kuat (Monte Carlo) untuk menghitung p-value empiris. Selain itu, kombinasi bukti, misalnya menugaskan prioritas lebih tinggi kepada wilayah yang signifikan di beberapa metode (LISA dan \(G_i^*\)) dapat mengurangi risiko false positives.

d) Kualitas Data

Selain aspek metodologis, kualitas data yang digunakan dalam analisis spasial sangat menentukan keandalan hasil. Pertama, data kasus DBD yang bersumber dari laporan tahunan Dinas Kesehatan hanya merepresentasikan kasus yang terlaporkan secara resmi, sehingga kemungkinan terdapat under-reporting (kasus tidak tercatat karena pasien tidak berobat ke fasilitas kesehatan formal). Hal ini dapat menyebabkan estimasi jumlah kasus lebih rendah dari situasi sebenarnya. Kedua, data kasus dikumpulkan pada tingkat agregasi kecamatan. Agregasi ini dapat menutupi variasi spasial yang lebih halus di tingkat kelurahan atau RW, sehingga pola klaster kecil mungkin tidak terdeteksi (relasi erat dengan masalah MAUP). Ketiga, ketidakcocokan penamaan atau ketidaksesuaian antara data tabular dan peta batas administrasi dapat menimbulkan nilai hilang (missing values), seperti yang sempat terjadi pada kecamatan Ujung Berung. Kesalahan semacam ini harus ditangani melalui pembersihan data dan standarisasi penamaan.

Selain itu, penggunaan data absolut kasus tanpa menyesuaikan dengan jumlah penduduk di tiap kecamatan dapat menghasilkan bias interpretasi. Kecamatan berpenduduk besar cenderung menunjukkan jumlah kasus tinggi meskipun risiko relatif tidak selalu lebih besar. Oleh karena itu, analisis sebaiknya dilengkapi dengan perhitungan rate (misalnya kasus per 10.000 penduduk) atau bahkan menggunakan metode Empirical Bayes smoothing untuk menstabilkan variabilitas pada kecamatan dengan populasi kecil.

Hasil analisis spasial yang diperoleh dari data yang belum sepenuhnya bersih dan terstandarisasi harus dipandang sebagai indikasi awal yang memerlukan validasi lebih lanjut, baik melalui survei lapangan maupun triangulasi dengan sumber data tambahan (misalnya data lingkungan, kepadatan penduduk, curah hujan, atau kualitas sanitasi).

6 Referensi