1. Autokorelasi Spasial Positif & Negatif
2. Contoh Fenomena
3. Rumus Matematis
Moran’s I
\[ I = \frac{n}{\sum_i \sum_j w_{ij}} \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
- \(x_i\) = nilai variabel di lokasi
\(i\)
- \(\bar{x}\) = rata-rata
keseluruhan
- \(w_{ij}\) = bobot spasial antara
lokasi \(i\) dan \(j\)
- Nilai \(I > 0\) → autokorelasi
positif, \(I < 0\) → autokorelasi
negatif, \(I \approx 0\) → acak
Geary’s C
\[ C = \frac{(n-1)}{2 \sum_i \sum_j w_{ij}} \cdot \frac{\sum_i \sum_j w_{ij}(x_i - x_j)^2}{\sum_i (x_i - \bar{x})^2} \]
Keterangan: - \(n\)
= jumlah unit spasial
- \(x_i, x_j\) = nilai variabel di
lokasi \(i\) dan \(j\)
- \(w_{ij}\) = bobot spasial
- \(C < 1\) → autokorelasi positif,
\(C > 1\) → autokorelasi negatif,
\(C = 1\) → acak
Local Moran’s I_i
\[ I_i = \frac{(x_i - \bar{x})}{m^2} \sum_j w_{ij}(x_j - \bar{x}), \quad m^2 = \frac{1}{n} \sum_i (x_i - \bar{x})^2 \]
Keterangan:
- \(x_i\) = nilai di lokasi \(i\)
- \(\bar{x}\) = rata-rata
keseluruhan
- \(w_{ij}\) = bobot spasial
- \(m^2\) = varians rata-rata
- Digunakan untuk identifikasi cluster lokal
(high-high, low-low) dan outlier (high-low,
low-high).
Getis–Ord G_i
\[ G_i = \frac{\sum_j w_{ij} x_j}{\sum_j x_j} \]
Getis–Ord G*_i
\[ G_i^* = \frac{\sum_j w_{ij} x_j}{\sum_j x_j} \]
Keterangan:
- \(x_j\) = nilai di lokasi \(j\)
- \(w_{ij}\) = bobot spasial
- Pada \(G_i\), tetangga tidak
termasuk lokasi \(i\).
- Pada \(G_i^*\), tetangga
termasuk lokasi \(i\)
itu sendiri.
- Hasil biasanya dikonversi ke bentuk z-score:
- Nilai \(z > 0\) signifikan →
hot spot
- Nilai \(z < 0\) signifikan →
cold spot
4. Perbedaan Ukuran Global vs Lokal
1. Data Spasial Kecamatan
Grid simulasi yang mewakili 30 kecamatan (5 x 6 grid) di kota Bandung digunakan untuk melakukan analisis data.
## 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
## 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')`
## Warning: package 'ggplot2' was built under R version 4.5.1
## 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
# Membuat grid 5x6
grid <- st_make_grid(st_as_sfc(st_bbox(c(xmin=0, ymin=0, xmax=6, ymax=5))),
n = c(6,5)) %>% st_as_sf()
# Menambahkan ID kecamatan
grid$kecamatan <- paste0("Kec_", 1:nrow(grid))
# Visualisasi grid
plot(grid["kecamatan"], main="Grid Simulasi Kecamatan Kota Bandung")
2. Data Simulasi Kasus Penyakit
Kasus diare per 10.000 penduduk disimulasikan dengan distribusi Poisson. Di asumsikan setiap kecamatan memiliki rata-rata kasus berbeda.
set.seed(123)
# Rata-rata kasus berbeda per kecamatan (acak 5-20)
lambda <- sample(5:20, size = 30, replace = TRUE)
# Simulasi kasus dengan distribusi Poisson
kasus <- rpois(30, lambda = lambda)
# Tambahkan ke data spasial
grid <- grid %>%
mutate(lambda = lambda,
kasus = kasus)
3. Peta Choropleth
Peta berikut menunjukkan distribusi kasus diare per 10.000 penduduk untuk 30 kecamatan simulasi di Kota Bandung
ggplot(grid) +
geom_sf(aes(fill = kasus), color = "black", size = 0.2) +
scale_fill_viridis_c(option = "plasma") +
theme_minimal() +
labs(title = "Peta Choropleth Kasus Diare (Simulasi)",
fill = "Kasus per 10.000")
Interpretasi:
Berdasarkan peta choropleth simulasi kasus diare per 10.000 penduduk di Kota Bandung, terlihat bahwa distribusi kasus tidak tersebar secara acak, melainkan menunjukkan adanya pola spasial tertentu. Pada bagian pojok kiri bawah tampak konsentrasi wilayah dengan kasus tinggi (ditunjukkan dengan warna kuning hingga oranye), yang mengindikasikan adanya potensi hot spot atau autokorelasi spasial positif tipe high-high. Sebaliknya, di beberapa bagian lain, terutama di area tengah hingga kanan bawah, terdapat kelompok wilayah dengan intensitas kasus rendah (warna ungu tua), yang dapat diidentifikasi sebagai cold spot atau autokorelasi spasial positif tipe low-low. Selain itu, terdapat pula beberapa sel dengan intensitas kasus sangat rendah yang dikelilingi oleh wilayah dengan kasus sedang hingga tinggi, sehingga membentuk indikasi adanya autokorelasi spasial negatif berupa outlier (high-low atau low-high). Dengan demikian, secara visual pola penyebaran kasus diare pada peta ini memperlihatkan kecenderungan terjadinya pengelompokan (clustering) baik untuk kasus tinggi maupun kasus rendah, bukan distribusi yang sepenuhnya acak.
1. Hitung Moran’s I untuk data simulasi kasus diare di Kota Bandung.
# Asumsi: 'grid' sudah ada dari Bagian B dan memiliki kolom 'kasus' (integer)
# Buat neighbors (queen contiguity)
nb <- poly2nb(grid, queen = TRUE)
lw <- nb2listw(nb, style = "W", zero.policy = TRUE)
# Moran's I (global) - uji permutasi (999)
set.seed(123)
moran_res <- moran.test(grid$kasus, listw = lw, randomisation = TRUE)
moran_res
##
## Moran I test under randomisation
##
## data: grid$kasus
## weights: lw
##
## Moran I statistic standard deviate = -1.4568, p-value = 0.9274
## alternative hypothesis: greater
## sample estimates:
## Moran I statistic Expectation Variance
## -0.176955782 -0.034482759 0.009564505
# Jika ingin permutasi manual (menghitung p permutasi), gunakan moran.mc
moran_mc <- moran.mc(grid$kasus, listw = lw, nsim = 999, zero.policy = TRUE)
moran_mc
##
## Monte-Carlo simulation of Moran I
##
## data: grid$kasus
## weights: lw
## number of simulations + 1: 1000
##
## statistic = -0.17696, observed rank = 55, p-value = 0.945
## alternative hypothesis: greater
Interpretasi:
Hasil perhitungan Moran’s I pada data simulasi kasus diare di Kota Bandung menunjukkan bahwa nilai Moran’s I = -0,177, dengan nilai ekspektasi sebesar -0,034. Uji signifikansi menggunakan metode randomisasi menghasilkan p-value = 0,927, yang berarti tidak signifikan secara statistik pada taraf 5%. Nilai Moran’s I yang negatif mengindikasikan adanya kecenderungan lemah ke arah dispersi (wilayah bertetangga cenderung memiliki jumlah kasus yang berbeda). Namun, karena hasilnya tidak signifikan, maka pola ini tidak dapat dibedakan dari pola acak. Dengan demikian, distribusi kasus diare di Kota Bandung tidak menunjukkan adanya autokorelasi spasial yang berarti. Artinya, kecamatan dengan jumlah kasus tinggi tidak secara konsisten bertetangga dengan kecamatan dengan kasus tinggi lainnya, begitu pula sebaliknya. Hal ini menunjukkan bahwa penyebaran kasus diare di Kota Bandung tidak semata-mata dipengaruhi oleh kedekatan wilayah geografis, melainkan kemungkinan lebih dipengaruhi oleh faktor lain seperti sanitasi lingkungan, kualitas air bersih, atau kepadatan penduduk.
# Pastikan 'grid' dan 'lw' sudah ada dari Bagian B/C sebelumnya
# (lw = nb2listw(nb, style="W"))
library(spdep)
# Geary's C (uji randomisation)
geary_res <- geary.test(grid$kasus, listw = lw, randomisation = TRUE)
geary_res
##
## Geary C test under randomisation
##
## data: grid$kasus
## weights: lw
##
## Geary C statistic standard deviate = -0.85586, p-value = 0.804
## alternative hypothesis: Expectation greater than statistic
## sample estimates:
## Geary C statistic Expectation Variance
## 1.08713710 1.00000000 0.01036563
# Jika ingin p-value via permutasi manual (MC) bisa juga:
# geary_mc <- geary.mc(grid$kasus, listw = lw, nsim = 999, zero.policy = TRUE)
# geary_mc
Interpretasi
Hasil perhitungan Geary’s C pada data simulasi kasus diare di Kota Bandung menunjukkan nilai Geary’s C = 1,087 dengan ekspektasi sebesar 1,000. Nilai ini lebih besar dari 1, yang secara teori mengarah pada indikasi autokorelasi spasial negatif (pola checkerboard, di mana wilayah dengan kasus tinggi cenderung bertetangga dengan wilayah kasus rendah, dan sebaliknya). Namun, hasil uji signifikansi menunjukkan p-value = 0,804, jauh di atas taraf signifikansi 5%. Dengan demikian, pola ini tidak signifikan secara statistik, sehingga secara praktis distribusi kasus diare lebih konsisten dengan pola acak.
Jika dibandingkan dengan hasil Moran’s I (−0,177, p = 0,927), keduanya sama-sama tidak signifikan. Moran’s I mengarah pada indikasi lemah ke arah dispersi (negatif), sedangkan Geary’s C juga memberi sinyal ke arah yang sama (C > 1, negatif). Artinya, kedua ukuran konsisten dalam menunjukkan bahwa tidak ada pola spasial yang bermakna dalam distribusi kasus diare di Bandung.
Perlu dicatat bahwa Moran’s I lebih sensitif terhadap pola global clustering (misalnya kecenderungan keseluruhan kasus tinggi mengelompok di satu bagian kota), sementara Geary’s C lebih peka terhadap perbedaan lokal antar pasangan tetangga. Dalam kasus ini, keduanya sepakat bahwa tidak ada bukti autokorelasi spasial yang signifikan. Namun, jika terdapat variasi yang lebih halus di tingkat lokal, kemungkinan besar Geary’s C akan lebih cepat menangkapnya dibanding Moran’s I.
# Local Moran's I (LISA)
lisa <- localmoran(grid$kasus, lw, zero.policy = TRUE)
# Konversi ke data.frame agar lebih mudah dibaca
lisa_df <- as.data.frame(lisa)
colnames(lisa_df) <- c("Ii", "E.Ii", "Var.Ii", "Z.Ii", "P.Ii")
# Tambahkan hasil ke data spasial
grid$lisa_I <- lisa_df$Ii
grid$lisa_Z <- lisa_df$Z.Ii
grid$lisa_P <- lisa_df$P.Ii
# Kategorisasi cluster
mean_kasus <- mean(grid$kasus)
grid <- grid %>%
mutate(
kategori = case_when(
kasus > mean_kasus & lisa_I > 0 & lisa_P < 0.05 ~ "High-High",
kasus < mean_kasus & lisa_I > 0 & lisa_P < 0.05 ~ "Low-Low",
kasus > mean_kasus & lisa_I < 0 & lisa_P < 0.05 ~ "High-Low",
kasus < mean_kasus & lisa_I < 0 & lisa_P < 0.05 ~ "Low-High",
TRUE ~ "Tidak signifikan"
)
)
# Plot peta cluster LISA
ggplot(grid) +
geom_sf(aes(fill = kategori), color = "black", size = 0.2) +
scale_fill_manual(values = c("High-High" = "red",
"Low-Low" = "blue",
"High-Low" = "orange",
"Low-High" = "lightblue",
"Tidak signifikan" = "grey80")) +
theme_minimal() +
labs(title = "Peta Cluster LISA (Local Moran’s I) - Kasus Diare",
fill = "Kategori")
Identifikasi Kategori Cluster
Berdasarkan peta LISA:
High-High (Hotspot): Tidak ada kecamatan yang teridentifikasi.
Low-Low (Coldspot): Tidak ada kecamatan yang teridentifikasi.
High-Low: Terdapat satu kecamatan (warna oranye) yang memiliki jumlah kasus diare tinggi, tetapi dikelilingi oleh tetangga dengan kasus relatif rendah.
Low-High: Tidak ada kecamatan yang teridentifikasi.
Tidak signifikan: Sebagian besar kecamatan (warna abu-abu) tidak menunjukkan autokorelasi spasial yang signifikan.
Interpretasi Peta Cluster LISA
Hasil LISA menunjukkan bahwa pola spasial kasus diare di Kota Bandung didominasi oleh wilayah yang tidak signifikan, sehingga distribusi kasus cenderung acak. Namun, terdapat satu kecamatan dengan pola High-Low, yang berarti kecamatan tersebut menjadi semacam outlier: kasusnya tinggi, tetapi wilayah tetangganya rendah. Dalam konteks penyakit menular seperti diare, hal ini dapat menandakan adanya faktor lokal spesifik yang meningkatkan kerentanan di kecamatan tersebut, misalnya kualitas sanitasi yang buruk, masalah air bersih, atau kepadatan penduduk yang lebih tinggi dibandingkan tetangganya. Dengan demikian, wilayah ini perlu mendapat perhatian khusus sebagai area rawan, meskipun secara umum penyebaran kasus belum menunjukkan pola pengelompokan (clustering) yang kuat.
# Hitung Getis-Ord G*
gi_star <- localG(grid$kasus, lw, zero.policy = TRUE)
# Tambahkan hasil ke data spasial
grid$Gi_star <- as.numeric(gi_star)
# Kategorisasi hot spot dan cold spot berdasarkan z-score
grid <- grid %>%
mutate(
hotspot = case_when(
Gi_star > 1.96 ~ "Hot Spot (signifikan)", # z > 1.96, signifikan 5%
Gi_star < -1.96 ~ "Cold Spot (signifikan)", # z < -1.96, signifikan 5%
TRUE ~ "Tidak signifikan"
)
)
# Peta Getis-Ord G*
ggplot(grid) +
geom_sf(aes(fill = hotspot), color = "black", size = 0.2) +
scale_fill_manual(values = c("Hot Spot (signifikan)" = "red",
"Cold Spot (signifikan)" = "blue",
"Tidak signifikan" = "grey80")) +
theme_minimal() +
labs(title = "Peta Hot Spot dan Cold Spot (Getis–Ord G*) - Kasus Diare",
fill = "Kategori")
1. Tentukan kecamatan yang termasuk hot spot dan cold spot.
Berdasarkan hasil perhitungan Getis–Ord G*, kecamatan yang termasuk hot spot adalah kecamatan dengan nilai z-score yang positif tinggi dan signifikan. Artinya, kecamatan tersebut dikelilingi oleh tetangga yang juga memiliki nilai variabel tinggi, sehingga terbentuk klaster wilayah dengan intensitas tinggi. Sebaliknya, kecamatan yang termasuk cold spot adalah kecamatan dengan nilai z-score negatif signifikan, yang menunjukkan adanya klaster wilayah dengan intensitas rendah. Identifikasi hot spot dan cold spot ini penting untuk mengetahui konsentrasi spasial dari fenomena yang dianalisis, misalnya tingkat kemiskinan, kasus penyakit, atau tingkat pembangunan di suatu wilayah.
2. Bandingkan hasilnya dengan peta LISA.
Jika dibandingkan dengan hasil analisis Local Moran’s I (LISA), terlihat bahwa keduanya sama-sama mengidentifikasi adanya klaster spasial, namun dengan sudut pandang yang berbeda. LISA lebih menekankan pada hubungan spasial antara suatu kecamatan dengan tetangganya, sehingga dapat membedakan kategori seperti High–High, Low–Low, High–Low, dan Low–High. Sementara itu, Getis–Ord G* lebih fokus pada pengelompokan nilai tinggi atau rendah dalam suatu wilayah dan sekitarnya tanpa membedakan ketidaksesuaian pola. Oleh karena itu, peta LISA sering memberikan informasi lebih detail mengenai interaksi antarwilayah, sedangkan peta Getis–Ord lebih menekankan konsentrasi atau distribusi geografis dari intensitas nilai.
3. Apakah ada perbedaan wilayah yang ditandai sebagai klaster signifikan?
Dalam praktiknya, hasil antara Getis–Ord G* dan LISA bisa menunjukkan perbedaan dalam identifikasi klaster signifikan. Misalnya, ada wilayah yang pada peta LISA terdeteksi sebagai High–High (artinya wilayah dengan nilai tinggi dikelilingi oleh wilayah bernilai tinggi), namun pada peta Getis–Ord wilayah tersebut tidak muncul sebagai hot spot karena kontribusi tetangganya tidak cukup besar untuk menghasilkan z-score signifikan. Sebaliknya, ada juga kasus di mana Getis–Ord mendeteksi hot spot pada suatu kecamatan, tetapi dalam LISA wilayah tersebut justru dikategorikan sebagai High–Low karena nilai tetangganya berbeda jauh. Perbedaan ini wajar karena kedua metode memiliki perspektif analisis spasial yang tidak identik, sehingga keduanya sebaiknya digunakan secara komplementer untuk memperoleh pemahaman yang lebih utuh mengenai pola spasial data.
1. Bagaimana hasil analisis autokorelasi spasial bisa membantu dinas kesehatan dalam menyusun strategi pencegahan dan intervensi penyakit menular di Kota Bandung?
Hasil analisis autokorelasi spasial dapat memberikan informasi penting bagi dinas kesehatan mengenai pola penyebaran penyakit menular di Kota Bandung. Jika hasil Global Moran’s I menunjukkan adanya autokorelasi positif yang signifikan, berarti kasus penyakit tidak menyebar secara acak melainkan membentuk klaster di wilayah tertentu. Identifikasi lebih lanjut melalui Local Moran’s I (LISA) dan Getis–Ord G* memungkinkan pemetaan kecamatan yang menjadi hot spot (klaster dengan tingkat kasus tinggi) maupun cold spot (klaster dengan tingkat kasus rendah). Informasi ini bisa membantu dinas kesehatan dalam menentukan prioritas intervensi, misalnya memperkuat program vaksinasi, meningkatkan edukasi masyarakat, atau memperbanyak tenaga medis di wilayah hot spot. Selain itu, pemahaman tentang pola spasial juga bisa mendukung strategi pencegahan berbasis wilayah, sehingga upaya kesehatan lebih efisien, tepat sasaran, dan berpotensi menekan penyebaran penyakit lebih cepat.
2. Sebutkan keterbatasan dari analisis autokorelasi spasial. Analisis autokorelasi spasial, meskipun bermanfaat, memiliki beberapa keterbatasan yang perlu diperhatikan.
Pertama, masalah MAUP (Modifiable Areal Unit Problem) dapat memengaruhi hasil analisis, karena pola spasial yang muncul bisa berbeda tergantung pada skala atau pembagian wilayah administratif yang digunakan (misalnya per kecamatan, kelurahan, atau RT/RW).
Kedua, pemilihan ukuran bobot spasial (seperti rook, queen, atau k-nearest neighbors) juga berpengaruh signifikan terhadap hasil. Misalnya, rook hanya menghubungkan wilayah yang berbagi sisi, sedangkan queen menghubungkan wilayah yang berbagi sisi atau titik, sehingga struktur keterhubungan spasial bisa berbeda.
Ketiga, pada analisis lokal seperti LISA, terdapat masalah multiple testing, karena uji signifikansi dilakukan berulang kali untuk setiap unit wilayah. Hal ini meningkatkan risiko false positive (wilayah yang tampak signifikan padahal tidak). Oleh karena itu, interpretasi hasil autokorelasi spasial perlu hati-hati, disertai dengan pemahaman konteks lokal dan, bila memungkinkan, didukung dengan metode validasi tambahan.
link rpubs: https://rpubs.com/nafallaffta/1348634