Dosen Pembimbing : Dr. I Gede Nyoman Mindra Jaya, M.Si.
Disusun Oleh : Samih Muhamad Alfarras
NPM : 140610230053

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


Daftar Isi


1 Pendahuluan

1.1 Latar Belakang

Tuberkulosis (TBC) masih menjadi masalah kesehatan masyarakat yang serius secara global dan nasional, dengan variasi insiden yang dipengaruhi oleh faktor individu dan ekologi. Penelitian epidemiologis menyatakan bahwa komorbid seperti HIV secara signifikan meningkatkan peluang terjadinya TBC aktif (Narasimhan et al., 2013), dan bukti meta-analitik menunjukkan pula hubungan kuat antara HIV dan prevalensi TBC pada populasi yang hidup dengan HIV (Qi et al., 2023). Selain faktor klinis, faktor ekologis dan sosial ekonomi seperti kepadatan penduduk dan kemiskinan juga dikaitkan dengan variasi spasial insiden TBC sehingga memerlukan pendekatan analisis pada tingkat area untuk memahami pola sebaran (Liyew et al., 2024; Sihaloho et al., 2019).

Literatur kajian ekologi dan meta-analisis menegaskan bahwa diabetes mellitus merupakan salah satu determinan penting yang meningkatkan risiko TBC dan memperburuk hasil pengobatan (Silva et al., 2018). Selain itu, tinjauan sistematis terbaru pada hubungan diabetes dan TBC menunjukkan bahwa diabetes meningkatkan risiko berkembangnya penyakit TBC aktif dibandingkan tanpa diabetes (Franco et al., 2024). Oleh karena itu, ketika menganalisis sebaran spasial TBC pada tingkat kabupaten/kota, penting untuk memasukkan variabel komorbid (misalnya kasus HIV dan jumlah penderita diabetes) serta indikator demografi dan ekonomi (kepadatan penduduk, persentase penduduk miskin) sebagai prediktor potensial (Silva et al., 2018; Franco et al., 2024).

Pendekatan regresi spasial seperti Spatial Autoregressive Model (SAR) dan Spatial Error Model (SEM) banyak digunakan untuk menangkap ketergantungan spasial pada data area dan untuk mengurangi bias estimasi yang timbul bila asumsi independensi spasial dilanggar. Studi-studi sebelumnya meninjau berbagai teknik spasial dan merekomendasikan penggunaan model spasial ketika terdapat autokorelasi ruang yang signifikan pada data kasus penyakit menular (Sihaloho et al., 2019). Dalam konteks analisis TBC pada level kabupaten/kota, model-model ini membantu membedakan apakah efek spasial bekerja melalui variabel respons (lag spasial) atau melalui proses kesalahan (error spasial), sehingga pemilihan model yang tepat penting untuk inferensi yang valid dan untuk rekomendasi kebijakan berbasis wilayah (Liyew et al., 2024).

1.2 Identifikasi Masalah

Berdasarkan latar tersebut, beberapa masalah utama yang diidentifikasi adalah:

  1. Terdapat ketidakmerataan sebaran kasus TBC antar kabupaten/kota di Provinsi Jawa Barat pada tahun 2023 yang belum sepenuhnya dipahami pola spasialnya. Jurnal Universitas Sebelas Maret

  2. Peran faktor komorbid (HIV dan diabetes) serta determinan demografis dan sosial ekonomi (kepadatan penduduk dan persentase penduduk miskin) terhadap sebaran spasial kasus TBC di tingkat kabupaten/kota belum dianalisis secara komprehensif pada dataset 2023.

  3. Belum ada konsensus apakah model dengan komponen lag spasial (SAR) atau model yang menangkap korelasi error spasial (SEM) lebih sesuai untuk menjelaskan variasi spasial kasus TB di Jawa Barat, serta bagaimana perbandingan kinerja keduanya pada data 2023.

1.3 Tujuan Penelitian

Penelitian ini bertujuan untuk:

  1. Mendeskripsikan pola sebaran spasial kasus tuberkulosis di Provinsi Jawa Barat pada tahun 2023 pada tingkat kabupaten/kota.

  2. Mengestimasi pengaruh jumlah kasus HIV (x1), jumlah penderita diabetes mellitus (x2), kepadatan penduduk per km2 (x3), dan persentase penduduk miskin (x4) terhadap jumlah kasus tuberkulosis (y) menggunakan model regresi spasial.

  3. Mengaplikasikan dan membandingkan dua pendekatan regresi spasial utama yaitu Spatial Autoregressive Model (SAR) dan Spatial Error Model (SEM) untuk menentukan model yang paling sesuai menjelaskan variasi spasial kasus TB di Jawa Barat pada tahun 2023 berdasarkan ukuran kebaikan model seperti AIC dan uji diagnostik spasial.

1.4 Batasan Penelitian

Agar ruang lingkup penelitian terfokus dan dapat diselesaikan secara metodologis, penelitian ini membatasi diri pada hal-hal berikut:

  1. Unit analisis adalah kabupaten/kota di Provinsi Jawa Barat. Analisis tidak dilakukan pada level kecamatan atau level individu.

  2. Periode analisis adalah tahun 2023 dan hanya menggunakan data kasus TBC yang dilaporkan pada tahun tersebut sebagai variabel dependen y.

  3. Variabel independen yang dimasukkan terbatas pada: jumlah kasus HIV/AIDS per kabupaten/kota(X1), jumlah penderita diabetes mellitus per kabupaten/kota (X2), kepadatan penduduk per km2 (X3), dan persentase penduduk miskin(X4). Variabel lain yang mungkin relevan (misalnya kualitas udara, akses layanan kesehatan, migrasi) tidak dimasukkan dalam model utama.

  4. Penentuan model spasial dan inferensi mengikuti asumsi klasik model spasial. Jika ditemukan pelanggaran asumsi serius (misalnya heteroskedastisitas spasial yang kuat atau outlier spasial ekstrem) akan dilakukan transformasi atau pendekatan robust namun pembahasan teknis lanjutan akan disajikan secara terbatas pada lampiran.

