Identitas

Nama: Khalisha Syahla Putri Marindra
NPM: 140610230008
Mata Kuliah: Spasial
Dosen Pengampu: Dr. I Gede Nyoman Mindra Jaya, M.Si.


1. Jelaskan dengan kata-kata Anda apa yang dimaksud dengan autokorelasi spasial positif dan autokorelasi spasial negatif.

Autokorelasi spasial positif adalah kondisi ketika suatu wilayah memiliki nilai yang mirip dengan wilayah sekitarnya (misalnya tinggi–tinggi atau rendah–rendah). Autokorelasi spasial negatif adalah kondisi ketika suatu wilayah memiliki nilai yang berlawanan dengan wilayah sekitarnya (misalnya tinggi dikelilingi rendah atau sebaliknya).


2. Berikan contoh sederhana dari fenomena yang bisa menunjukkan masingmasing pola tersebut

contoh kasus:
angka kasus demam berdarah di suatu kota. Jika satu kecamatan dengan kasus tinggi dikelilingi kecamatan lain yang juga tinggi, itu menunjukkan autokorelasi spasial positif. Sebaliknya, jika kecamatan dengan kasus tinggi justru dikelilingi kecamatan dengan kasus rendah, maka itu menunjukkan autokorelasi spasial negatif.


Tuliskan rumus matematis dari Moran’s 𝐼, Geary’s 𝐶, Local Moran’s 𝐼𝑖, Getis–Ord 𝐺𝑖 dan 𝐺𝑖∗

Rumus Moran’s I:

\[ I = \frac{N}{S_0} \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} \]

Keterangan:

  • \(N\) : jumlah unit spasial (misalnya jumlah kecamatan).
  • \(x_i\) : nilai variabel pada lokasi \(i\) (contoh: jumlah kasus penyakit).
  • \(\bar{x}\) : rata-rata nilai variabel pada seluruh lokasi.
  • \(w_{ij}\) : bobot spasial antara lokasi \(i\) dan \(j\) (misalnya kedekatan atau berbatasan).
  • \(S_0 = \sum_{i=1}^{N} \sum_{j=1}^{N} w_{ij}\) : total bobot spasial.

Rumus Geary’s 𝐶:

\[ C = \frac{(N-1)\sum_{i=1}^{N} \sum_{j=1}^{N} w_{ij}(x_i - x_j)^2} {2 S_0 \sum_{i=1}^{N} (x_i - \bar{x})^2} \] ### Keterangan: - \(N\) : jumlah unit spasial (misalnya kecamatan).
- \(x_i, x_j\) : nilai variabel pada lokasi \(i\) dan \(j\).
- \(\bar{x}\) : rata-rata nilai variabel seluruh lokasi.
- \(w_{ij}\) : bobot spasial antara lokasi \(i\) dan \(j\).
- \(S_0 = \sum_{i=1}^{N} \sum_{j=1}^{N} w_{ij}\) : total bobot spasial.

Rumus Local Moran’s I:

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

Keterangan:

  • \(N\) : jumlah unit spasial (misalnya kecamatan).
  • \(x_i, x_j\) : nilai variabel pada lokasi \(i\) dan \(j\).
  • \(\bar{x}\) : rata-rata nilai variabel seluruh lokasi.
  • \(w_{ij}\) : bobot spasial antara lokasi \(i\) dan \(j\).
  • \(S_0 = \sum_{i=1}^{N} \sum_{j=1}^{N} w_{ij}\) : total bobot spasial.

Rumus Getis–Ord 𝐺𝑖 dan 𝐺𝑖:

Tanpa memasukkan lokasi

\[ G_i(d) = \frac{\sum_{j \neq i} w_{ij}(d)\, x_j}{\sum_{j \neq i} x_j} \]

dengan memasukkan lokasi

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

Keterangan

  • \(x_j\) : nilai variabel pada lokasi \(j\).

  • \(w_{ij}(d)\) : bobot spasial berdasarkan jarak \(d\) (biasanya \(w_{ij} \in \{0,1\}\)).

  • \(N\) : jumlah unit spasial.

Jelaskan perbedaan utama antara ukuran global dan lokal.

