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
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).
Berdasarkan latar tersebut, beberapa masalah utama yang diidentifikasi adalah:
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
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.
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.
Penelitian ini bertujuan untuk:
Mendeskripsikan pola sebaran spasial kasus tuberkulosis di Provinsi Jawa Barat pada tahun 2023 pada tingkat kabupaten/kota.
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.
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.
Agar ruang lingkup penelitian terfokus dan dapat diselesaikan secara metodologis, penelitian ini membatasi diri pada hal-hal berikut:
Unit analisis adalah kabupaten/kota di Provinsi Jawa Barat. Analisis tidak dilakukan pada level kecamatan atau level individu.
Periode analisis adalah tahun 2023 dan hanya menggunakan data kasus TBC yang dilaporkan pada tahun tersebut sebagai variabel dependen y.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
# 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.
# --- 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 = )`