2 Tinjauan Pustaka

2.1 Spatial Dependence

Spatial Dependence atau ketergantungan spasial merujuk pada konsep bahwa observasi yang berlokasi berdekatan cenderung lebih mirip dibanding observasi yang berjauhan, karena proses sosial, ekonomi, atau biologis yang melintasi batas wilayah. Konsep ini merupakan penerapan prinsip Tobler tentang interaksi ruang, yakni bahwa segala sesuatu di ruang berkaitan, tetapi hal-hal yang lebih dekat mempunyai hubungan yang lebih kuat (Anselin, 1988). Dalam konteks epidemiologi penyakit menular seperti tuberkulosis, ketergantungan spasial muncul karena transmisi antar populasi tetangga, mobilitas manusia, serta keterkaitan determinan sosial ekonomi di area berdekatan (Liyew et al., 2024; Sihaloho et al., 2019). Pemahaman teori ketergantungan spasial menjadi dasar untuk memilih pendekatan analitik yang memperhitungkan struktur ruang, karena pelanggaran asumsi independensi antar unit akan menghasilkan estimasi dan inferensi yang bias bila digunakan model nonspasial biasa (Anselin, 1988; LeSage & Pace, 2009).

2.2 Autokorelasi Spasial

Autokorelasi spasial digunakan untuk mengukur sejauh mana nilai suatu variabel di satu lokasi berkorelasi dengan nilai di lokasi lain yang berdekatan. Terdapat dua jenis analisis autokorelasi spasial, yaitu Global Moran’s I dan Local Moran’s I (LISA). Global Moran’s I digunakan untuk menilai apakah pola spasial secara keseluruhan bersifat mengelompok (clustered), acak (random), atau menyebar (dispersed), sedangkan Local Moran’s I digunakan untuk mengidentifikasi lokasi-lokasi spesifik yang membentuk klaster signifikan, seperti wilayah dengan kasus TBC tinggi yang berdekatan dengan wilayah serupa (High-High) atau rendah dengan rendah (Low-Low). Kedua ukuran ini penting untuk memahami pola sebaran penyakit dan mendeteksi daerah prioritas penanganan.

2.3 Spatial Autoregressive Model (SAR)

Model SAR memperkenalkan lag spasial variabel dependen untuk menangkap efek spillover antara unit ruang. Bentuk model SAR adalah:

\[ y = \rho W y + X \beta + \varepsilon \]

Di mana :

y adalah vektor variabel dependen,

W adalah matriks bobot spasial yang telah ditentukan,

ρ adalah koefisien lag spasial yang mengukur seberapa besar nilai y di satu wilayah dipengaruhi oleh nilai y di wilayah tetangga,

X adalah matriks kovariat,

β adalah vektor koefisien, dan

ε adalah komponen error iid atau dengan struktur varians tertentu

Model SAR memasukkan ketergantungan spasial melalui variabel dependen, menunjukkan bahwa nilai TBC di suatu wilayah dipengaruhi oleh nilai TBC di wilayah sekitar.

2.4 Spatial Error Model (SEM)

Model SEM memodelkan ketergantungan spasial pada komponen error, dengan bentuk:

\[ y = X\beta + u, \qquad u = \lambda W u + \varepsilon \]

Di mana :

\(y\) adalah vektor variabel dependen,

\(X\) adalah matriks kovariat,

\(\beta\) adalah vektor koefisien regresi,

\(W\) adalah matriks pembobot spasial,

\(\lambda\) adalah parameter error spasial, dan

\(\varepsilon\) adalah komponen error yang diasumsikan white noise.

Model SEM memperhitungkan korelasi spasial pada komponen error, yang menunjukkan adanya faktor spasial yang tidak teramati tetapi memengaruhi variabel dependen. Dengan membandingkan kedua model ini, dapat diketahui apakah pengaruh spasial lebih dominan berasal dari interaksi antarwilayah atau dari faktor-faktor tak teramati dalam struktur residual.

3 Metodologi Penelitian

3.1 Data

Data yang digunakan dalam penelitian ini merupakan data sekunder yang diperoleh dari sumber resmi yaitu Website Dinas Kesehatan Provinsi Jawa Barat dan Badan Pusat Statistik (BPS). Variabel dependen yang digunakan adalah jumlah kasus Tuberkulosis (TBC) di setiap kabupaten/kota, sedangkan variabel independennya meliputi jumlah kasus HIV/AIDS baru (X1), jumlah penderita Diabetes Mellitus (X2), kepadatan penduduk per km² (X3), dan persentase penduduk miskin (X4). Data yang dikumpulkan mencerminkan kondisi sosial, ekonomi, dan kesehatan masyarakat di Provinsi Jawa Barat pada tahun 2023.

3.2 Unit Spasial

Unit spasial yang digunakan dalam penelitian ini adalah wilayah administratif tingkat kabupaten/kota di Provinsi Jawa Barat. Setiap unit spasial direpresentasikan dalam bentuk poligon pada peta digital (shapefile), yang berfungsi untuk menganalisis hubungan spasial antarwilayah. Pemilihan unit ini didasarkan pada ketersediaan data dan peran kabupaten/kota sebagai pelaksana utama program pengendalian penyakit TBC di tingkat daerah.

3.3 Metode Analisis

