Kusta (leprosy atau Hansen disease) merupakan penyakit infeksi kronis akibat Mycobacterium leprae yang menyerang kulit, saraf tepi, mata, dan mukosa saluran pernapasan bagian atas (Kementerian Kesehatan, 2023). Penyakit ini termasuk Neglected Tropical Diseases (NTDs) yang masih menjadi prioritas WHO dalam Global Leprosy Strategy 2021-2030 menuju target zero leprosy (Kementerian Kesehatan, 2025).
Pada tahun 2023 masih dilaporkan 182.815 kasus baru kusta dari 184 negara dan wilayah di dunia. Sebanyak 79,3% kasus baru global terkonsentrasi di India, Brasil, dan Indonesia. Indonesia melaporkan 14.376 kasus baru dan menempati peringkat ketiga tertinggi di dunia (World Health Organization, 2024). Kondisi ini menunjukkan bahwa kusta masih menjadi tantangan kesehatan masyarakat yang serius karena keterlambatan deteksi dapat menyebabkan kecacatan permanen dan stigma sosial.
Permasalahan kusta di Indonesia juga memiliki dimensi geografis. Distribusi kusta tidak merata antarprovinsi dan cenderung membentuk pola pengelompokan wilayah. Pada tahun 2024, median prevalensi kusta nasional sebesar 0,48 kasus per 10.000 penduduk, sedangkan provinsi dengan prevalensi tertinggi mencapai 16,96 kasus per 10.000 penduduk atau sekitar 35 kali median nasional (Kementerian Kesehatan, 2025). Kesenjangan ini menunjukkan bahwa beban kusta terkonsentrasi pada wilayah tertentu, terutama daerah endemis di Indonesia bagian timur (Isturini, 2025).
Selain faktor biologis, prevalensi kusta berkaitan dengan kondisi sosial ekonomi, kualitas lingkungan permukiman, sanitasi, dan akses pelayanan kesehatan. Provinsi yang berdekatan dapat memiliki karakteristik sosial, lingkungan, dan sistem layanan kesehatan yang mirip sehingga prevalensi kusta antarwilayah berpotensi saling berkaitan. Fenomena ini dikenal sebagai autokorelasi spasial. Mengabaikan dependensi spasial dapat menghasilkan inferensi yang kurang tepat karena asumsi independensi antarobservasi tidak terpenuhi.
Tujuan analisis ini adalah:
Pertanyaan analisis yang diajukan adalah: Faktor sosial, lingkungan, dan akses kesehatan apa yang berkaitan dengan prevalensi kusta di Indonesia tahun 2024 setelah dependensi spasial antarprovinsi diperhitungkan?
Penelitian ini menggunakan data sekunder tingkat provinsi di Indonesia tahun 2024. Unit observasi adalah 38 provinsi. Variabel respon adalah prevalensi kusta per 10.000 penduduk. Variabel penjelas merepresentasikan aspek hunian layak, sanitasi, kepadatan hunian, dan akses jaminan kesehatan.
Data prevalensi kusta diperoleh dari Profil Kesehatan Indonesia 2024 yang diterbitkan oleh Kementerian Kesehatan Republik Indonesia. Variabel sosial, lingkungan, dan akses kesehatan diperoleh dari publikasi Badan Pusat Statistik. Data spasial provinsi digunakan untuk menyusun matriks bobot spasial berbasis ketetanggaan.
data_kusta <- readr::read_csv(
csv_path,
show_col_types = FALSE
) |>
mutate(.join_key = normalize_key(Provinsi))
shape_prov <- sf::st_read(
shp_path,
quiet = TRUE
) |>
sf::st_zm(drop = TRUE, what = "ZM") |>
sf::st_make_valid()
shape_key <- if ("WADMPR" %in% names(shape_prov)) "WADMPR" else names(sf::st_drop_geometry(shape_prov))[1]
shape_prov <- shape_prov |>
mutate(.join_key = normalize_key(.data[[shape_key]]))
missing_in_shape <- setdiff(data_kusta$.join_key, shape_prov$.join_key)
missing_in_data <- setdiff(shape_prov$.join_key, data_kusta$.join_key)
stopifnot(
length(missing_in_shape) == 0,
length(missing_in_data) == 0,
!anyDuplicated(data_kusta$.join_key),
!anyDuplicated(shape_prov$.join_key)
)
shape_index <- match(data_kusta$.join_key, shape_prov$.join_key)
spatial_data <- shape_prov[shape_index, ] |>
select(-all_of(setdiff(names(st_drop_geometry(shape_prov)), ".join_key"))) |>
left_join(data_kusta, by = ".join_key")
internal_x <- paste0(".X", seq_along(x_vars))
model_data <- spatial_data
model_data$.Y <- as.numeric(model_data[[y_var]])
for (i in seq_along(x_vars)) {
model_data[[internal_x[i]]] <- as.numeric(model_data[[x_vars[i]]])
}
model_formula <- reformulate(internal_x, response = ".Y")Data yang berhasil dibaca terdiri atas 38 provinsi, satu variabel respon, dan 4 variabel penjelas. Penggabungan data tabular dan data spasial dilakukan berdasarkan nama provinsi yang dinormalisasi, bukan berdasarkan urutan baris, sehingga risiko salah pasangan wilayah dapat dikurangi.
variable_table <- tibble(
Kode = c("Y", "X1", "X2", "X3", "X4"),
Variabel = c(y_var, x_vars),
Satuan = c(
"Kasus per 10.000 penduduk",
"%",
"%",
"%",
"%"
)
)
knitr::kable(
variable_table,
caption = "Variabel Penelitian"
)| Kode | Variabel | Satuan |
|---|---|---|
| Y | Prevalensi Kusta | Kasus per 10.000 penduduk |
| X1 | Persentase Rumah Tangga yang Memiliki Akses Terhadap Hunian Yang Layak | % |
| X2 | Persentase Rumah Tangga Tidak Ada Fasilitas Tempat Buang Air Besar | % |
| X3 | Persentase Rumah Tangga dengan Luas Lantai per Kapita Rumah Bangunan Tempat Tinggal Kurang Dari Sama Dengan 7.2 Meter Persegi | % |
| X4 | Persentase Penduduk yang Memiliki Jaminan Kesehatan Nasional | % |
data_kusta |>
select(Provinsi, all_of(c(y_var, x_vars))) |>
slice_head(n = 6) |>
knitr::kable(
digits = 3,
caption = "Enam Observasi Pertama Data Penelitian"
)| Provinsi | Prevalensi Kusta | Persentase Rumah Tangga yang Memiliki Akses Terhadap Hunian Yang Layak | Persentase Rumah Tangga Tidak Ada Fasilitas Tempat Buang Air Besar | Persentase Rumah Tangga dengan Luas Lantai per Kapita Rumah Bangunan Tempat Tinggal Kurang Dari Sama Dengan 7.2 Meter Persegi | Persentase Penduduk yang Memiliki Jaminan Kesehatan Nasional |
|---|---|---|---|---|---|
| Aceh | 0.45 | 67.76 | 7.50 | 6.96 | 97.19 |
| Sumatera Utara | 0.08 | 73.47 | 4.38 | 7.01 | 65.75 |
| Sumatera Barat | 0.12 | 62.29 | 6.87 | 4.54 | 75.76 |
| Riau | 0.18 | 74.80 | 1.31 | 5.37 | 68.38 |
| Jambi | 0.16 | 66.21 | 4.76 | 3.66 | 58.06 |
| Sumatera Selatan | 0.31 | 63.21 | 4.59 | 8.69 | 71.49 |
data_quality <- tibble(
Pemeriksaan = c(
"Jumlah provinsi pada data tabular",
"Jumlah provinsi pada shapefile",
"Jumlah nilai hilang pada variabel analisis",
"Jumlah nama provinsi duplikat pada CSV",
"Jumlah nama provinsi CSV yang tidak ditemukan pada shapefile"
),
Hasil = c(
nrow(data_kusta),
nrow(shape_prov),
sum(is.na(data_kusta[, c(y_var, x_vars)])),
sum(duplicated(data_kusta$.join_key)),
length(missing_in_shape)
)
)
knitr::kable(
data_quality,
caption = "Ringkasan Pemeriksaan Kualitas Data"
)| Pemeriksaan | Hasil |
|---|---|
| Jumlah provinsi pada data tabular | 38 |
| Jumlah provinsi pada shapefile | 38 |
| Jumlah nilai hilang pada variabel analisis | 0 |
| Jumlah nama provinsi duplikat pada CSV | 0 |
| Jumlah nama provinsi CSV yang tidak ditemukan pada shapefile | 0 |
Tidak terdapat ketidaksesuaian nama provinsi antara data tabular dan data spasial. Seluruh provinsi pada CSV dapat dipasangkan dengan geometri provinsi pada shapefile, sehingga data siap digunakan untuk analisis spasial.
desc_table <- data_kusta |>
select(all_of(c(y_var, x_vars))) |>
pivot_longer(
cols = everything(),
names_to = "Variabel",
values_to = "Nilai"
) |>
mutate(
Kode = unname(setNames(c("Y", "X1", "X2", "X3", "X4"), c(y_var, x_vars))[Variabel])
) |>
group_by(Kode, Variabel) |>
summarise(
Mean = mean(Nilai, na.rm = TRUE),
Median = median(Nilai, na.rm = TRUE),
Minimum = min(Nilai, na.rm = TRUE),
Maksimum = max(Nilai, na.rm = TRUE),
`Simpangan baku` = sd(Nilai, na.rm = TRUE),
.groups = "drop"
)
knitr::kable(
desc_table |>
mutate(across(where(is.numeric), ~ round(.x, 3))),
caption = "Ringkasan Statistik Deskriptif Variabel Penelitian"
)| Kode | Variabel | Mean | Median | Minimum | Maksimum | Simpangan baku |
|---|---|---|---|---|---|---|
| X1 | Persentase Rumah Tangga yang Memiliki Akses Terhadap Hunian Yang Layak | 61.661 | 65.320 | 4.44 | 86.68 | 16.184 |
| X2 | Persentase Rumah Tangga Tidak Ada Fasilitas Tempat Buang Air Besar | 5.329 | 3.880 | 0.17 | 34.45 | 6.605 |
| X3 | Persentase Rumah Tangga dengan Luas Lantai per Kapita Rumah Bangunan Tempat Tinggal Kurang Dari Sama Dengan 7.2 Meter Persegi | 8.907 | 6.640 | 1.49 | 42.78 | 8.366 |
| X4 | Persentase Penduduk yang Memiliki Jaminan Kesehatan Nasional | 76.962 | 75.500 | 58.06 | 97.28 | 9.891 |
| Y | Prevalensi Kusta | 1.943 | 0.475 | 0.03 | 16.96 | 3.667 |
Rata-rata prevalensi kusta adalah 1,943 kasus per 10.000 penduduk, sedangkan mediannya sebesar 0,475. Nilai maksimum mencapai 16,960, yang menunjukkan adanya ketimpangan prevalensi antarprovinsi. Perbedaan antara rata-rata dan median mengindikasikan bahwa distribusi prevalensi kusta cenderung menceng ke kanan: sebagian besar provinsi memiliki prevalensi relatif rendah, sementara beberapa provinsi memiliki nilai yang jauh lebih tinggi.
ggplot(
data_kusta,
aes(x = .data[[y_var]])
) +
geom_histogram(
bins = 10,
fill = "#F3A8C8",
color = "#FFFFFF"
) +
geom_vline(
xintercept = mean(data_kusta[[y_var]], na.rm = TRUE),
color = "#B20A62",
linewidth = 1
) +
geom_vline(
xintercept = median(data_kusta[[y_var]], na.rm = TRUE),
color = "#2E86C1",
linetype = 2,
linewidth = 1
)+
labs(
x = "Prevalensi kusta per 10.000 penduduk",
y = "Jumlah provinsi"
)Distribusi Prevalensi Kusta Antarprovinsi di Indonesia Tahun 2024
Scatter plot menunjukkan bahwa prevalensi kusta cenderung meningkat seiring meningkatnya proporsi rumah tangga dengan luas lantai per kapita ≤ 7,2 m² (\(X_3\)) dan rumah tangga tanpa fasilitas tempat buang air besar (\(X_2\)), sedangkan kecenderungan yang berlawanan terlihat pada akses terhadap hunian layak (\(X_1\)). Sementara itu, hubungan dengan kepesertaan Jaminan Kesehatan Nasional (\(X_4\)) tampak relatif lemah.
Meskipun demikian, pola tersebut hanya bersifat eksploratif karena belum mempertimbangkan pengaruh simultan antarvariabel maupun dependensi spasial antarprovinsi. Oleh karena itu, interpretasi substantif selanjutnya didasarkan pada hasil model regresi spasial.
map_data <- model_data |>
mutate(
Kelas = factor(
dplyr::ntile(.Y, 5),
levels = 1:5,
labels = c(
"Sangat rendah",
"Rendah",
"Sedang",
"Tinggi",
"Sangat tinggi"
)
)
)
ggplot(map_data) +
geom_sf(
aes(fill = Kelas),
color = "#FFFFFF",
linewidth = 0.25
) +
scale_fill_manual(
values = c(
"Sangat rendah" = "#9EDFF0",
"Rendah" = "#B9E7A9",
"Sedang" = "#FFE08A",
"Tinggi" = "#FFB38A",
"Sangat tinggi" = "#F08AA0"
),
name = "Kelompok nilai"
) +
labs(
title = "Prevalensi Kusta",
subtitle = "Klasifikasi kuantil lima kelompok"
) +
theme_void() +
theme(
plot.title = element_text(face = "bold", size = 16, color = "#B20A62"),
plot.subtitle = element_text(color = "#68475F", size = 11),
legend.position = "bottom",
legend.title = element_text(face = "bold")
)Peta Distribusi Spasial Prevalensi Kusta di Indonesia Tahun 2024
Peta tematik menunjukkan bahwa prevalensi kusta tidak tersebar secara acak. Wilayah dengan prevalensi tinggi cenderung terkonsentrasi di Indonesia bagian timur, terutama kawasan Papua dan sebagian Maluku. Sebaliknya, wilayah dengan prevalensi rendah lebih banyak ditemukan di bagian barat Indonesia. Pola tersebut menjadi indikasi awal adanya autokorelasi spasial positif.
plot_df <- model_data |>
st_drop_geometry() |>
select(.Y, all_of(internal_x)) |>
pivot_longer(
cols = all_of(internal_x),
names_to = "Kode",
values_to = "Nilai"
) |>
mutate(
Variabel = unname(var_labels[Kode])
)
ggplot(
plot_df,
aes(x = Nilai, y = .Y)
) +
geom_point(
color = "#B20A62",
size = 2.2,
alpha = 0.82
) +
geom_smooth(
method = "lm",
se = TRUE,
color = "#B20A62",
fill = "#FADDE8"
) +
facet_wrap(~ Variabel, scales = "free_x", ncol = 2) +
labs(
x = "Nilai prediktor",
y = "Prevalensi kusta"
)Hubungan Prevalensi Kusta dengan Variabel Penjelas
Hubungan bivariat pada grafik di atas digunakan sebagai eksplorasi awal. Interpretasi akhir tidak didasarkan hanya pada pola scatter plot karena hubungan antarwilayah berpotensi tidak independen. Oleh karena itu, analisis dilanjutkan dengan pembentukan matriks bobot spasial, pengujian autokorelasi spasial, dan estimasi model regresi spasial.
Matriks bobot spasial digunakan untuk merepresentasikan hubungan geografis antarprovinsi. Analisis ini menggunakan queen contiguity, yaitu dua provinsi dianggap bertetangga apabila berbagi sisi atau titik sudut. Elemen matriks bobot didefinisikan sebagai:
\[ w_{ij} = \begin{cases} 1, & \text{jika wilayah } i \text{ dan } j \text{ bertetangga} \\ 0, & \text{jika wilayah } i \text{ dan } j \text{ tidak bertetangga} \end{cases} \]
Matriks bobot kemudian distandardisasi baris sehingga jumlah bobot pada setiap baris bernilai satu:
\[ w_{ij}^{*} = \frac{w_{ij}} {\sum_{j=1}^{n} w_{ij}} \]
queen_nb <- spdep::poly2nb(
model_data,
queen = TRUE
)
queen_listw <- spdep::nb2listw(
queen_nb,
style = "W",
zero.policy = TRUE
)
neighbor_count <- spdep::card(queen_nb)
weight_summary <- tibble(
Indikator = c(
"Jumlah provinsi",
"Total hubungan ketetanggaan",
"Rata-rata jumlah tetangga",
"Minimum jumlah tetangga",
"Maksimum jumlah tetangga",
"Provinsi tanpa tetangga"
),
Nilai = c(
length(queen_nb),
sum(neighbor_count),
round(mean(neighbor_count), 3),
min(neighbor_count),
max(neighbor_count),
sum(neighbor_count == 0)
)
)
knitr::kable(
weight_summary,
caption = "Ringkasan Struktur Ketetanggaan Queen Contiguity"
)| Indikator | Nilai |
|---|---|
| Jumlah provinsi | 38 |
| Total hubungan ketetanggaan | 76 |
| Rata-rata jumlah tetangga | 2 |
| Minimum jumlah tetangga | 0 |
| Maksimum jumlah tetangga | 4 |
| Provinsi tanpa tetangga | 7 |
Autokorelasi spasial global diuji menggunakan Indeks Moran. Statistik Indeks Moran dirumuskan sebagai:
\[ I = \frac{n}{S_0} \frac{ \sum_{i=1}^{n} \sum_{j=1}^{n} w_{ij}(y_i-\bar{y})(y_j-\bar{y}) }{ \sum_{i=1}^{n}(y_i-\bar{y})^2 }, \qquad S_0 = \sum_{i=1}^{n} \sum_{j=1}^{n} w_{ij} \]
Nilai Indeks Moran positif menunjukkan pola pengelompokan wilayah dengan nilai yang mirip, sedangkan nilai negatif menunjukkan pola penyebaran. Jika p-value lebih kecil dari taraf signifikansi, maka terdapat bukti autokorelasi spasial global.
Model OLS digunakan sebagai model awal sebelum diagnostik dependensi spasial. Secara umum, model regresi linear berganda ditulis sebagai:
\[ y_i = \beta_0 + \beta_1X_{1i} + \beta_2X_{2i} + \beta_3X_{3i} + \beta_4X_{4i} + \varepsilon_i \]
dengan \(y_i\) adalah prevalensi kusta pada provinsi ke-\(i\), \(X_{1i}\) sampai \(X_{4i}\) adalah variabel penjelas, dan \(\varepsilon_i\) adalah komponen galat.
Diagnostik dependensi spasial dilakukan menggunakan uji Lagrange Multiplier (LM), yang terdiri atas LM-Lag dan LM-Error beserta versi robust-nya. Pengujian ini bertujuan untuk mendeteksi keberadaan ketergantungan spasial dan mengidentifikasi bentuk dependensi spasial yang paling sesuai untuk dimodelkan. LM-Lag digunakan untuk menguji indikasi efek lag spasial, sedangkan LM-Error digunakan untuk menguji indikasi efek error spasial. Apabila hasil pengujian menunjukkan indikasi dependensi spasial, statistik Robust LM dapat digunakan untuk memperoleh inferensi yang lebih reliabel terhadap bentuk ketergantungan spasial yang dominan setelah mengontrol kemungkinan adanya bentuk dependensi spasial lainnya. Dengan demikian, uji LM dan Robust LM berfungsi sebagai alat diagnostik dalam identifikasi struktur dependensi spasial sebelum dilakukan pemodelan regresi spasial (Bera & Yoon, 1993).
Spatial Durbin Model (SDM) mengakomodasi pengaruh spasial pada variabel respon serta variabel penjelas dari wilayah tetangga. Model SDM ditulis sebagai:
\[ \mathbf{y} = \rho \mathbf{W}\mathbf{y} + \mathbf{X}\boldsymbol{\beta} + \mathbf{W}\mathbf{X}\boldsymbol{\theta} + \boldsymbol{\varepsilon} \]
dengan \(\mathbf{W}\) sebagai matriks bobot spasial, \(\rho\) sebagai parameter spatial lag variabel respon, \(\boldsymbol{\beta}\) sebagai koefisien variabel penjelas lokal, dan \(\boldsymbol{\theta}\) sebagai koefisien spatial lag variabel penjelas.
Pada SDM, koefisien estimasi tidak dapat langsung diinterpretasikan sebagai pengaruh marginal karena adanya feedback effect akibat spillover spasial antarwilayah. Oleh karena itu, interpretasi substantif lebih tepat dilakukan melalui direct effect, indirect effect, dan total effect yang merepresentasikan pengaruh aktual setiap variabel dalam sistem spasial (LeSage & Pace, 2009; dikutip dalam Abdullah et al., 2025).
Evaluasi kecocokan model dilakukan menggunakan Akaike Information Criterion (AIC):
\[ AIC = -2\log(L)+2k \]
dengan \(L\) sebagai nilai likelihood maksimum dan \(k\) sebagai jumlah parameter yang diestimasi. Nilai AIC yang lebih kecil menunjukkan keseimbangan yang lebih baik antara kecocokan model dan kompleksitas model.
ols_model <- lm(
model_formula,
data = st_drop_geometry(model_data)
)
ols_coef <- broom::tidy(ols_model) |>
mutate(
Parameter = label_terms(term),
Keputusan = if_else(p.value < 0.05, "Signifikan", "Tidak signifikan")
) |>
select(
Parameter,
Estimasi = estimate,
`Std. Error` = std.error,
Statistik = statistic,
`p-value` = p.value,
Keputusan
)
knitr::kable(
ols_coef |>
mutate(across(where(is.numeric), ~ round(.x, 4))),
caption = "Estimasi Regresi Linear Berganda (OLS)"
)| Parameter | Estimasi | Std. Error | Statistik | p-value | Keputusan |
|---|---|---|---|---|---|
| Intercept | 1.8263 | 5.9163 | 0.3087 | 0.7595 | Tidak signifikan |
| Persentase rumah tangga yang memiliki akses terhadap hunian yang layak | 0.0394 | 0.0568 | 0.6937 | 0.4927 | Tidak signifikan |
| Persentase rumah tangga tidak ada fasilitas tempat buang air besar | -0.3163 | 0.1695 | -1.8666 | 0.0709 | Tidak signifikan |
| Persentase rumah tangga dengan luas lantai per kapita <= 7,2 m2 | 0.4104 | 0.1603 | 2.5595 | 0.0152 | Signifikan |
| Persentase penduduk yang memiliki Jaminan Kesehatan Nasional | -0.0556 | 0.0644 | -0.8638 | 0.3939 | Tidak signifikan |
shapiro_result <- shapiro.test(residuals(ols_model))
bp_result <- lmtest::bptest(ols_model)
vif_values <- car::vif(ols_model)
if (is.matrix(vif_values)) {
vif_values <- vif_values[, "GVIF^(1/(2*Df))"]
}
assumption_table <- tibble(
Uji = c(
"Normalitas residual (Shapiro-Wilk)",
"Homoskedastisitas (Breusch-Pagan)",
"Multikolinearitas (VIF maksimum)"
),
Statistik = c(
unname(shapiro_result$statistic),
unname(bp_result$statistic),
max(vif_values, na.rm = TRUE)
),
`p-value` = c(
shapiro_result$p.value,
bp_result$p.value,
NA_real_
),
Keputusan = c(
if_else(shapiro_result$p.value >= 0.05, "Tidak menolak normalitas", "Menolak normalitas"),
if_else(bp_result$p.value >= 0.05, "Tidak ada indikasi heteroskedastisitas", "Ada indikasi heteroskedastisitas"),
if_else(max(vif_values, na.rm = TRUE) < 5, "Multikolinearitas rendah", "Perlu perhatian")
)
)
knitr::kable(
assumption_table |>
mutate(
Statistik = round(Statistik, 4),
`p-value` = format_p(`p-value`)
),
caption = "Ringkasan Uji Asumsi OLS"
)| Uji | Statistik | p-value | Keputusan |
|---|---|---|---|
| Normalitas residual (Shapiro-Wilk) | 0.7331 | <0,001 | Menolak normalitas |
| Homoskedastisitas (Breusch-Pagan) | 9.5642 | 0,0484 | Ada indikasi heteroskedastisitas |
| Multikolinearitas (VIF maksimum) | 5.3781 | - | Perlu perhatian |
OLS digunakan sebagai titik awal untuk mengevaluasi hubungan linear tanpa komponen spasial. Uji asumsi membantu menilai kualitas model dasar, tetapi keberadaan autokorelasi spasial tetap perlu diperiksa karena unit observasi berupa wilayah geografis tidak selalu independen.
moran_result <- spdep::moran.test(
model_data$.Y,
queen_listw,
randomisation = TRUE,
zero.policy = TRUE
)
moran_table <- tibble(
Indikator = c(
"Indeks Moran",
"Ekspektasi Indeks Moran",
"Varians",
"Statistik",
"p-value"
),
Nilai = c(
unname(moran_result$estimate[["Moran I statistic"]]),
unname(moran_result$estimate[["Expectation"]]),
unname(moran_result$estimate[["Variance"]]),
unname(moran_result$statistic),
moran_result$p.value
)
)
knitr::kable(
moran_table |>
mutate(Nilai = if_else(Indikator == "p-value", format_p(Nilai), format_num(Nilai, 4))),
caption = "Hasil Uji Indeks Moran Global"
)| Indikator | Nilai |
|---|---|
| Indeks Moran | 0,4208 |
| Ekspektasi Indeks Moran | -0,0333 |
| Varians | 0,0184 |
| Statistik | 3,3473 |
| p-value | <0,001 |
Indeks Moran sebesar 0,4208 dengan p-value <0,001 menunjukkan adanya autokorelasi spasial positif yang signifikan. Artinya, prevalensi kusta antarprovinsi tidak tersebar secara acak, melainkan cenderung membentuk pengelompokan geografis. Provinsi dengan prevalensi tinggi cenderung berdekatan dengan provinsi lain yang juga memiliki prevalensi tinggi, sedangkan provinsi dengan prevalensi rendah cenderung berada di sekitar provinsi dengan nilai rendah.
lag_y <- spdep::lag.listw(
queen_listw,
model_data$.Y,
zero.policy = TRUE
)
moran_scatter <- model_data |>
st_drop_geometry() |>
transmute(
Provinsi,
y_centered = .Y - mean(.Y, na.rm = TRUE),
lag_centered = lag_y - mean(lag_y, na.rm = TRUE)
) |>
mutate(
Kuadran = case_when(
y_centered >= 0 & lag_centered >= 0 ~ "High-High",
y_centered < 0 & lag_centered < 0 ~ "Low-Low",
y_centered >= 0 & lag_centered < 0 ~ "High-Low",
TRUE ~ "Low-High"
)
)
ggplot(
moran_scatter,
aes(x = y_centered, y = lag_centered, color = Kuadran)
) +
geom_hline(yintercept = 0, color = "#A990A1", linetype = 2) +
geom_vline(xintercept = 0, color = "#A990A1", linetype = 2) +
geom_smooth(
method = "lm",
se = FALSE,
color = "#68475F",
linewidth = 0.9
) +
geom_point(size = 2.7, alpha = 0.9) +
scale_color_manual(
values = c(
"High-High" = "#B20A62",
"Low-Low" = "#79C7E8",
"High-Low" = "#F1BC69",
"Low-High" = "#72B991"
)
) +
labs(
x = "Prevalensi kusta terpusat",
y = "Lag spasial prevalensi terpusat",
color = "Kuadran"
)Moran Scatterplot Prevalensi Kusta Tingkat Provinsi
Moran scatterplot memperlihatkan kecenderungan pengelompokan wilayah. Kuadran High-High menunjukkan wilayah dengan prevalensi tinggi yang dikelilingi wilayah prevalensi tinggi, sedangkan kuadran Low-Low menunjukkan wilayah dengan prevalensi rendah yang dikelilingi wilayah prevalensi rendah. Pola ini memperkuat alasan penggunaan model regresi spasial.
lm_tests <- spdep::lm.RStests(
ols_model,
listw = queen_listw,
test = c("LMerr", "LMlag", "RLMerr", "RLMlag"),
zero.policy = TRUE
)
lm_table <- tibble(
Uji = c(
"LM-Error",
"LM-Lag",
"Robust LM-Error",
"Robust LM-Lag"
),
Statistik = c(
test_stat(lm_tests, c("RSerr", "LMerr")),
test_stat(lm_tests, c("RSlag", "LMlag")),
test_stat(lm_tests, c("adjRSerr", "RLMerr")),
test_stat(lm_tests, c("adjRSlag", "RLMlag"))
),
`p-value` = c(
test_p(lm_tests, c("RSerr", "LMerr")),
test_p(lm_tests, c("RSlag", "LMlag")),
test_p(lm_tests, c("adjRSerr", "RLMerr")),
test_p(lm_tests, c("adjRSlag", "RLMlag"))
)
) |>
mutate(
Keputusan = if_else(`p-value` < 0.05, "Signifikan", "Tidak signifikan")
)
knitr::kable(
lm_table |>
mutate(
Statistik = round(Statistik, 4),
`p-value` = format_p(`p-value`)
),
caption = "Hasil Diagnostik Lagrange Multiplier"
)| Uji | Statistik | p-value | Keputusan |
|---|---|---|---|
| LM-Error | 0.6607 | 0,4163 | Tidak signifikan |
| LM-Lag | 4.2689 | 0,0388 | Signifikan |
| Robust LM-Error | 7.3774 | 0,0066 | Signifikan |
| Robust LM-Lag | 10.9856 | <0,001 | Signifikan |
Hasil diagnostik LM digunakan untuk membaca kebutuhan komponen spasial, jika LM-Lag dan robust LM menunjukkan signifikansi, terdapat indikasi bahwa variasi prevalensi kusta tidak hanya dipengaruhi oleh karakteristik lokal, tetapi juga oleh keterkaitan antarwilayah. Jika robust LM-Lag dan robust LM-Error sama-sama signifikan, dependensi spasial tidak cukup dijelaskan oleh satu mekanisme saja.
Pemilihan SDM didasarkan pada indikasi bahwa proses spasial dalam data tidak berhenti pada keterkaitan antarwilayah pada variabel respon, tetapi juga melibatkan transmisi pengaruh melalui variabel penjelas di wilayah sekitar. Hasil uji robust menunjukkan bahwa setelah efek lag spasial dikontrol, masih terdapat dependensi spasial yang relevan. Oleh karena itu, SDM lebih tepat digunakan karena mampu menangkap pengaruh langsung, spillover antarwilayah, dan feedback effect dalam sistem spasial.
sdm_model <- spatialreg::lagsarlm(
model_formula,
data = st_drop_geometry(model_data),
listw = queen_listw,
zero.policy = TRUE,
method = "eigen",
Durbin = TRUE
)
sdm_summary <- summary(sdm_model)
sdm_coef <- as.data.frame(sdm_summary$Coef)
sdm_coef$Parameter <- label_spatial_terms(rownames(sdm_coef))
rownames(sdm_coef) <- NULL
sdm_coef <- sdm_coef |>
select(Parameter, everything()) |>
mutate(
Keputusan = if_else(`Pr(>|z|)` < 0.05, "Signifikan", "Tidak signifikan")
)
knitr::kable(
sdm_coef |>
mutate(across(where(is.numeric), ~ round(.x, 4))),
caption = "Estimasi Parameter Spatial Durbin Model"
)| Parameter | Estimate | Std. Error | z value | Pr(>|z|) | Keputusan |
|---|---|---|---|---|---|
| Intercept | 5.3275 | 2.6603 | 2.0026 | 0.0452 | Signifikan |
| Persentase rumah tangga yang memiliki akses terhadap hunian yang layak | 0.0532 | 0.0248 | 2.1462 | 0.0319 | Signifikan |
| Persentase rumah tangga tidak ada fasilitas tempat buang air besar | -0.3402 | 0.0746 | -4.5615 | 0.0000 | Signifikan |
| Persentase rumah tangga dengan luas lantai per kapita <= 7,2 m2 | 0.1754 | 0.0805 | 2.1773 | 0.0295 | Signifikan |
| Persentase penduduk yang memiliki Jaminan Kesehatan Nasional | -0.0912 | 0.0305 | -2.9884 | 0.0028 | Signifikan |
| Lag spasial Persentase rumah tangga yang memiliki akses terhadap hunian yang layak | 0.1537 | 0.0626 | 2.4544 | 0.0141 | Signifikan |
| Lag spasial Persentase rumah tangga tidak ada fasilitas tempat buang air besar | 0.0043 | 0.1343 | 0.0317 | 0.9747 | Tidak signifikan |
| Lag spasial Persentase rumah tangga dengan luas lantai per kapita <= 7,2 m2 | 0.6636 | 0.1756 | 3.7784 | 0.0002 | Signifikan |
| Lag spasial Persentase penduduk yang memiliki Jaminan Kesehatan Nasional | -0.2095 | 0.0648 | -3.2315 | 0.0012 | Signifikan |
model_performance <- tibble(
Indikator = c(
"AIC OLS",
"AIC SDM",
"Penurunan AIC SDM terhadap OLS",
"Parameter spasial rho"
),
Nilai = c(
AIC(ols_model),
AIC(sdm_model),
AIC(ols_model) - AIC(sdm_model),
sdm_model$rho
)
)
knitr::kable(
model_performance |>
mutate(Nilai = format_num(Nilai, 4)),
caption = "Kinerja Spatial Durbin Model"
)| Indikator | Nilai |
|---|---|
| AIC OLS | 210,0804 |
| AIC SDM | 161,0277 |
| Penurunan AIC SDM terhadap OLS | 49,0528 |
| Parameter spasial rho | 0,3706 |
SDM menghasilkan AIC sebesar 161,028, lebih rendah sebesar 49,053 poin dibandingkan OLS. Penurunan AIC menunjukkan bahwa penambahan komponen spasial memberi perbaikan kecocokan model secara relatif. Parameter spasial \(\rho\) sebesar 0,3706 menunjukkan bahwa prevalensi kusta pada suatu provinsi berkaitan positif dengan prevalensi kusta di provinsi sekitarnya.
set.seed(123)
impact_result <- spatialreg::impacts(
sdm_model,
listw = queen_listw,
R = 500
)
impact_summary <- summary(
impact_result,
zstats = TRUE,
short = TRUE
)
impact_names <- attr(impact_summary, "bnames")
impact_parameters <- label_terms(impact_names)
impact_table_long <- map_dfr(
seq_along(impact_parameters),
function(i) {
tibble(
Variabel = impact_parameters[i],
Kode = paste0("X", i),
Efek = c("Direct effect", "Indirect effect", "Total effect"),
Estimasi = c(
impact_summary$res$direct[i],
impact_summary$res$indirect[i],
impact_summary$res$total[i]
),
`Std. Error` = impact_summary$semat[i, ],
`z-value` = impact_summary$zmat[i, ],
`p-value` = impact_summary$pzmat[i, ],
Keputusan = if_else(impact_summary$pzmat[i, ] < 0.05, "Signifikan", "Tidak signifikan")
)
}
)
impact_table_wide <- impact_table_long |>
mutate(
Efek = unname(setNames(
c("Direct", "Indirect", "Total"),
c("Direct effect", "Indirect effect", "Total effect")
)[Efek])
) |>
select(Kode, Variabel, Efek, Estimasi, `p-value`, Keputusan) |>
pivot_wider(
names_from = Efek,
values_from = c(Estimasi, `p-value`, Keputusan),
names_glue = "{Efek}_{.value}"
) |>
select(
Kode,
Variabel,
Direct_Estimasi,
`Direct_p-value`,
Direct_Keputusan,
Indirect_Estimasi,
`Indirect_p-value`,
Indirect_Keputusan,
Total_Estimasi,
`Total_p-value`,
Total_Keputusan
)
knitr::kable(
impact_table_wide |>
mutate(
across(ends_with("Estimasi"), ~ round(.x, 4)),
across(ends_with("p-value"), format_p)
),
caption = "Estimasi Direct Effect, Indirect Effect, dan Total Effect pada Spatial Durbin Model",
align = c("c", "l", rep("r", 9))
)| Kode | Variabel | Direct_Estimasi | Direct_p-value | Direct_Keputusan | Indirect_Estimasi | Indirect_p-value | Indirect_Keputusan | Total_Estimasi | Total_p-value | Total_Keputusan |
|---|---|---|---|---|---|---|---|---|---|---|
| X1 | Persentase rumah tangga yang memiliki akses terhadap hunian yang layak | 0.0786 | 0,0065 | Signifikan | 0.2502 | 0,0036 | Signifikan | 0.3287 | 0,0014 | Signifikan |
| X2 | Persentase rumah tangga tidak ada fasilitas tempat buang air besar | -0.3580 | <0,001 | Signifikan | -0.1757 | 0,3719 | Tidak signifikan | -0.5337 | 0,0216 | Signifikan |
| X3 | Persentase rumah tangga dengan luas lantai per kapita <= 7,2 m2 | 0.2819 | <0,001 | Signifikan | 1.0509 | <0,001 | Signifikan | 1.3328 | <0,001 | Signifikan |
| X4 | Persentase penduduk yang memiliki Jaminan Kesehatan Nasional | -0.1267 | <0,001 | Signifikan | -0.3510 | <0,001 | Signifikan | -0.4777 | <0,001 | Signifikan |
Pada SDM, koefisien hasil estimasi tidak dapat langsung diinterpretasikan sebagai pengaruh marginal variabel penjelas terhadap variabel respon karena adanya feedback effect yang muncul akibat efek spillover spasial antarwilayah. Oleh karena itu, interpretasi model lebih tepat dilakukan melalui estimasi direct effect dan indirect effect yang merepresentasikan pengaruh aktual dari setiap variabel dalam sistem spasial (LeSage & Pace, 2009; dikutip dalam Abdullah et al., 2025).
Hasil dekomposisi dampak menunjukkan bahwa sebagian variabel memiliki efek langsung (direct effect) maupun efek spillover spasial (indirect effect) yang signifikan. Variabel \(X_3\) menunjukkan pengaruh positif terbesar dengan total effect sebesar 1,3328, yang didominasi oleh indirect effect sebesar 1,0509. Temuan ini mengindikasikan bahwa peningkatan proporsi rumah tangga dengan luas lantai per kapita ≤ 7,2 m² berkaitan dengan peningkatan prevalensi kusta, baik pada provinsi tersebut maupun pada provinsi tetangganya.
Sebaliknya, variabel \(X_4\) memiliki total effect negatif sebesar -0,4777 dengan komponen direct effect dan indirect effect yang sama-sama signifikan. Hasil ini menunjukkan bahwa peningkatan kepesertaan Jaminan Kesehatan Nasional (JKN) berkaitan dengan penurunan prevalensi kusta baik secara lokal maupun antarwilayah. Pola spillover yang signifikan juga ditemukan pada variabel \(X_1\) dengan total effect positif sebesar 0,3287, yang mengindikasikan bahwa perubahan kondisi hunian layak pada suatu provinsi turut berkaitan dengan perubahan prevalensi kusta di wilayah sekitarnya.
Sementara itu, variabel \(X_2\) hanya menunjukkan direct effect negatif yang signifikan, sedangkan indirect effect-nya tidak signifikan. Temuan ini menunjukkan bahwa pengaruh variabel tersebut cenderung bersifat lokal dan tidak menghasilkan limpahan spasial yang berarti. Secara keseluruhan, signifikansi indirect effect pada beberapa variabel menunjukkan bahwa prevalensi kusta di Indonesia tidak hanya dipengaruhi oleh karakteristik suatu provinsi, tetapi juga oleh kondisi wilayah di sekitarnya. Temuan ini mengonfirmasi pentingnya mempertimbangkan mekanisme spillover spasial dalam analisis faktor-faktor yang berhubungan dengan prevalensi kusta.
Hasil analisis menunjukkan bahwa faktor lingkungan permukiman merupakan determinan utama dalam variasi prevalensi kusta di Indonesia, dengan pengaruh yang tidak hanya bersifat lokal tetapi juga menyebar ke wilayah sekitarnya melalui mekanisme spillover spasial. Variabel kepadatan hunian yang direpresentasikan oleh proporsi rumah tangga dengan luas lantai per kapita ≤ 7,2 m² memiliki efek total terbesar, yang menunjukkan bahwa peningkatan kepadatan hunian berkaitan dengan peningkatan risiko kusta baik di wilayah tersebut maupun di wilayah tetangganya. Temuan ini mengindikasikan bahwa kondisi hunian padat berpotensi memperkuat rantai penularan melalui intensitas interaksi antarindividu yang tidak terbatas pada satu wilayah administratif. Selain itu, akses terhadap hunian layak juga menunjukkan adanya efek limpahan spasial yang signifikan, yang mengindikasikan bahwa kualitas lingkungan permukiman memiliki keterkaitan antarwilayah. Di sisi lain, kepesertaan Jaminan Kesehatan Nasional berasosiasi dengan penurunan prevalensi kusta baik secara langsung maupun melalui efek limpahan spasial, sehingga menunjukkan bahwa akses terhadap layanan kesehatan berperan tidak hanya dalam skala lokal tetapi juga dalam memperkuat sistem pengendalian penyakit secara regional. Sementara itu, variabel sanitasi yang direpresentasikan oleh rumah tangga tanpa fasilitas tempat buang air besar hanya menunjukkan pengaruh langsung yang signifikan, sehingga efeknya cenderung bersifat lokal tanpa adanya indikasi penyebaran antarwilayah. Secara keseluruhan, temuan ini menunjukkan bahwa dinamika prevalensi kusta di Indonesia dibentuk oleh kombinasi faktor lingkungan dan akses kesehatan yang bekerja tidak hanya dalam batas administratif wilayah, tetapi juga melalui interaksi spasial antarprovinsi. Oleh karena itu, pendekatan pengendalian kusta perlu mempertimbangkan keterkaitan antarwilayah untuk menangkap mekanisme penyebaran yang lebih luas.
Penelitian ini memiliki beberapa keterbatasan. Pertama, analisis dilakukan menggunakan data cross-sectional tahun 2024 sehingga hubungan yang diperoleh bersifat asosiatif dan tidak dapat diinterpretasikan sebagai hubungan kausal. Kedua, model hanya menggunakan beberapa indikator lingkungan dan akses kesehatan yang tersedia pada tingkat provinsi, sehingga masih dimungkinkan terdapat faktor lain yang berpengaruh terhadap prevalensi kusta tetapi belum dimasukkan ke dalam model. Ketiga, penggunaan unit analisis tingkat provinsi dapat menimbulkan heterogenitas internal wilayah yang tidak sepenuhnya tertangkap dalam model, terutama pada provinsi dengan karakteristik geografis dan sosial ekonomi yang beragam. Selain itu, hasil analisis spasial dapat dipengaruhi oleh spesifikasi matriks bobot yang digunakan, sehingga interpretasi hasil perlu mempertimbangkan asumsi pembobot spasial yang diterapkan dalam penelitian ini.
Prevalensi kusta di Indonesia tahun 2024 menunjukkan autokorelasi spasial positif yang signifikan, yang mengindikasikan adanya pengelompokan wilayah dengan tingkat prevalensi yang serupa. Hasil diagnostik spasial menunjukkan adanya ketergantungan spasial antarprovinsi sehingga Spatial Durbin Model (SDM) dipilih karena signifikansi kedua statistik Robust LM mengindikasikan adanya struktur dependensi spasial yang kompleks, sehingga diperlukan model yang lebih umum untuk mengakomodasi berbagai kemungkinan bentuk interaksi spasial.
Hasil analisis menunjukkan bahwa kondisi permukiman dan akses kesehatan berhubungan dengan variasi prevalensi kusta antarprovinsi di Indonesia. Persentase rumah tangga dengan luas lantai per kapita ≤ 7,2 m² dan persentase rumah tangga yang memiliki akses terhadap hunian layak berpengaruh signifikan terhadap prevalensi kusta. Selain itu, persentase penduduk yang memiliki Jaminan Kesehatan Nasional (JKN) serta persentase rumah tangga yang tidak memiliki fasilitas tempat buang air besar juga menunjukkan pengaruh yang signifikan. Keberadaan efek langsung dan efek spillover spasial pada beberapa variabel mengindikasikan bahwa karakteristik suatu provinsi dapat memengaruhi prevalensi kusta di provinsi lain yang bertetangga. Oleh karena itu, upaya pengendalian kusta perlu dilakukan secara terintegrasi antarwilayah dengan memperhatikan perbaikan kondisi permukiman, sanitasi, dan akses layanan kesehatan.
Akaike, H. (1974). A new look at the statistical model identification. IEEE Transactions on Automatic Control, 19(6), 716-723. https://doi.org/10.1109/tac.1974.1100705
Anselin, L. (2020). Contiguity-based spatial weights. GeoDa Center. https://geodacenter.github.io/workbook/4a_contig_weights/lab4a.html
Badan Pusat Statistik. (2025). Persentase rumah tangga menurut provinsi dan fasilitas tempat buang air besar. https://www.bps.go.id/
Badan Pusat Statistik. (2025). Persentase rumah tangga menurut provinsi, klasifikasi desa, dan luas lantai per kapita rumah bangunan tempat tinggal kurang dari sama dengan 7,2 meter persegi. https://www.bps.go.id/
Badan Pusat Statistik. (2026). Persentase penduduk yang memiliki jaminan kesehatan menurut provinsi dan jenis jaminan. https://www.bps.go.id/
Badan Pusat Statistik. (2026). Persentase rumah tangga yang memiliki akses terhadap hunian yang layak menurut provinsi. https://www.bps.go.id/
Bera, A. K., & Yoon, M. J. (1993). Simple diagnostic tests for spatial dependence. University of Illinois at Urbana-Champaign. https://hdl.handle.net/2142/32838
Isturini, I. A. (2025). Current state of Indonesia’s leprosy management program. Sasakawa Leprosy Initiative.
Kementerian Kesehatan. (2023). Mengenal penyakit kusta. https://keslan.kemkes.go.id/view_artikel/2679/mengenal-penyakit-kusta
Kementerian Kesehatan. (2025). Profil Kesehatan Indonesia 2024. Kementerian Kesehatan Republik Indonesia.
Kementerian Kesehatan. (2025). Indonesia percepat eliminasi kusta dan filariasis, target bebas NTDs pada 2030. https://kemkes.go.id/
Kurniawan, J., Radiono, S., & Kusnanto, H. (2018). Analisis spasial kejadian penyakit kusta di Kabupaten Blora Provinsi Jawa Tengah. Berita Kedokteran Masyarakat, 34(1), 6. https://doi.org/10.22146/bkm.26267
LeSage, J. P. (2008). An introduction to spatial econometrics. Revue d’Economie Industrielle, 123, 19-44. https://doi.org/10.4000/rei.3887
LeSage, J. P., & Pace, R. K. (2009). Introduction to spatial econometrics. CRC Press.
Pebesma, E., & Bivand, R. (2025). Spatial data science. https://r-spatial.org/book/
Tobler, W. R. (1970). A computer movie simulating urban growth in the Detroit region. Economic Geography, 46, 234-240. https://doi.org/10.2307/143141
World Health Organization. (2018). Guidelines for the diagnosis, treatment and prevention of leprosy. https://www.who.int/publications/i/item/9789290226383
World Health Organization. (2024). Global leprosy (Hansen disease) update, 2023: Elimination of leprosy disease is possible - time to act!. https://www.who.int/publications/i/item/who-wer9937-501-521
## R version 4.3.1 (2023-06-16 ucrt)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 11 x64 (build 26200)
##
## Matrix products: default
##
##
## locale:
## [1] LC_COLLATE=English_Indonesia.utf8 LC_CTYPE=English_Indonesia.utf8
## [3] LC_MONETARY=English_Indonesia.utf8 LC_NUMERIC=C
## [5] LC_TIME=English_Indonesia.utf8
##
## time zone: Asia/Jakarta
## tzcode source: internal
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] scales_1.4.0 broom_1.0.13 car_3.1-2 carData_3.0-5
## [5] lmtest_0.9-40 zoo_1.8-13 spatialreg_1.3-5 Matrix_1.6-1
## [9] spdep_1.3-10 spData_2.3.3 sf_1.0-20 purrr_1.0.4
## [13] tidyr_1.3.1 ggplot2_4.0.3 stringr_1.5.0 dplyr_1.1.4
## [17] readr_2.1.5
##
## loaded via a namespace (and not attached):
## [1] tidyselect_1.2.1 farver_2.1.2 S7_0.2.0 fastmap_1.2.0
## [5] TH.data_1.1-2 digest_0.6.37 lifecycle_1.0.5 LearnBayes_2.15.1
## [9] survival_3.5-5 magrittr_2.0.3 compiler_4.3.1 rlang_1.1.5
## [13] sass_0.4.9 tools_4.3.1 igraph_2.0.3 utf8_1.2.3
## [17] yaml_2.3.10 knitr_1.49 labeling_0.4.3 bit_4.0.5
## [21] sp_2.1-4 classInt_0.4-10 RColorBrewer_1.1-3 multcomp_1.4-25
## [25] abind_1.4-8 KernSmooth_2.23-21 withr_2.5.0 grid_4.3.1
## [29] fansi_1.0.4 e1071_1.7-16 MASS_7.3-60 dichromat_2.0-0.1
## [33] cli_3.6.4 mvtnorm_1.2-3 rmarkdown_2.29 crayon_1.5.2
## [37] generics_0.1.4 rstudioapi_0.19.0 tzdb_0.4.0 DBI_1.2.3
## [41] cachem_1.1.0 proxy_0.4-27 splines_4.3.1 parallel_4.3.1
## [45] s2_1.1.7 vctrs_0.6.5 boot_1.3-30 sandwich_3.1-1
## [49] jsonlite_2.0.0 hms_1.1.3 bit64_4.0.5 jquerylib_0.1.4
## [53] units_0.8-5 glue_1.8.0 codetools_0.2-19 stringi_1.7.12
## [57] gtable_0.3.6 deldir_2.0-4 tibble_3.2.1 pillar_1.9.0
## [61] htmltools_0.5.8.1 R6_2.5.1 wk_0.9.4 vroom_1.6.5
## [65] evaluate_1.0.5 lattice_0.21-8 backports_1.5.0 bslib_0.8.0
## [69] class_7.3-22 Rcpp_1.0.13-1 coda_0.19-4.1 nlme_3.1-168
## [73] mgcv_1.8-42 xfun_0.52 pkgconfig_2.0.3