#Bagian B. Analisis Data (Simulasi) 1. Gunakan data spasial kecamatan di Kota Bandung (atau gunakan grid simulasi jika data asli tidak tersedia). 2. Buat data simulasi kasus penyakit menular (misalnya diare per 10.000 penduduk) untuk 30 kecamatan di Kota Bandung. Gunakan distribusi Poisson dengan rata-rata berbeda antar kecamatan. 3. Buat peta choropleth dari data simulasi tersebut. 4. Apa pola spasial yang terlihat secara visual?

Simulasi Data Kasus Diare (Bandung)

library(sf)
## Warning: package 'sf' was built under R version 4.4.3
## Linking to GEOS 3.13.0, GDAL 3.10.1, PROJ 9.5.1; sf_use_s2() is TRUE
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.4.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
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.3
library(spdep)
## Warning: package 'spdep' was built under R version 4.4.3
## Loading required package: spData
## Warning: package 'spData' was built under R version 4.4.3
## To access larger datasets in this package, install the spDataLarge
## package with: `install.packages('spDataLarge',
## repos='https://nowosad.github.io/drat/', type='source')`
getwd() 
## [1] "C:/Users/khalisha marindra/Downloads"
setwd("C:/Users/khalisha marindra/Documents")
setwd("C:/Users/khalisha marindra/Documents")
"~/datafix.csv"
## [1] "~/datafix.csv"
data_sim<-read.csv("C:/Users/khalisha marindra/Documents/datafix.csv",sep = ";",dec = ".")
attach(data_sim)
# 1. Load shapefile
Indo_Kec <- readRDS("gadm36_IDN_3_sp.rds")

# 2. Ambil hanya Kota Bandung
Bandung <- Indo_Kec[Indo_Kec$NAME_2 == "Kota Bandung", ]

# 3. Ubah ke sf
Bandung_sf <- st_as_sf(Bandung)

# 4. Samakan nama join
Bandung_sf <- Bandung_sf %>%
  mutate(Kecamatan = NAME_3)

# 5. Join dengan data_sim
Bandung_merged <- left_join(Bandung_sf, data_sim, by = "Kecamatan")

# Tambahkan ID 1:30 di shapefile Bandung
Bandung_sf$id <- 1:30

# Tambahkan juga id di data_sim
data_sim$id <- 1:30

# Join berdasarkan id
Bandung_merged <- left_join(Bandung_sf, data_sim, by = "id")

# Plot
ggplot(Bandung_merged) +
  geom_sf(aes(fill = TB), color = "white") +
  scale_fill_gradient(low = "grey", high = "red") +
  theme_bw() +
  labs(title = "Peta Jumlah Kasus Kota Bandung",
       fill = "Jumlah Kasus")