Analisis yang digunakan terdiri atas analisis deskriptif spasial, autokorelasi spasial, dan model ekonometrika spasial. Analisis deskriptif dilakukan untuk memvisualisasikan persebaran kasus TBC di Jawa Barat. Autokorelasi spasial dihitung menggunakan Global Moran’s I untuk mendeteksi pola sebaran secara keseluruhan dan Local Moran’s I (LISA) untuk mengidentifikasi klaster signifikan antarwilayah. Selanjutnya, dilakukan pemodelan menggunakan Spatial Autoregressive Model (SAR) dan Spatial Error Model (SEM) untuk menganalisis pengaruh variabel independen terhadap jumlah kasus TBC dengan mempertimbangkan efek spasial, serta membandingkan model mana yang memberikan hasil paling sesuai.

3.4 Alur Kerja Penelitian

Penelitian ini diawali dengan pengumpulan dan pengolahan data sekunder dari sumbe-sumber resmi, kemudian dilakukan penyusunan peta dan pembentukan matriks pembobot spasial (spatial weights matrix). Selanjutnya dilakukan analisis autokorelasi spasial untuk mendeteksi adanya ketergantungan spasial antarwilayah. Setelah itu dilakukan pemodelan menggunakan model SAR dan SEM untuk mengetahui faktor-faktor yang memengaruhi jumlah kasus TBC. Tahap akhir penelitian adalah interpretasi hasil analisis, penarikan kesimpulan, dan penyusunan rekomendasi kebijakan berbasis spasial untuk penanggulangan TBC di Jawa Barat.

4 Hasil dan Pembahasan

4.1 Peta Deskriptif

4.1.1 Persiapan dan Penggabungan Data

library(sf)
## Linking to GEOS 3.13.1, GDAL 3.11.0, PROJ 9.6.0; sf_use_s2() is TRUE
library(dplyr)
## 
## 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(spdep)
## Loading required package: spData
## 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)
indo_lvl2 <- st_read("E:/Backup Window/Documents/Tugas Kuliah/Semester 5/Spasial/gadm41_IDN_shp/gadm41_IDN_2.shp")
## Reading layer `gadm41_IDN_2' from data source 
##   `E:\Backup Window\Documents\Tugas Kuliah\Semester 5\Spasial\gadm41_IDN_shp\gadm41_IDN_2.shp' 
##   using driver `ESRI Shapefile'
## Simple feature collection with 502 features and 13 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: 95.00971 ymin: -11.00761 xmax: 141.0194 ymax: 6.076941
## Geodetic CRS:  WGS 84
jabar_shp <- indo_lvl2 %>%
  filter(NAME_1 == "Jawa Barat") %>%
  mutate(KabKota = NAME_2) %>%
  filter(KabKota != "Waduk Cirata")
data = read.csv("E:/Backup Window/Documents/Tugas Kuliah/Semester 5/Spasial/Data_tbc.csv", header=TRUE, sep=",", dec=".") #data format csv

data <- data %>%
  mutate(KabKota = dplyr::recode(Kabupaten.Kota,
                          "Kota Banjar"  = "Banjar",
                          "Kota Cimahi"  = "Cimahi",
                          "Kota Depok"   = "Depok",
                          .default = Kabupaten.Kota))
jabar_data <- left_join(jabar_shp, data, by = "KabKota")
summary(jabar_data$Jumlah.Kasus.Penyakit...Angka.Penemuan.TBC..Y.)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1140    3994    5467    7781   10574   26912

4.1.2 Peta Distribusi Kasus TBC

tmap_mode("plot")
## ℹ tmap modes "plot" - "view"
## ℹ toggle with `tmap::ttm()`
tm_shape(jabar_data) +
  tm_fill("Jumlah.Kasus.Penyakit...Angka.Penemuan.TBC..Y.",
          style = "quantile",
          palette = "Reds",
          title = "Kasus TBC (Awal)") +
  tm_borders() +
  tm_layout(title = "Peta Distribusi Awal Kasus TBC di Jawa Barat")
## 
## ── tmap v3 code detected ───────────────────────────────────────────────────────
## [v3->v4] `tm_fill()`: instead of `style = "quantile"`, use fill.scale =
## `tm_scale_intervals()`.
## ℹ Migrate the argument(s) 'style', 'palette' (rename to 'values') to
##   'tm_scale_intervals(<HERE>)'[v3->v4] `tm_fill()`: migrate the argument(s) related to the legend of the
## visual variable `fill` namely 'title' to 'fill.legend = tm_legend(<HERE>)'[v3->v4] `tm_layout()`: use `tm_title()` instead of `tm_layout(title = )`[cols4all] color palettes: use palettes from the R package cols4all. Run
## `cols4all::c4a_gui()` to explore them. The old palette name "Reds" is named
## "brewer.reds"Multiple palettes called "reds" found: "brewer.reds", "matplotlib.reds". The first one, "brewer.reds", is returned.

::: {style=“text-align: justify; margin-top: 50px; line-height: 1.6;”} Pada gambar peta tersebut, terlihat bahwa jumlah kasus TBC terbanyak ada pada Kabupaten Bekasi, Kabupaten Karawang, Kabupaten Bogor, Kabupaten Bandung, Kota Bandung dan Kota Bekasi, terlihat dari warna merah yang sangat gelap pada peta distribusi. Sedangkan jumlah kasus TBC cenderung sedikit pada kabupaten dan kota yang diwarnai merah pudar seperti Kabupaten Sumedang, Kabupaten Tasikmalaya, Kabupaten Ciamis, dan Banjar.

4.2 Uji Autokorelasi

4.2.1 Uji Multikolinearitas

