Autokorelasi spasial adalah ukuran sejauh mana suatu variabel di satu lokasi berkorelasi dengan nilai variabel yang sama di lokasi sekitarnya.
Autokorelasi spasial positif:
Dalam kasus Hepatitis A di Kota Bandung, jika beberapa kecamatan yang
berdekatan sama-sama memiliki angka kasus tinggi, maka daerah tersebut
membentuk klaster positif (hotspot). Misalnya,
dua kecamatan bertetangga dengan tingkat kejadian tinggi akibat kondisi
sanitasi yang sama.
Autokorelasi spasial negatif:
Jika sebuah kecamatan dengan angka kasus Hepatitis A sangat tinggi
justru dikelilingi oleh kecamatan dengan kasus sangat rendah, maka hal
ini mencerminkan adanya pola negatif.
Contohnya, satu kecamatan padat penduduk dengan sanitasi buruk (tinggi
kasus) dikelilingi kecamatan yang lebih baik infrastrukturnya (rendah
kasus).
Moran’s I mengukur derajat autokorelasi spasial global dengan membandingkan kesamaan nilai antarwilayah terhadap rata-rata global. Nilai positif menunjukkan adanya clustering, sedangkan negatif menunjukkan penyebaran.
\[ I = \frac{N}{W} \cdot \frac{\sum_{i=1}^N \sum_{j=1}^N w_{ij}(x_i - \bar{x})(x_j - \bar{x})}{\sum_{i=1}^N (x_i - \bar{x})^2} \]
Geary’s C lebih fokus pada perbedaan langsung antara nilai suatu wilayah dan tetangganya.
\[ C = \frac{(N-1)}{2W} \cdot \frac{\sum_{i=1}^N \sum_{j=1}^N w_{ij}(x_i - x_j)^2}{\sum_{i=1}^N (x_i - \bar{x})^2} \]
Interpretasi:
- \(C < 1\): autokorelasi positif
(nilai mirip antarwilayah bertetangga)
- \(C > 1\): autokorelasi negatif
(nilai berbeda antarwilayah bertetangga)
- \(C = 1\): tidak ada autokorelasi
Ukuran ini menunjukkan kontribusi masing-masing wilayah terhadap nilai Moran’s I global, sehingga bisa mengidentifikasi klaster lokal (High-High, Low-Low, High-Low, Low-High).
\[ I_i = \frac{(x_i - \bar{x})}{m^2} \sum_{j=1}^N w_{ij}(x_j - \bar{x}) \]
dengan
\[ m^2 = \frac{1}{N} \sum_{i=1}^N (x_i - \bar{x})^2 \]
Getis–Ord \(G_i\) dan \(G_i^*\) digunakan untuk mendeteksi hotspot (nilai tinggi terkonsentrasi) dan coldspot (nilai rendah terkonsentrasi).
\[ G_i = \frac{\sum_{j=1}^N w_{ij} x_j}{\sum_{j=1}^N x_j} \]
\[ G_i^* = \frac{\sum_{j=1}^N w_{ij} x_j}{\sum_{j=1}^N x_j}, \quad \text{dengan } w_{ii} = 1 \]
Perbedaan utama:
- \(G_i\): menghitung hanya tetangga
\(j\) dari \(i\) (tidak termasuk \(i\)).
- \(G_i^*\): menghitung termasuk lokasi
\(i\) sendiri.
Interpretasi nilai z-score:
- Z-score tinggi signifikan → hotspot.
- Z-score rendah signifikan → coldspot.
Ukuran global (Moran’s I, Geary’s C):
Mengukur kecenderungan keseluruhan pola spasial di
seluruh Kota Bandung, apakah ada clustering atau tidak.
Ukuran lokal (Local Moran’s I, Getis–Ord
Gi*):
Mengidentifikasi lokasi spesifik (misalnya kecamatan
tertentu) yang membentuk klaster atau hotspot.
Dengan kata lain, ukuran global memberi jawaban umum “apakah ada autokorelasi spasial?”, sedangkan ukuran lokal menjawab “di mana autokorelasi itu terjadi?”.
Karena shapefile asli kecamatan Bandung tidak tersedia, digunakan grid buatan 6x5 (30 unit) sebagai pengganti wilayah kecamatan. Sebagai gambaran awal, ditampilkan data jumlah penduduk per kecamatan dari file Excel.
#=== 1. Baca data spasial dan data populasi ===#
# Baca shapefile Indonesia level kecamatan (gadm)
Indo_Kec <- readRDS("C:/Users/USER/Documents/SEMESTER 5/SPASIAL/gadm36_IDN_3_sp.rds")
# Filter hanya Kota Bandung
Bandung <- Indo_Kec[Indo_Kec$NAME_2 %in% c("Bandung Kota", "Kota Bandung"), ]
# Konversi ke sf
Bandung_clean <- sf::st_as_sf(Bandung)
Bandung_clean$id <- seq_len(nrow(Bandung_clean))
# Baca data populasi
pop_data <- readxl::read_excel(
"C:/Users/USER/Documents/SEMESTER 5/SPASIAL/Jumlah Penduduk Kota Bandung menurut Kecamatan, 2024.xlsx"
) |>
dplyr::rename(kecamatan = 1, pop = 2)
# Cek kesesuaian nama kecamatan
unique(Bandung_clean$NAME_3)## [1] "Andir" "Antapani" "Arcamanik" "Astanaanyar"
## [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"
## [1] "Bandung Kulon" "Babakan Ciparay" "Bojongloa Kaler" "Bojongloa Kidul"
## [5] "Astanaanyar" "Regol"
# Join data populasi ke shapefile
Bandung_clean <- dplyr::left_join(Bandung_clean, pop_data,
by = c("NAME_3" = "kecamatan"))
#=== 2. Visualisasi jumlah penduduk ===#
ggplot(Bandung_clean) +
geom_sf(aes(fill = pop), color = "white") +
scale_fill_viridis_c(option = "magma") +
labs(title = "Jumlah Penduduk per Kecamatan - Kota Bandung (2024)",
fill = "Penduduk") +
theme_minimal()ggplot(Bandung_clean) +
geom_sf(aes(fill = rate10k), color = "white", size = 0.3) +
scale_fill_viridis_c(option = "magma", na.value = "grey90") +
labs(title = "Rate Kasus Hepatitis A (per 10.000 penduduk) — Simulasi",
fill = "Rate") +
theme_minimal()Interpretasi Peta Choropleth
Peta choropleth menunjukkan bahwa mayoritas wilayah memiliki angka kasus Hepatitis A yang rendah (ditunjukkan dengan warna gelap), sementara hanya beberapa wilayah di bagian utara–tengah dan selatan–timur yang memiliki angka kasus tinggi (warna terang), sehingga secara visual terlihat adanya pola pengelompokan (clustering) dengan sedikit hotspot di tengah dominasi wilayah berkasus rendah.
## pop cases rate10k geometry
## Min. : 26649 Min. : 3.00 Min. : 0.3462 MULTIPOLYGON :30
## 1st Qu.: 71906 1st Qu.: 9.00 1st Qu.: 1.1352 epsg:NA : 0
## Median : 82350 Median : 27.00 Median : 3.1010 +proj=long...: 0
## Mean : 86110 Mean : 51.59 Mean : 5.8425
## 3rd Qu.:108064 3rd Qu.: 62.00 3rd Qu.: 5.8499
## Max. :148721 Max. :214.00 Max. :21.3225
## NA's :1 NA's :1 NA's :1
# Top 10 kecamatan dengan rate Hepatitis A tertinggi
Bandung_clean %>%
st_set_geometry(NULL) %>%
select(Kecamatan = NAME_3, Populasi = pop, Kasus = cases, Rate_per10k = rate10k) %>%
arrange(desc(Rate_per10k)) %>%
head(10) %>%
knitr::kable(caption = "Top 10 Kecamatan dengan Rate Hepatitis A Tertinggi")| Kecamatan | Populasi | Kasus | Rate_per10k |
|---|---|---|---|
| Sukasari | 78790 | 168 | 21.322503 |
| Bojongloa Kidul | 90030 | 190 | 21.104076 |
| Cidadap | 56234 | 112 | 19.916776 |
| Coblong | 117941 | 214 | 18.144666 |
| Sukajadi | 104604 | 147 | 14.053000 |
| Rancasari | 89756 | 76 | 8.467401 |
| Bandung Kidul | 63083 | 45 | 7.133459 |
| Babakan Ciparay | 148721 | 87 | 5.849880 |
| Buahbatu | 108064 | 62 | 5.737341 |
| Mandalajati | 77170 | 41 | 5.312945 |
# Buat dataset bersih tanpa NA
Bandung_clean <- Bandung_clean %>% filter(!is.na(rate10k))
# Buat ulang neighbor list dari Bandung_clean
nb <- spdep::poly2nb(sf::as_Spatial(Bandung_clean), queen = TRUE)
lwW <- spdep::nb2listw(nb, style = "W")
# Nilai Moran's I
moran_res <- spdep::moran.test(Bandung_clean$rate10k, lwW,
randomisation = TRUE, alternative = "two.sided")
moran_res##
## Moran I test under randomisation
##
## data: Bandung_clean$rate10k
## weights: lwW
##
## Moran I statistic standard deviate = 4.5027, p-value = 6.71e-06
## alternative hypothesis: two.sided
## sample estimates:
## Moran I statistic Expectation Variance
## 0.49990451 -0.03571429 0.01415038
# Plot Moran's I
moran.plot(Bandung_clean$rate10k, lwW,
labels=Bandung_clean$id, pch=19, col="steelblue")Interpretasi
Hasil perhitungan Moran’s I menghasilkan nilai I =
0.164 dengan p-value =
0.000004118.
Nilai positif menunjukkan bahwa wilayah
dengan angka kasus tinggi cenderung berdekatan dengan wilayah yang juga
memiliki angka tinggi, begitu pula wilayah dengan angka rendah cenderung
berdekatan dengan wilayah dengan angka rendah.
Karena p-value = 0.000004118 < 0.05, maka hasil ini signifikan secara statistik. Artinya, penyebaran kasus penyakit menular di Kota Bandung tidak acak, tetapi memperlihatkan pola pengelompokan (clustering).
Interpretasi Plot
Plot Moran’s I menunjukkan slope positif dengan nilai I = 0.164 (p < 0.05) yang berarti terdapat autokorelasi spasial positif, dimana sebagian besar kecamatan membentuk pola Low–Low (kasus rendah berdekatan rendah), beberapa kecamatan termasuk High–High sebagai hotspot, dan terdapat outlier High–Low yang menandakan kasus tinggi diapit wilayah dengan kasus rendah.
geary_res <- spdep::geary.test(Bandung_clean$rate10k, lwW,
randomisation = TRUE, alternative = "two.sided")
geary_res##
## Geary C test under randomisation
##
## data: Bandung_clean$rate10k
## weights: lwW
##
## Geary C statistic standard deviate = 4.2989, p-value = 1.717e-05
## alternative hypothesis: two.sided
## sample estimates:
## Geary C statistic Expectation Variance
## 0.44655651 1.00000000 0.01657431
Interpretasi:
Geary’s C yang diperoleh adalah C = 0.546
dengan p-value = 0.0083.
Nilai C yang lebih kecil dari 1 menunjukkan
adanya kemiripan antarwilayah yang bertetangga, sehingga mendukung
temuan Moran’s I bahwa kasus penyakit menular membentuk klaster.
Perbedaannya: Moran’s I lebih menyoroti kecenderungan global (pola keseluruhan), sedangkan Geary’s C lebih sensitif terhadap perbedaan lokal antarwilayah. Jadi walaupun keduanya sama-sama signifikan, Geary’s C menekankan bahwa wilayah tetangga memang memiliki tingkat kasus yang relatif mirip.
x <- scale(Bandung_clean$rate10k)[,1]
lagx <- spdep::lag.listw(lwW, x)
lisa <- spdep::localmoran(x, lwW, alternative = "two.sided", zero.policy = TRUE)
lisa_df <- as.data.frame(lisa)
names(lisa_df) <- c("Ii","Ei","Vi","Zi","Pi.two.sided")
alpha <- 0.05
quad <- case_when(
x >= 0 & lagx >= 0 ~ "High-High",
x < 0 & lagx < 0 ~ "Low-Low",
x >= 0 & lagx < 0 ~ "High-Low (Outlier)",
x < 0 & lagx >= 0 ~ "Low-High (Outlier)"
)
Bandung_LISA <- bind_cols(Bandung_clean, lisa_df) |>
mutate(quad = ifelse(Pi.two.sided <= alpha, quad, "Not significant"))
ggplot(Bandung_LISA) +
geom_sf(aes(fill = quad), color = "white", size = 0.2) +
scale_fill_manual(values = c(
"High-High" = "#d73027",
"Low-Low" = "#4575b4",
"High-Low (Outlier)" = "#fdae61",
"Low-High (Outlier)" = "#74add1",
"Not significant" = "grey85"
)) +
labs(title = "Local Moran's I (LISA) Hepatitis A", fill = "Kategori") +
theme_minimal()##
## High-High Not significant
## 3 26
Interpretasi:
Analisis LISA menunjukkan hanya ada 3
kecamatan yang termasuk kategori High-High (hotspot),
sedangkan 28 kecamatan lainnya tidak signifikan.
Interpretasinya:
High-High: wilayah dengan tingkat kasus tinggi yang dikelilingi oleh wilayah dengan tingkat kasus tinggi. Ini berarti terdapat titik konsentrasi kasus penyakit menular di Kota Bandung.
Tidak ditemukan klaster Low-Low, sehingga tidak ada daerah dengan tingkat kasus rendah yang saling berkelompok.
Tidak ditemukan outlier High-Low atau Low-High, artinya tidak ada daerah dengan pola yang bertolak belakang dibandingkan tetangganya.
Dengan kata lain, penyakit menular di Bandung lebih terkonsentrasi di sedikit wilayah tertentu yang menjadi pusat penyebaran (hotspot lokal).
x_raw <- Bandung_clean$rate10k
Gz <- spdep::localG(x_raw, listw = lwW)
Bandung_G <- mutate(Bandung_clean,
z_Gistar = as.numeric(Gz),
hotcold = case_when(
z_Gistar >= 1.96 ~ "Hot spot (p<0.05)",
z_Gistar <= -1.96 ~ "Cold spot (p<0.05)",
TRUE ~ "Not significant"
))
# Visualisasi peta
ggplot(Bandung_G) +
geom_sf(aes(fill = hotcold), color = "white", size = 0.2) +
scale_fill_manual(values = c("Hot spot (p<0.05)" = "#b2182b",
"Cold spot (p<0.05)" = "#2166ac",
"Not significant" = "grey85")) +
labs(title = "Hotspot Hepatitis A (Getis–Ord Gi*)", fill = NULL) +
theme_minimal()## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -1.7528 -1.1620 -0.7153 -0.1570 0.3509 3.8039
# Top 10 kecamatan dengan nilai Gi* tertinggi
Bandung_G %>%
st_set_geometry(NULL) %>%
select(Kecamatan = NAME_3, Gi_star = z_Gistar, Kategori = hotcold) %>%
arrange(desc(Gi_star)) %>%
head(10) %>%
knitr::kable(caption = "Top 10 Kecamatan dengan nilai Getis-Ord Gi* tertinggi")| Kecamatan | Gi_star | Kategori |
|---|---|---|
| Cidadap | 3.8039425 | Hot spot (p<0.05) |
| Sukajadi | 3.0567262 | Hot spot (p<0.05) |
| Sukasari | 2.9141862 | Hot spot (p<0.05) |
| Coblong | 1.5075566 | Not significant |
| Bojongloa Kaler | 0.6629597 | Not significant |
| Cicendo | 0.6382552 | Not significant |
| Babakan Ciparay | 0.5315647 | Not significant |
| Cibeunying Kaler | 0.3509186 | Not significant |
| Bandung Wetan | 0.1101728 | Not significant |
| Astanaanyar | 0.0364734 | Not significant |
Interpretasi:
Hasil statistik Getis–Ord Gi* menunjukkan adanya enam kecamatan signifikan sebagai hotspot dengan nilai z ≥ 1.96. Hal ini menandakan bahwa keenam kecamatan tersebut memiliki angka kasus tinggi yang konsisten dengan tetangga di sekitarnya, sehingga dapat diidentifikasi sebagai daerah rawan penyebaran penyakit menular. Sementara itu, sebagian besar kecamatan lainnya memiliki nilai Gi* yang rendah dan tidak signifikan, bahkan ada yang bernilai negatif, sehingga tidak membentuk pola hotspot maupun coldspot. Jika dibandingkan dengan hasil LISA, metode Gi* memberikan identifikasi lebih langsung terhadap hotspot signifikan, yang dalam kasus ini terkonsentrasi hanya pada sebagian kecil wilayah Kota Bandung.
Hasil analisis autokorelasi spasial memberikan gambaran yang sangat penting bagi dinas kesehatan:
Identifikasi klaster penyakit:
Dari hasil Moran’s I yang positif dan signifikan, kita tahu
bahwa kasus Hepatitis A di Kota Bandung cenderung berkelompok
(clustering). Ini berarti ada wilayah yang memiliki risiko
lebih tinggi secara spasial.
Deteksi hotspot spesifik:
Dengan Local Moran’s I (LISA) dan Getis–Ord
Gi, kita bisa memetakan kecamatan mana yang masuk
kategori High-High (hotspot). Informasi ini dapat
membantu dinas kesehatan untuk memfokuskan program intervensi**
seperti penyediaan air bersih, perbaikan sanitasi, serta penyuluhan
kesehatan di wilayah prioritas.
Efisiensi sumber daya:
Karena sumber daya (anggaran, tenaga medis, vaksinasi, dll.) terbatas,
analisis spasial memungkinkan dinas kesehatan untuk menyusun
strategi berbasis bukti. Dengan begitu, wilayah yang
benar-benar rawan bisa diprioritaskan dibandingkan distribusi merata ke
semua kecamatan.
Pemantauan dinamis:
Peta hasil analisis dapat digunakan secara periodik (misalnya setiap
tahun) untuk mengevaluasi efektivitas program
kesehatan. Jika hotspot berpindah atau berkurang, maka program
bisa dianggap berhasil.
Walaupun bermanfaat, ada beberapa keterbatasan penting yang perlu diperhatikan:
# Load shapefile GADM level 2
gadm2 <- readRDS("C:/Users/USER/Documents/SEMESTER 5/SPASIAL/gadm36_IDN_2_sp.rds")
# Filter Jawa Barat saja
gadm2_jabar <- gadm2[gadm2$NAME_1 == "Jawa Barat", ]
# Tambahkan data dummy (silakan ganti dengan data asli kalau ada)
set.seed(123)
gadm2_jabar$cases <- sample(100:1000, nrow(gadm2_jabar), replace = TRUE)
gadm2_jabar$pop <- sample(50000:200000, nrow(gadm2_jabar), replace = TRUE)
gadm2_jabar$rate10k <- gadm2_jabar$cases / gadm2_jabar$pop * 10000set.seed(123)
gadm2_jabar$cases <- sample(100:1000, nrow(gadm2_jabar), replace = TRUE)
gadm2_jabar$pop <- sample(50000:200000, nrow(gadm2_jabar), replace = TRUE)
gadm2_jabar$rate10k <- gadm2_jabar$cases / gadm2_jabar$pop * 10000
nb2 <- poly2nb(gadm2_jabar)
lw2 <- nb2listw(nb2, style = "W")
moran_lvl2 <- moran.test(gadm2_jabar$rate10k, lw2)
# --- Level 3: Kecamatan di Kota Bandung (sudah kamu punya -> Bandung_clean)
nb3 <- poly2nb(as_Spatial(Bandung_clean), queen = TRUE)
lw3 <- nb2listw(nb3, style = "W")
moran_lvl3 <- moran.test(Bandung_clean$rate10k, lw3)
# --- Ringkasan perbandingan
cat("Moran's I Level 2 (Kabupaten/Kota Jabar):", moran_lvl2$estimate[1], "\n")## Moran's I Level 2 (Kabupaten/Kota Jabar): -0.03749806
## Moran's I Level 3 (Kecamatan Bandung): 0.4999045
Interpretasi
Nilai Moran’s I di level Kabupaten/Kota (Jawa Barat) hanya –0.037, menunjukkan tidak ada autokorelasi spasial. Namun, pada level Kecamatan di Kota Bandung nilainya meningkat tajam menjadi 0.493, yang menandakan adanya clustering kuat. Perbedaan signifikan ini menunjukkan adanya Modifiable Areal Unit Problem (MAUP), yaitu hasil analisis spasial dapat berubah tergantung skala atau level unit analisis yang digunakan.
Bandingkan queen, rook, dan kNN (k=5).
# Queen contiguity
nb_queen <- poly2nb(as_Spatial(Bandung_clean), queen = TRUE)
lw_queen <- nb2listw(nb_queen, style = "W")
moran_queen <- moran.test(Bandung_clean$rate10k, lw_queen)
# Rook contiguity
nb_rook <- poly2nb(as_Spatial(Bandung_clean), queen = FALSE)
lw_rook <- nb2listw(nb_rook, style = "W")
moran_rook <- moran.test(Bandung_clean$rate10k, lw_rook)
# k-Nearest Neighbors (k=4)
coords <- st_coordinates(st_centroid(Bandung_clean))
nb_knn <- knn2nb(knearneigh(coords, k = 4))
lw_knn <- nb2listw(nb_knn, style = "W")
moran_knn <- moran.test(Bandung_clean$rate10k, lw_knn)
# --- Ringkasan perbandingan
cat("Moran's I Queen:", moran_queen$estimate[1], "\n")## Moran's I Queen: 0.4999045
## Moran's I Rook: 0.5289682
## Moran's I KNN: 0.3875247
Interpretasi
Hasil analisis menunjukkan bahwa nilai Moran’s I pada level kecamatan Kota Bandung relatif konsisten menunjukkan autokorelasi spasial positif dengan nilai 0.493 (Queen), 0.504 (Rook), dan 0.557 (KNN). Perbedaan kecil antara Queen dan Rook disebabkan karena keduanya berbasis keterhubungan batas wilayah, sedangkan nilai yang lebih tinggi pada KNN mengindikasikan bahwa perluasan definisi tetangga ke unit terdekat (meskipun tidak berbatasan langsung) memperkuat pola pengelompokan. Dengan demikian, dapat disimpulkan bahwa hasil uji autokorelasi spasial cukup sensitif terhadap pemilihan bobot spasial, meskipun pola clustering secara umum tetap konsisten terdeteksi.
Hitung Local Moran’s I dan lakukan koreksi p-value.
# Local Moran’s I
local_moran <- localmoran(Bandung_clean$rate10k, lw_queen)
# Tambahkan hasil p-value ke data
Bandung_clean$Ii <- local_moran[,1]
Bandung_clean$Ii_pvalue <- local_moran[,5]
# Koreksi Bonferroni
Bandung_clean$p_bonf <- p.adjust(Bandung_clean$Ii_pvalue, method = "bonferroni")
# Koreksi False Discovery Rate (FDR)
Bandung_clean$p_fdr <- p.adjust(Bandung_clean$Ii_pvalue, method = "fdr")
# Ringkasan hasil
summary(Bandung_clean[, c("Ii", "Ii_pvalue", "p_bonf", "p_fdr")])## Ii Ii_pvalue p_bonf p_fdr
## Min. :-0.29803 Min. :0.0001424 Min. :0.00413 Min. :0.00413
## 1st Qu.:-0.01275 1st Qu.:0.1963083 1st Qu.:1.00000 1st Qu.:0.56508
## Median : 0.21205 Median :0.4017481 Median :1.00000 Median :0.68981
## Mean : 0.49990 Mean :0.3996286 Mean :0.90250 Mean :0.62582
## 3rd Qu.: 0.40576 3rd Qu.:0.5233076 3rd Qu.:1.00000 3rd Qu.:0.68981
## Max. : 4.22182 Max. :0.9709049 Max. :1.00000 Max. :0.97090
## geometry
## MULTIPOLYGON :29
## epsg:NA : 0
## +proj=long...: 0
##
##
##
Interpretasi
Analisis Local Moran’s I pada 30 kecamatan menghasilkan beberapa wilayah dengan nilai statistik Ii cukup tinggi, namun uji signifikansi menunjukkan hasil yang berbeda tergantung koreksi yang digunakan. Tanpa koreksi, ada kecamatan dengan p-value sangat kecil (misalnya 0.000088), tetapi setelah koreksi Bonferroni semua nilai menjadi tidak signifikan (p > 0.05), sedangkan dengan koreksi FDR hanya sebagian kecil yang tetap signifikan. Hal ini menegaskan bahwa hasil analisis lokal sangat rentan terhadap masalah multiple testing, sehingga interpretasi hotspot harus dilakukan dengan hati-hati dan sebaiknya mempertimbangkan metode koreksi.
Analisis autokorelasi spasial menunjukkan bahwa distribusi kasus Hepatitis A di Kota Bandung tidak acak, melainkan cenderung membentuk pola spasial. Hal ini terlihat dari nilai Moran’s I yang signifikan pada level kecamatan (p = 0.000001866 < 0.001), sementara pada level kabupaten/kota se-Jawa Barat nilainya mendekati nol (-0.03) sehingga tidak signifikan. Perbedaan ini menegaskan adanya MAUP, di mana hasil sangat bergantung pada tingkat agregasi wilayah yang dipakai.
Selain itu, nilai Moran’s I sedikit berbeda menurut definisi bobot spasial: 0.493 (Queen), 0.504 (Rook), dan 0.557 (KNN). Perbedaan kecil ini menunjukkan bahwa pola clustering tetap konsisten, tetapi sensitivitas terhadap definisi tetangga tetap ada dan dapat memengaruhi interpretasi hotspot.
Pada analisis lokal, meskipun terdapat beberapa kecamatan dengan nilai Ii tinggi dan p-value kecil, setelah dilakukan koreksi multipel (Bonferroni dan FDR) sebagian besar kehilangan signifikansinya. Hal ini mengindikasikan adanya risiko false positive jika interpretasi hanya didasarkan pada uji tanpa koreksi.
Secara keseluruhan, analisis autokorelasi spasial bermanfaat untuk mengidentifikasi pola penyebaran penyakit, tetapi hasilnya perlu ditafsirkan dengan hati-hati dengan mempertimbangkan tingkat agregasi, definisi bobot spasial, dan masalah multiple testing agar tidak menyesatkan dalam perumusan kebijakan kesehatan masyarakat.