`

Apa pola spasial yang terlihat secara visual?

Berdasarkan peta jumlah kasus penyakit menular (TB) di Kota Bandung, terlihat bahwa distribusi kasus tidak merata di seluruh kecamatan. Beberapa wilayah, khususnya di bagian utara dan selatan kota, menunjukkan intensitas kasus yang lebih tinggi dengan warna merah tua, sementara wilayah lainnya, terutama di bagian tengah dan barat, didominasi oleh kasus sedang hingga rendah. Pola ini mengindikasikan adanya konsentrasi atau pengelompokan kasus di wilayah tertentu, meskipun sebagian besar kecamatan lainnya tampak tersebar acak. Dengan kata lain, terdapat indikasi awal adanya kluster kasus tinggi di beberapa daerah, yang kemungkinan berkaitan dengan faktor kepadatan penduduk, kondisi lingkungan, atau perilaku kesehatan masyarakat. Temuan ini penting sebagai dasar untuk analisis lebih lanjut agar intervensi kesehatan dapat difokuskan pada wilayah dengan konsentrasi kasus yang lebih tinggi.


Bagian C. Pengukuran Autokorelasi

Hitung Moran’s I

Berapa nilai Moran’s I?

library(spdep)
nb <- poly2nb(as_Spatial(Bandung_merged), queen = TRUE)
lwW <- nb2listw(nb, style = "W")
moran_res <- spdep::moran.test(Bandung_merged$TB, lwW,
randomisation = TRUE, alternative = "two.sided")
moran_res
## 
##  Moran I test under randomisation
## 
## data:  Bandung_merged$TB  
## weights: lwW    
## 
## Moran I statistic standard deviate = -2.0172, p-value = 0.04367
## alternative hypothesis: two.sided
## sample estimates:
## Moran I statistic       Expectation          Variance 
##       -0.26858682       -0.03448276        0.01346826

Apakah signifikan secara statistik (uji permutasi)?

Hasil uji Moran’s I menunjukkan nilai Moran’s I sebesar –0,2686 dengan p-value 0,0437, yang berarti signifikan pada taraf kepercayaan 5 persen. Hal ini mengindikasikan bahwa penyebaran kasus TB di Kota Bandung tidak bersifat acak, melainkan terdapat autokorelasi spasial negatif.

Apa artinya bagi pola spasial penyakit?

Hasil uji Moran’s I untuk kasus TB di Bandung menunjukkan bahwa distribusi penyakit ini signifikan secara statistik dengan p-value 0,0437, mengindikasikan bahwa wilayah dengan angka TB tinggi cenderung berada di dekat wilayah dengan angka TB rendah, bukan berkumpul. Dengan kata lain, kasus TB tidak membentuk klaster tertentu, melainkan tersebar di berbagai wilayah kota. Pola ini penting untuk diketahui karena menunjukkan bahwa intervensi pengendalian TB tidak bisa hanya difokuskan pada satu atau beberapa klaster saja, melainkan perlu pendekatan yang menyeluruh di berbagai area untuk mencegah penyebaran lebih lanjut.

Hitung Geary’s C

geary_res <- spdep::geary.test(Bandung_merged$TB, lwW,
                               randomisation = TRUE,
                               alternative = "two.sided")

geary_res
## 
##  Geary C test under randomisation
## 
## data:  Bandung_merged$TB 
## weights: lwW   
## 
## Geary C statistic standard deviate = -2.1156, p-value = 0.03438
## alternative hypothesis: two.sided
## sample estimates:
## Geary C statistic       Expectation          Variance 
##        1.24472071        1.00000000        0.01338061

Bagaimana perbandingannya dengan Moran’s I?

Hasil uji Geary’s C untuk kasus TB di Bandung menunjukkan bahwa distribusi penyakit ini cenderung menyebar dan tidak membentuk klaster. Nilai Geary’s C sebesar 1,245 dengan p-value 0,034 menandakan bahwa perbedaan angka TB antar wilayah yang berdekatan lebih besar daripada yang diharapkan secara acak, sehingga pola ini signifikan secara statistik. Dengan kata lain, wilayah dengan angka TB tinggi biasanya berada dekat dengan wilayah yang angkanya rendah, bukan berkumpul bersama. Hasil ini sejalan dengan temuan Moran’s I sebelumnya, yang juga menunjukkan pola penyebaran secara global.

Jelaskan perbedaan sensitivitas kedua ukuran ini.

Perbedaan utama antara Moran’s I dan Geary’s C terletak pada sensitivitasnya terhadap pola spasial. Moran’s I lebih fokus pada pola global, artinya ia melihat keseluruhan distribusi TB di seluruh wilayah untuk mengetahui apakah daerah dengan angka TB tinggi atau rendah cenderung berkumpul secara luas. Sementara itu, Geary’s C lebih sensitif pada pola lokal, jadi ia menekankan perbedaan antar wilayah yang bersebelahan. Dengan kata lain, Geary’s C akan cepat mendeteksi jika dua wilayah tetangga memiliki angka TB yang sangat berbeda, meskipun secara keseluruhan kota terlihat tidak ada klaster besar. Pada kasus TB di Bandung, kedua ukuran ini konsisten: TB tidak membentuk klaster besar dan ada perbedaan nyata antar wilayah yang berdekatan.

Hitung Local Moran’s I (LISA).

Identifikasi kecamatan yang masuk kategori High-High, Low-Low, High-Low, dan Low-High.

Buat peta cluster LISA.

# Standardisasi nilai rate10k
x <- scale(Bandung_merged$TB)[,1]

# Hitung lag spasial
lagx <- spdep::lag.listw(lwW, x)

# Hitung Local Moran's I
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")

# Tentukan kuadran
alpha <- 0.05
quad <- dplyr::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)"
)

# Gabungkan hasil ke data spasial grid_data
grid_LISA <- dplyr::bind_cols(Bandung_merged, lisa_df) |>
  dplyr::mutate(quad = ifelse(Pi.two.sided <= alpha, quad, "Not significant"))

# Plot peta cluster LISA
ggplot(grid_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)", fill="Kategori") +
  theme_minimal()

Apa interpretasi hasil ini untuk kasus penyakit menular?

Hasil analisis Local Moran’s I (LISA) menunjukkan bahwa sebagian besar kecamatan tidak memiliki pola spasial yang signifikan dalam penyebaran kasus penyakit menular, sehingga distribusi kasus cenderung acak dan tidak membentuk klaster tertentu. Namun, terdapat dua kecamatan yang masuk dalam kategori low-high outlier, yaitu wilayah dengan kasus rendah tetapi berada di sekitar wilayah dengan kasus tinggi. Hal ini mengindikasikan adanya anomali atau perbedaan karakteristik di wilayah tersebut. Dengan demikian, hasil ini membuktikan bahwa secara umum tidak terdapat konsentrasi kasus penyakit menular di satu area tertentu

Hitung Getis–Ord 𝐺𝑖∗

x_raw <- Bandung_merged$TB
sum_x <- sum(x_raw)
lwB <- spdep::nb2listw(nb, style = "B", zero.policy = TRUE)
# Matriks bobot biner (tidak distandarisasi)
Wb <- spdep::listw2mat(lwB) # diag=0 secara default
# G_i (tanpa i)
num_G <- as.numeric(Wb %*% x_raw) # Σ_{ji} w_ij x_j
den_G <- (sum_x - x_raw) # Σ_{ji} x_j
G_raw <- num_G / den_G
# G_i^* (dengan i) — set w_ii = 1

Wb_star <- Wb; diag(Wb_star) <- 1
num_Gs <- as.numeric(Wb_star %*% x_raw) # Σ_j w_ij^* x_j
den_Gs <- sum_x # Σ_j x_j
G_star_raw <- num_Gs / den_Gs
# Z-skor (yang dihitung spdep::localG)
Gz <- spdep::localG(x_raw, listw = lwW) # z(G_i^*) dengan listw yang diberikan
Bandung_G <- dplyr::mutate(Bandung_merged,
G_raw = G_raw,
G_star_raw = G_star_raw,
z_Gistar = as.numeric(Gz),
hotcold = dplyr::case_when(
z_Gistar >= 1.96 ~ "Hot spot (p0.05)",
z_Gistar <= -1.96 ~ "Cold spot (p0.05)",
TRUE ~ "Not significant"
))
summary(dplyr::select(Bandung_G, G_raw, G_star_raw, z_Gistar))
##      G_raw           G_star_raw         z_Gistar                geometry 
##  Min.   :0.05727   Min.   :0.08045   Min.   :-1.8173   MULTIPOLYGON :30  
##  1st Qu.:0.13287   1st Qu.:0.16229   1st Qu.:-0.6196   epsg:NA      : 0  
##  Median :0.15895   Median :0.18994   Median : 0.2348   +proj=long...: 0  
##  Mean   :0.16576   Mean   :0.19359   Mean   : 0.2335                     
##  3rd Qu.:0.19814   3rd Qu.:0.23073   3rd Qu.: 0.9914                     
##  Max.   :0.30479   Max.   :0.31955   Max.   : 2.2301
ggplot(Bandung_G) +
geom_sf(aes(fill = G_star_raw), color="white", size=0.2) +
scale_fill_viridis_c() +
labs(title="Raw Getis–Ord G* (proporsi massa tetangga)", fill="G*_raw") +
theme_minimal()

ggplot(Bandung_G) +
geom_sf(aes(fill = hotcold), color="white", size=0.2) +
scale_fill_manual(values=c("Hot spot (p0.05)"="#b2182b",
"Cold spot (p0.05)"="#2166ac",
"Not significant"="grey85")) +
labs(title="Getis–Ord Gi* — Hot/Cold Spots (z-skor)", fill=NULL) +
theme_minimal()

Bandingkan hasilnya dengan peta LISA

Secara umum distribusi kasus penyakit menular di wilayah ini cenderung acak, namun terdapat indikasi penting. Peta LISA menunjukkan adanya wilayah outlier (low-high), sementara peta Getis-Ord Gi* menegaskan adanya hotspot signifikan di dua kecamatan. Artinya, meskipun tidak terbentuk klaster besar, ada beberapa titik wilayah yang patut menjadi perhatian khusus karena memiliki kecenderungan konsentrasi kasus tinggi dalam pola penyebarannya.

Apakah ada perbedaan wilayah yang ditandai sebagai klaster signifikan?

Terdapat perbedaan wilayah yang ditandai signifikan antara hasil analisis LISA dan Getis-Ord Gi. Pada peta LISA, wilayah signifikan muncul sebagai kategori low-high outlier, yaitu kecamatan dengan jumlah kasus rendah tetapi dikelilingi oleh wilayah dengan kasus tinggi. Pola ini lebih menekankan adanya perbedaan karakteristik lokal dibandingkan dengan tetangganya. Sementara itu, pada peta Getis-Ord Gi wilayah signifikan ditunjukkan sebagai hotspot, yaitu kecamatan yang memang memiliki konsentrasi kasus tinggi secara signifikan, bukan sekadar dipengaruhi oleh kondisi wilayah sekitar. Dengan demikian, meskipun kedua metode sama-sama menandai dua kecamatan sebagai signifikan, hasilnya berbeda baik dari segi lokasi maupun jenis pola spasial yang teridentifikasi.


Bagian D. Diskusi Kritis

Bagaimana hasil analisis autokorelasi spasial bisa membantu dinas kesehatan dalam menyusun strategi pencegahan dan intervensi penyakit menular di Kota Bandung?

Analisis ini memungkinkan Dinas Kesehatan untuk mengoptimalkan alokasi sumber daya. Pada peta hotspot dari uji Getis-Ord G/* secara langsung mengidentifikasi wilayah-wilayah spesifik dengan konsentrasi kasus yang signifikan, sehingga intervensi dapat difokuskan pada area yang paling membutuhkan. Identifikasi outlier Low-High melalui analisis LISA memberikan wawasan berharga tentang faktor-faktor keberhasilan di wilayah dengan kasus rendah yang dikelilingi oleh wilayah kasus tinggi. Informasi ini memungkinkan Dinas Kesehatan untuk mempelajari dan mereplikasi strategi yang efektif tersebut ke wilayah lain. Terakhir, indikasi autokorelasi spasial negatif dari Moran’s I dan Geary’s C menunjukkan bahwa penyebaran penyakit tidak membentuk klaster besar yang menyatu. Hal ini menegaskan bahwa strategi pencegahan tidak dapat diseragamkan di seluruh kota, melainkan memerlukan pendekatan yang lebih terperinci dan disesuaikan dengan dinamika transmisi lokal. Dengan demikian, analisis ini menyediakan landasan ilmiah untuk pengambilan keputusan yang lebih strategis.

Sebutkan keterbatasan dari analisis autokorelasi spasial, misalnya terkait dengan:

MAUP (Modifiable Areal Unit Problem)

  • Pola autokorelasi bisa berubah jika kita menggunakan batas kecamatan vs kelurahan vs desa.

  • Skala dan cara agregasi data bisa memunculkan pola yang berbeda (misalnya hot spot di tingkat desa bisa hilang ketika datanya diagregasi ke kecamatan).

  • Interpretasi bisa bias karena hasil “terlihat signifikan” hanya akibat definisi unit spasial, bukan fenomena yang sebenarnya

Ukuran bobot spasial (rook, queen, k-nearest neighbors)

  • Rook (hanya sisi) dan queen (sisi + sudut) bisa kasih hasil berbeda.

  • K-nearest neighbors sensitif terhadap jumlah k yang dipilih.

  • Tidak ada aturan baku, jadi bisa menimbulkan hasil yang subyektif.

Masalah multiple testing pada analisis lokal

  • Karena tiap wilayah diuji sendiri-sendiri, makin banyak wilayah makin besar kemungkinan ada hasil “palsu signifikan”.

  • Misalnya, dari 100 wilayah dengan α = 0,05, bisa ada sekitar 5 wilayah yang “kelihatan signifikan” hanya karena kebetulan.

  • Koreksi bisa dilakukan (Bonferroni atau FDR), tapi sering jadi terlalu ketat sehingga klaster kecil jadi tidak terdeteksi.