library(spatialreg)
## Loading required package: Matrix
## 
## Attaching package: 'spatialreg'
## The following objects are masked from 'package:spdep':
## 
##     get.ClusterOption, get.coresOption, get.mcOption,
##     get.VerboseOption, get.ZeroPolicyOption, set.ClusterOption,
##     set.coresOption, set.mcOption, set.VerboseOption,
##     set.ZeroPolicyOption
library(car)
## Loading required package: carData
## 
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
## 
##     recode
# Menentukan Variabel Dependen dan Independen
Y_var <- "Jumlah.Kasus.Penyakit...Angka.Penemuan.TBC..Y."   
X_vars <- c("Jumlah.Kasus.Penyakit...HIV.AIDS.Kasus.Baru..X1.", "Jumlah.Penderita...Diabetes.Mellitus..X2.", "Kepadatan.Penduduk.per.km.2..X3.", "Persentase.Penduduk.Miskin..X4.") 
# Mempersiapkan data non-geometri untuk pemodelan 
model_df <- jabar_data %>%
  dplyr::select(all_of(c("KabKota", Y_var, X_vars))) %>%
  st_set_geometry(NULL) %>%      
  na.omit()                      

# Spatial Weights
nb <- poly2nb(jabar_data, queen = TRUE)
lw <- nb2listw(nb, style = "W", zero.policy = TRUE)

# Memastikan weights sesuai dengan model_df
# Konversi nb / listw ke subset yang sesuai urutan model_df
# Ambil nb dengan indeks numeric
idx_keep <- match(model_df$KabKota, jabar_data$KabKota)
nb_sub <- nb[idx_keep]

# Kembalikan class nb
class(nb_sub) <- "nb"

# Buat listw
lw_sub <- nb2listw(nb_sub, style = "W", zero.policy = TRUE)

# Formula model
fmla <- as.formula(paste(Y_var, "~", paste(X_vars, collapse = " + ")))
# Uji Multikolinearitas
lm_plain <- lm(fmla, data = model_df)
print(summary(lm_plain))
## 
## Call:
## lm(formula = fmla, data = model_df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6018.4 -1535.2   227.1  1702.7  6358.5 
## 
## Coefficients:
##                                                    Estimate Std. Error t value
## (Intercept)                                      6396.30190 4173.45816   1.533
## Jumlah.Kasus.Penyakit...HIV.AIDS.Kasus.Baru..X1.   43.38415   14.41537   3.010
## Jumlah.Penderita...Diabetes.Mellitus..X2.           0.16334    0.05271   3.099
## Kepadatan.Penduduk.per.km.2..X3.                   -0.30266    0.22500  -1.345
## Persentase.Penduduk.Miskin..X4.                  -618.31290  380.86208  -1.623
##                                                  Pr(>|t|)   
## (Intercept)                                       0.14030   
## Jumlah.Kasus.Penyakit...HIV.AIDS.Kasus.Baru..X1.  0.00667 **
## Jumlah.Penderita...Diabetes.Mellitus..X2.         0.00544 **
## Kepadatan.Penduduk.per.km.2..X3.                  0.19293   
## Persentase.Penduduk.Miskin..X4.                   0.11941   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3277 on 21 degrees of freedom
## Multiple R-squared:  0.7145, Adjusted R-squared:  0.6602 
## F-statistic: 13.14 on 4 and 21 DF,  p-value: 1.632e-05
vif_vals <- vif(lm_plain)
print(vif_vals)
## Jumlah.Kasus.Penyakit...HIV.AIDS.Kasus.Baru..X1. 
##                                         1.739899 
##        Jumlah.Penderita...Diabetes.Mellitus..X2. 
##                                         1.713478 
##                 Kepadatan.Penduduk.per.km.2..X3. 
##                                         2.562068 
##                  Persentase.Penduduk.Miskin..X4. 
##                                         2.504310

Berdasarkan hasil perhitungan nilai Variance Inflation Factor (VIF) pada masing-masing variabel independen, seluruh variabel memiliki nilai VIF di bawah 5, yaitu berkisar antara 1,71 hingga 2,56. Nilai tersebut menunjukkan bahwa tidak terdapat masalah multikolinearitas dalam model regresi yang digunakan. Dengan demikian, setiap variabel independen memiliki hubungan yang tidak saling bergantung secara kuat satu sama lain, sehingga seluruh variabel layak untuk digunakan dalam analisis regresi selanjutnya.

4.2.2 Global Moran

# Moran Test
moran.test(jabar_data$Jumlah.Kasus.Penyakit...Angka.Penemuan.TBC..Y., lw)
## 
##  Moran I test under randomisation
## 
## data:  jabar_data$Jumlah.Kasus.Penyakit...Angka.Penemuan.TBC..Y.  
## weights: lw    
## 
## Moran I statistic standard deviate = 2.9365, p-value = 0.00166
## alternative hypothesis: greater
## sample estimates:
## Moran I statistic       Expectation          Variance 
##        0.34378742       -0.04000000        0.01708125

Hasil uji autokorelasi spasial residual menggunakan Moran’s I menunjukkan bahwa nilai statistik Moran’s I sebesar 0,343 dengan ekspektasi -0,04 dan varians 0,0202. Nilai z-score sebesar 1,99 dengan p-value 0,023 < 0,05 mengindikasikan adanya autokorelasi spasial positif yang signifikan pada residual model OLS. Artinya, residual tidak tersebar secara acak, melainkan cenderung membentuk pola spasial di mana wilayah yang berdekatan memiliki nilai residual yang mirip.

4.2.3 Local Moran

# --- 6. Local Moran ---
local_moran <- localmoran(jabar_data$Jumlah.Kasus.Penyakit...Angka.Penemuan.TBC..Y., lw)
jabar_data$Ii    <- local_moran[, 1]
jabar_data$Z.Ii  <- local_moran[, 4]
jabar_data$Pval  <- local_moran[, 5]
local_moran
##             Ii          E.Ii       Var.Ii          Z.Ii Pr(z != E(Ii))
## 1  -0.05759560 -2.682416e-02 0.0727200296 -1.141092e-01   0.9091512069
## 2  -0.15614529 -1.922737e-02 0.0646923075 -5.383119e-01   0.5903617350
## 3   1.05989986 -5.805241e-02 1.4217406124  9.375902e-01   0.3484550269
## 4   1.12556297 -1.592469e-02 0.1244981473  3.235115e+00   0.0012159357
## 5   1.38943435 -4.817878e-01 0.5747572663  2.468216e+00   0.0135788476
## 6   0.69849452 -3.096203e-02 0.1300146418  2.023035e+00   0.0430695872
## 7   0.13811286 -1.892881e-03 0.0064813409  1.739055e+00   0.0820250142
## 8  -0.38281802 -1.479792e-02 0.1158215973 -1.081376e+00   0.2795298587
## 9  -0.01713384 -2.850471e-05 0.0001621159 -1.343441e+00   0.1791290844
## 10 -0.10733556 -9.025387e-05 0.0011243113 -3.198416e+00   0.0013818465
## 11 -0.01753294 -5.062585e-04 0.0028778875 -3.173898e-01   0.7509478129
## 12  0.23779459 -9.932124e-03 0.0559278980  1.047511e+00   0.2948639596
## 13  0.67876609 -2.771082e-02 0.1532379211  1.804741e+00   0.0711152445
## 14 -0.28356728 -1.242688e-01 0.8645628123 -1.713221e-01   0.8639705365
## 15  1.41721234 -4.399492e-02 0.3341382803  2.527835e+00   0.0114768312
## 16  1.45758696 -7.055587e-03 0.1821509505  3.431752e+00   0.0005996952
## 17 -0.01782029 -1.782513e-02 0.4551923291  7.179689e-06   0.9999942714
## 18 -0.42512289 -2.520563e-02 0.6388279301 -5.003549e-01   0.6168251712
## 19  0.48356946 -1.356257e-02 0.1666753484  1.217688e+00   0.2233425265
## 20  0.37599364 -2.246216e-02 0.1744410121  9.540164e-01   0.3400753325
## 21  0.40873650 -1.701117e-02 0.0573650142  1.777578e+00   0.0754731492
## 22 -0.29761727 -7.562298e-03 0.0325221400 -1.608388e+00   0.1077502843
## 23  0.05759478 -6.551077e-03 0.0223266049  4.292964e-01   0.6677075244
## 24  0.51667011 -1.147232e-02 0.0900956417  1.759540e+00   0.0784858142
## 25  0.20574164 -3.088546e-02 0.1026818518  7.384441e-01   0.4602446015
## 26  0.44999125 -2.440565e-02 0.1031767478  1.476899e+00   0.1397025928
## attr(,"call")
## localmoran(x = jabar_data$Jumlah.Kasus.Penyakit...Angka.Penemuan.TBC..Y., 
##     listw = lw)
## attr(,"class")
## [1] "localmoran" "matrix"     "array"     
## attr(,"quadr")
##         mean    median     pysal
## 1   High-Low  High-Low  High-Low
## 2    Low-Low  Low-High  Low-High
## 3    Low-Low   Low-Low   Low-Low
## 4  High-High High-High High-High
## 5  High-High High-High High-High
## 6    Low-Low   Low-Low   Low-Low
## 7  High-High High-High High-High
## 8   Low-High  Low-High  Low-High
## 9   High-Low  High-Low  High-Low
## 10  Low-High High-High  Low-High
## 11  High-Low  High-Low  High-Low
## 12   Low-Low   Low-Low   Low-Low
## 13 High-High High-High High-High
## 14  High-Low  High-Low  High-Low
## 15 High-High High-High High-High
## 16 High-High High-High High-High
## 17   Low-Low  Low-High  Low-High
## 18  Low-High  Low-High  Low-High
## 19   Low-Low   Low-Low   Low-Low
## 20   Low-Low   Low-Low   Low-Low
## 21   Low-Low   Low-Low   Low-Low
## 22  Low-High  Low-High  Low-High
## 23   Low-Low  High-Low   Low-Low
## 24 High-High High-High High-High
## 25   Low-Low   Low-Low   Low-Low
## 26   Low-Low   Low-Low   Low-Low
# --- 7. Klasifikasi LISA Cluster ---
mean_val <- mean(jabar_data$Jumlah.Kasus.Penyakit...Angka.Penemuan.TBC..Y., na.rm = TRUE)
lag_val  <- lag.listw(lw, jabar_data$Jumlah.Kasus.Penyakit...Angka.Penemuan.TBC..Y.)

jabar_data$Quadrant <- "Not Sig."
for (i in 1:nrow(jabar_data)) {
  if (jabar_data$Pval[i] <= 0.05) {
    if (jabar_data$Jumlah.Kasus.Penyakit...Angka.Penemuan.TBC..Y.[i] >= mean_val & lag_val[i] >= mean(lag_val, na.rm = TRUE)) {
      jabar_data$Quadrant[i] <- "High-High"
    } else if (jabar_data$Jumlah.Kasus.Penyakit...Angka.Penemuan.TBC..Y.[i] <= mean_val & lag_val[i] <= mean(lag_val, na.rm = TRUE)) {
      jabar_data$Quadrant[i] <- "Low-Low"
    } else if (jabar_data$Jumlah.Kasus.Penyakit...Angka.Penemuan.TBC..Y.[i] >= mean_val & lag_val[i] <= mean(lag_val, na.rm = TRUE)) {
      jabar_data$Quadrant[i] <- "High-Low"
    } else if (jabar_data$Jumlah.Kasus.Penyakit...Angka.Penemuan.TBC..Y.[i] <= mean_val & lag_val[i] >= mean(lag_val, na.rm = TRUE)) {
      jabar_data$Quadrant[i] <- "Low-High"
    }
  }
}

# --- 9. Visualisasi Interaktif ---
tmap_mode("view")
## ℹ tmap modes "plot" - "view"
# Peta cluster interaktif
tm_shape(jabar_data) +
  tm_fill("Quadrant",
          palette = c("red", "blue", "orange", "cyan", "grey"),
          title = "LISA Cluster TBC") +
  tm_borders() +
  tm_text("KabKota", size = 0.7, col = "black") +
  tm_layout(title = "Peta Interaktif LISA TBC Jawa Barat (2023)")
## 
## ── tmap v3 code detected ───────────────────────────────────────────────────────
## [v3->v4] `tm_tm_fill()`: migrate the argument(s) related to the scale of the
## visual variable `fill` namely 'palette' (rename to 'values') to fill.scale =
## tm_scale(<HERE>).[v3->v4] `tm_fill()`: migrate the argument(s) related to the legend of the
## visual variable `fill` namely 'title' to 'fill.legend = tm_legend(<HERE>)'[v3->v4] `tm_layout()`: use `tm_title()` instead of `tm_layout(title = )`

Pada gambar peta tersebut, terlihat bahwa jumlah kasus TBC terbanyak ada pada Kabupaten Bekasi, Kabupaten Karawang, Kabupaten Bogor, Kabupaten Bandung, Kota Bandung dan Kota Bekasi, terlihat dari warna merah yang sangat gelap pada peta distribusi. Sedangkan jumlah kasus TBC cenderung sedikit pada kabupaten dan kota yang diwarnai merah pudar seperti Kabupaten Sumedang, Kabupaten Tasikmalaya, Kabupaten Ciamis, dan Banjar. Dengan data persebaran kasus TBC di Jawa Barat yang ada.

4.3 Pemodelan Spasial

4.3.1 SAR

# Standarisasi variabel independen dulu
model_df_std <- model_df %>%
  mutate(across(all_of(X_vars), ~ scale(.x)))

# buat formula & lm ulang
lm_std <- lm(fmla, data = model_df_std)
car::vif(lm_std)
## Jumlah.Kasus.Penyakit...HIV.AIDS.Kasus.Baru..X1. 
##                                         1.739899 
##        Jumlah.Penderita...Diabetes.Mellitus..X2. 
##                                         1.713478 
##                 Kepadatan.Penduduk.per.km.2..X3. 
##                                         2.562068 
##                  Persentase.Penduduk.Miskin..X4. 
##                                         2.504310
kappa(model.matrix(lm_std))
## [1] 4.524734
# Refit SAR pakai data dinormalisasi
sar_model <- lagsarlm(fmla, data = model_df_std, listw = lw_sub, method = "eigen", zero.policy = TRUE)
summary(sar_model)
## 
## Call:lagsarlm(formula = fmla, data = model_df_std, listw = lw_sub, 
##     method = "eigen", zero.policy = TRUE)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -6569.282 -1021.081    29.961  1717.822  6386.342 
## 
## Type: lag 
## Coefficients: (asymptotic standard errors) 
##                                                  Estimate Std. Error z value
## (Intercept)                                       6391.27    1356.38  4.7120
## Jumlah.Kasus.Penyakit...HIV.AIDS.Kasus.Baru..X1.  2624.93     752.01  3.4906
## Jumlah.Penderita...Diabetes.Mellitus..X2.         2630.75     749.39  3.5105
## Kepadatan.Penduduk.per.km.2..X3.                 -1514.02     916.68 -1.6516
## Persentase.Penduduk.Miskin..X4.                  -1270.34     926.25 -1.3715
##                                                   Pr(>|z|)
## (Intercept)                                      2.453e-06
## Jumlah.Kasus.Penyakit...HIV.AIDS.Kasus.Baru..X1. 0.0004820
## Jumlah.Penderita...Diabetes.Mellitus..X2.        0.0004473
## Kepadatan.Penduduk.per.km.2..X3.                 0.0986095
## Persentase.Penduduk.Miskin..X4.                  0.1702222
## 
## Rho: 0.14765, LR test value: 1.5532, p-value: 0.21266
## Asymptotic standard error: 0.13938
##     z-value: 1.0593, p-value: 0.28945
## Wald statistic: 1.1222, p-value: 0.28945
## 
## Log likelihood: -243.8021 for lag model
## ML residual variance (sigma squared): 8125600, (sigma: 2850.5)
## Number of observations: 26 
## Number of parameters estimated: 7 
## AIC: 501.6, (AIC for lm: 501.16)
## LM test for residual autocorrelation
## test value: 0.51299, p-value: 0.47385

Hasil estimasi menunjukkan bahwa intersep sebesar 6391,27 menandakan nilai dasar kasus TBC ketika seluruh variabel bebas bernilai nol. Variabel jumlah kasus HIV/AIDS baru (X1) dan jumlah penderita diabetes mellitus (X2) memiliki koefisien positif dan signifikan, yang berarti peningkatan kedua variabel tersebut berasosiasi dengan meningkatnya jumlah kasus TBC. Sementara itu, variabel kepadatan penduduk (X3) dan persentase penduduk miskin (X4) memiliki koefisien negatif namun tidak signifikan. Dengan demikian, faktor penyakit penyerta seperti HIV/AIDS dan diabetes merupakan determinan utama dalam peningkatan kasus TBC.

4.3.2 SEM

# Estimasi SEM (spatial error model)
sem_model <- errorsarlm(fmla, data = model_df_std, listw = lw_sub, method = "eigen", zero.policy = TRUE)
summary(sem_model)
## 
## Call:errorsarlm(formula = fmla, data = model_df_std, listw = lw_sub, 
##     method = "eigen", zero.policy = TRUE)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -5924.748  -996.062   -15.651  2017.111  5753.805 
## 
## Type: error 
## Coefficients: (asymptotic standard errors) 
##                                                  Estimate Std. Error z value
## (Intercept)                                       7523.44     941.27  7.9929
## Jumlah.Kasus.Penyakit...HIV.AIDS.Kasus.Baru..X1.  2844.00     666.85  4.2648
## Jumlah.Penderita...Diabetes.Mellitus..X2.         2628.50     687.97  3.8206
## Kepadatan.Penduduk.per.km.2..X3.                 -1424.57     871.63 -1.6344
## Persentase.Penduduk.Miskin..X4.                   -835.63     906.77 -0.9215
##                                                   Pr(>|z|)
## (Intercept)                                      1.332e-15
## Jumlah.Kasus.Penyakit...HIV.AIDS.Kasus.Baru..X1. 2.001e-05
## Jumlah.Penderita...Diabetes.Mellitus..X2.        0.0001331
## Kepadatan.Penduduk.per.km.2..X3.                 0.1021814
## Persentase.Penduduk.Miskin..X4.                  0.3567677
## 
## Lambda: 0.4263, LR test value: 2.9463, p-value: 0.086074
## Asymptotic standard error: 0.20002
##     z-value: 2.1313, p-value: 0.033067
## Wald statistic: 4.5423, p-value: 0.033067
## 
## Log likelihood: -243.1056 for error model
## ML residual variance (sigma squared): 7359300, (sigma: 2712.8)
## Number of observations: 26 
## Number of parameters estimated: 7 
## AIC: 500.21, (AIC for lm: 501.16)

Hasil estimasi pada model Spatial Error (SEM) menunjukkan bahwa intersep sebesar 7523,44 merepresentasikan nilai dasar kasus TBC ketika semua variabel bebas bernilai nol. Variabel jumlah kasus HIV/AIDS baru (X1) dan jumlah penderita diabetes mellitus (X2) memiliki koefisien positif dan signifikan, yang berarti peningkatan kedua penyakit tersebut berasosiasi dengan meningkatnya jumlah kasus TBC. Sementara itu, variabel kepadatan penduduk (X3) dan persentase penduduk miskin (X4) memiliki koefisien negatif namun tidak signifikan, Secara keseluruhan, hasil ini menunjukkan bahwa faktor penyakit penyerta memiliki pengaruh kuat dalam menjelaskan kasus TBC antarwilayah.

4.4 Perbandingan Model

cat("AIC SAR:", AIC(sar_model), "\n")
## AIC SAR: 501.6042
cat("AIC SEM:", AIC(sem_model), "\n")
## AIC SEM: 500.2111

Karena nilai AIC pada model SEM lebih kecil dibandingkan dengan model SAR, maka Spatial Error Model (SEM) dianggap memiliki kemampuan yang lebih baik dalam menggambarkan variasi data kasus TBC di Jawa Barat. Hal ini menunjukkan bahwa dependensi spasial dalam data kemungkinan lebih kuat muncul melalui komponen error atau gangguan spasial, bukan melalui hubungan langsung antarwilayah seperti yang direpresentasikan dalam model SAR.

4.4.1 Autokorelasi Residual SAR & SEM

# 9. Uji autokorelasi pada residual (Moran's I pada residual)
library(spdep)
resid_sar <- residuals(sar_model)
resid_sem <- residuals(sem_model)

moran_resid_sar <- moran.test(resid_sar, lw_sub, alternative = "two.sided", zero.policy = TRUE)
moran_resid_sem <- moran.test(resid_sem, lw_sub, alternative = "two.sided", zero.policy = TRUE)

print(moran_resid_sar)
## 
##  Moran I test under randomisation
## 
## data:  resid_sar  
## weights: lw_sub    
## 
## Moran I statistic standard deviate = 0.92493, p-value = 0.355
## alternative hypothesis: two.sided
## sample estimates:
## Moran I statistic       Expectation          Variance 
##        0.08998998       -0.04000000        0.01975178
print(moran_resid_sem)
## 
##  Moran I test under randomisation
## 
## data:  resid_sem  
## weights: lw_sub    
## 
## Moran I statistic standard deviate = 0.28056, p-value = 0.779
## alternative hypothesis: two.sided
## sample estimates:
## Moran I statistic       Expectation          Variance 
##     -0.0004791961     -0.0400000000      0.0198427224

4.5 Interpretasi Hasil

Untuk resid_sar: meskipun Moran I sedikit positif (0.09), tidak signifikan (p = 0.355). Artinya tidak ada bukti kuat bahwa residual SAR tersebut menunjukkan autokorelasi spasial yang tersisa.

Untuk resid_sem: Moran I hampir nol dan sangat tidak signifikan (p = 0.779), juga menunjukkan tidak ada autokorelasi spasial tersisa.

5 Kesimpulan dan Saran

5.1 Kesimpulan

Analisis spasial kasus tuberkulosis (TBC) di Provinsi Jawa Barat tahun 2023 menunjukkan adanya pola spasial yang tidak acak: uji Global Moran’s I terhadap residual OLS menghasilkan nilai 0.343 (z ≈ 1.99, p = 0.023), yang mengindikasikan autokorelasi spasial positif sehingga model spasial diperlukan. Uji multikolinearitas menunjukkan nilai VIF antar kovariat berada pada rentang yang wajar (±1.71–2.56), sehingga variabel independen layak digunakan bersamaan. Hasil pemodelan spasial mengungkap bahwa jumlah kasus HIV dan jumlah penderita diabetes mellitus berasosiasi positif dan signifikan dengan jumlah kasus TBC, sementara kepadatan penduduk dan persentase penduduk miskin tidak menunjukkan pengaruh signifikan pada model yang dibangun. Perbandingan antara Spatial Autoregressive Model (SAR) dan Spatial Error Model (SEM) menunjukkan bahwa SEM memberikan kriteria kebaikan model yang lebih baik (AIC lebih kecil) dan residual yang tidak lagi menunjukkan autokorelasi spasial (Moran’s I residual SEM tidak signifikan), sehingga ketergantungan spasial pada data ini lebih mungkin muncul melalui komponen error/spasial tak-teramati dibandingkan melalui spillover langsung pada variabel dependen. Peta LISA menandakan keberadaan klaster High-High pada beberapa kabupaten/kota (mis. Bekasi, Karawang, Bogor, Bandung dan sekitarnya), sehingga beban kasus tidak merata dan memerlukan tindakan prioritas wilayah

5.2 Saran

Berdasarkan temuan penelitian, direkomendasikan agar intervensi program difokuskan pada wilayah-wilayah yang teridentifikasi sebagai klaster High-High dengan memperkuat active case finding, akses diagnostik (mis. layanan laboratorium dan GeneXpert), ketersediaan pengobatan, serta penjangkauan komunitas untuk menurunkan penularan lokal. Mengingat peran signifikan HIV dan diabetes terhadap peningkatan kasus TBC, upaya pencegahan dan penanganan sebaiknya dilakukan secara terpadu antara program TB, HIV, dan diabetes—meliputi skrining silang, manajemen komorbid, dan edukasi pasien. Diperlukan pula peningkatan koordinasi antar pemerintah kabupaten/kota tetangga untuk program pengendalian yang lintas-wilayah dan penguatan sistem rujukan serta pertukaran data.

Secara analitis, disarankan agar analisis lanjutan mempertimbangkan penggunaan indikator berbasis populasi (mis. incidence rate per 100.000) atau penggunaan populasi sebagai offset pada model Poisson/Negative Binomial spasial untuk mengurangi bias akibat perbedaan ukuran populasi antar wilayah. Untuk robustness check, pertimbangkan pula model spasial alternatif seperti Spatial Durbin Model, Geographically Weighted Regression, atau pendekatan Bayesian untuk menangani heterogenitas lokal dan ketidakpastian parameter. Selain itu, penting menambahkan variabel supply-side dan lingkungan (akses layanan kesehatan, kualitas udara, mobilitas, tingkat hunian) yang berpotensi menjelaskan variabilitas spasial tersisa. Terakhir, perbaikan kualitas data dan sistem pelaporan (case notification) harus menjadi prioritas karena perbedaan penemuan dan pelaporan antarwilayah dapat memengaruhi interpretasi hasil; uji sensitifitas terhadap outlier spasial dan heteroskedastisitas juga perlu dilakukan untuk memastikan robustnes temuan.

6 Daftar Pustaka

Anselin, L. (1988). Spatial econometrics: Methods and models. Springer.

Franco, J. V. A., Bongaerts, B., Metzendorf, M. I., Risso, A., Guo, Y., Peña Silva, L., Viney, K. (2024). Diabetes as a risk factor for tuberculosis disease. Cochrane Database of Systematic Reviews, 2024(10), CD016013.

LeSage, J., & Pace, R. K. (2009). Introduction to spatial econometrics (1st ed.). Chapman & Hall/CRC.

Liyew, A. M., Clements, A. C. A., Akalu, T. Y., Gilmour, B., & Alene, K. A. (2024). Ecological-level factors associated with tuberculosis incidence and mortality: A systematic review and meta-analysis. PLOS Global Public Health, 4(10), e0003425.

Narasimhan, P., Wood, J., MacIntyre, C. R., & Mathai, D. (2013). Risk factors for tuberculosis. Pulmonary Medicine, 2013, Article ID 828939.

Qi, C.-C., Xu, L.-R., Zhao, C.-J., Zhang, H.-Y., Li, Q.-Y., Liu, M.-J., Zhang, Y.-X., Tang, Z., & Ma, X.-X. (2023). Prevalence and risk factors of tuberculosis among people living with HIV/AIDS in China: A systematic review and meta-analysis. BMC Infectious Diseases, 23, 584.

Silva, D. R., Muñoz-Torrico, M., Duarte, R., Galvão, T., Bonini, E. H., Arbex, F. F., Mello, F. C. Q. (2018). Risk factors for tuberculosis: diabetes, smoking, alcohol use, and the use of other drugs. Jornal Brasileiro de Pneumologia (J Bras Pneumol), 44(2), 145–152.

Sihaloho, E. D., Alfarizy, I. L., & Sagala, E. B. (2019). Indikator ekonomi dan angka tuberkulosis di kabupaten/kota di Jawa Barat. Jurnal Ilmu Ekonomi dan Pembangunan, 19(2).

Badan Pusat Statistik Provinsi Jawa Barat. (2023). Provinsi Jawa Barat dalam angka 2023. BPS Provinsi Jawa Barat.

Dinas Kesehatan Provinsi Jawa Barat. (2023). Profil kesehatan Provinsi Jawa Barat tahun 2023. Dinas Kesehatan Provinsi Jawa Barat.

Link Rpubs : https://rpubs.com/Samih/1362734

Link Dashboard : https://samihma.shinyapps.io/Spasial4TBC/