ANALISIS EPIDEMIOLOGI DAN BINOMIAL NEGATIF
PENYAKIT DIARE DI PROVINSI JAWA BARAT TAHUN 2024

Dosen Pengampu:
Dr. I Gede Nyoman Mindra Jaya, S.Si., M.Si.

Logo Universitas Padjadjaran

Disusun Oleh:
Annisa Fitriani Fadhilah (140610230025)

PROGRAM STUDI STATISTIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS PADJADJARAN 2025



ABSTRAK

Diare merupakan salah satu penyakit berbasis lingkungan yang masih menjadi masalah kesehatan masyarakat di Indonesia. Provinsi Jawa Barat, sebagai provinsi dengan jumlah penduduk terbesar, secara konsisten melaporkan jumlah kasus diare yang tinggi dibandingkan provinsi lain. Laporan ini bertujuan untuk mendeskripsikan pola persebaran kasus diare, menganalisis tren temporal selama periode 2020-2024, serta mengidentifikasi faktor risiko yang signifikan melalui pemodelan statistik. Metode yang digunakan meliputi analisis ukuran frekuensi (prevalensi), visualisasi spasial menggunakan peta tematik, dan pemodelan regresi Binomial Negatif untuk mengatasi masalah overdispersion pada data jumlah kasus.

Hasil analisis menunjukkan adanya variasi spasial yang signifikan di mana wilayah perkotaan seperti Kota Cirebon dan Kota Bogor menunjukkan tingkat prevalensi tertinggi. Berdasarkan model Binomial Negatif, variabel akses sanitasi dan status gizi buruk balita ditemukan memiliki asosiasi yang signifikan terhadap peningkatan jumlah kasus diare.

Kata Kunci: Diare, Epidemiologi, Binomial Negatif, Jawa Barat, Sarana kesehatan.


1 BAB I PENDAHULUAN

1.1 Latar Belakang

Diare merupakan salah satu penyakit berbasis lingkungan yang masih menjadi masalah kesehatan masyarakat di Indonesia. Penyakit ini berkaitan erat dengan kondisi sanitasi lingkungan, ketersediaan air bersih, serta perilaku hidup bersih dan sehat (PHBS). Meskipun dapat dicegah, diare masih sering ditemukan akibat ketimpangan kualitas lingkungan dan akses layanan kesehatan.

Provinsi Jawa Barat sebagai provinsi dengan jumlah penduduk terbesar di Indonesia secara konsisten melaporkan jumlah kasus diare yang tinggi. Karakteristik wilayah yang beragam, mulai dari kawasan perkotaan hingga perdesaan, menyebabkan perbedaan kondisi sanitasi dan akses air bersih antar kabupaten/kota, yang berpotensi menimbulkan variasi risiko kejadian diare.

Dalam perspektif epidemiologi, kejadian diare dipengaruhi oleh interaksi antara faktor pejamu (host), agen penyakit (agent), dan lingkungan (environment). Oleh karena itu, analisis deskriptif yang menggambarkan distribusi spasial dan temporal kasus diare diperlukan untuk memahami pola kejadian penyakit. Hasil analisis ini diharapkan dapat memberikan gambaran awal wilayah dengan beban kasus tinggi serta mendukung perencanaan upaya pencegahan dan pengendalian penyakit diare di Provinsi Jawa Barat.

1.2 Rumusan Masalah

Berdasarkan latar belakang tersebut, rumusan masalah dalam kajian ini adalah:

  1. Bagaimana tren perkembangan kasus diare di Provinsi Jawa Barat selama periode tahun 2020-2024?

  2. Bagaimana sebaran spasial (peta distribusi) kasus diare di tingkat kabupaten/kota di Jawa Barat?

  3. Faktor risiko apa saja yang secara signifikan mempengaruhi jumlah kasus diare berdasarkan pemodelan Binomial Negatif?

1.3 Tujuan

Tujuan dari laporan proyek epidemiologi ini adalah:

  1. Mendeskripsikan tren temporal kasus diare di Jawa Barat dari tahun ke tahun.

  2. Memetakan distribusi geografis penyakit untuk melihat pola pengelompokan kasus.

  3. Menganalisis besarnya pengaruh variabel independen terhadap jumlah kasus diare menggunakan model regresi Binomial Negatif.

2 BAB II TINJAUAN PUSTAKA

2.1 Konsep Segitiga Epidemiologi

Kejadian penyakit diare dapat dijelaskan melalui konsep segitiga epidemiologi, yang menekankan adanya interaksi antara agen penyebab penyakit (agent), pejamu (host), dan lingkungan (environment). Ketiga komponen ini saling berperan dalam menentukan terjadinya dan penyebaran penyakit diare di suatu populasi.

  1. Agent (Agen): Mikroorganisme patogen penyebab diare yang masuk ke tubuh melalui makanan atau air yang terkontaminasi.

  2. Host (Pejamu): Individu yang rentan terhadap infeksi, dipengaruhi oleh karakteristik seperti usia dan kondisi kesehatan.

  3. Environment (Lingkungan): Kondisi lingkungan yang memfasilitasi penularan, meliputi sanitasi, ketersediaan air bersih, dan kebersihan lingkungan.

2.2 Ukuran Epidemiologi

Dalam analisis ini, digunakan beberapa ukuran epidemiologi utama:

  • Prevalensi: Menggambarkan proporsi populasi yang menderita diare pada periode waktu tertentu di wilayah Jawa Barat.

  • Incidence Rate Ratio (IRR): Digunakan dalam model Binomial Negatif untuk mengukur besarnya asosiasi atau risiko antara faktor independen (sanitasi dan gizi buruk) terhadap jumlah kasus diare.

2.3 Desain Studi Cross-Sectional

Penelitian ini menggunakan desain studi potong lintang (cross-sectional study) dengan pendekatan ekologi, dengan unit analisis kabupaten/kota di Provinsi Jawa Barat. Variabel dependen adalah jumlah kasus diare, sedangkan variabel independen mencakup faktor lingkungan dan kerentanan penduduk. Populasi penelitian meliputi seluruh kabupaten/kota di Jawa Barat dengan teknik total sampling berdasarkan ketersediaan data. Keterbatasan desain ini adalah ketidakmampuannya menjelaskan hubungan kausal serta potensi terjadinya ecological fallacy akibat penggunaan data agregat.

2.4 Regresi Binomial Negatif

Regresi Binomial Negatif digunakan untuk menganalisis data cacah yang menunjukkan overdispersion, yaitu kondisi ketika varians lebih besar dari nilai rata-rata. Model ini banyak diterapkan dalam studi epidemiologi karena lebih sesuai dibandingkan regresi Poisson pada data jumlah kasus penyakit. Hasil analisis umumnya dinyatakan dalam Incidence Rate Ratio (IRR) untuk memudahkan interpretasi pengaruh faktor risiko terhadap laju kejadian penyakit.

3 BAB III METODOLOGI

3.1 Sumber Data

Penelitian ini menggunakan data sekunder yang diperoleh dari berbagai sumber resmi pemerintah, terutama dari Portal Open Data Provinsi Jawa Barat dan Badan Pusat Statistik (BPS). Data yang digunakan mencakup beberapa variabel yang relevan dengan kasus Diare di Provinsi Jawa Barat pada tahun 2024.

3.2 Variabel Penelitian

Variabel yang digunakan dalam analisis ini adalah:

  • Variabel Dependen: Jumlah kasus diare per kabupaten/kota (Data tahun 2024).

  • Variabel Independen: Persentase Akses Sanitasi Layak (%), Jumlah Balita Gizi Buruk, Jumlah Sarana Kesehatan, Jumlah Penduduk (untuk menstandarisasi perbedaan ukuran populasi antar wilayah).

Hubungan antara variabel-variabel tersebut dianalisis untuk melihat apakah terdapat keterkaitan antara kondisi lingkungan, sosial, dan jumlah kasus Diare di Jawa Barat. Dengan mengetahui variabel yang berpengaruh, diharapkan hasil penelitian ini dapat memberikan gambaran faktor risiko utama yang berkontribusi terhadap tingginya angka Diare di wilayah tersebut.

3.3 Metode Analisis

Analisis yang dilakukan dalam penelitian ini meliputi:

  1. Analisis deskriptif epidemiologi, untuk menggambarkan pola kejadian diare berdasarkan waktu, tempat, dan populasi melalui perhitungan prevalensi, statistika deskriptif, dan visualisasi grafik.

  2. Analisis spasial eksploratif, menggunakan peta tematik untuk menggambarkan sebaran geografis kasus diare antar kabupaten/kota dan mengidentifikasi pola pengelompokan wilayah.

  3. Analisis faktor risiko, dilakukan menggunakan model regresi Binomial Negatif karena data kasus diare berupa data cacah dan menunjukkan overdispersion. Hasil analisis disajikan dalam bentuk Incidence Rate Ratio (IRR) untuk menilai besarnya pengaruh faktor risiko terhadap laju kejadian diare.

3.4 Alur Kerja Analisis

Tahapan analisis epidemiologi yang dilakukan dalam penelitian ini meliputi:

  1. Integrasi Data: Menggabungkan data kasus diare, kependudukan, dan faktor lingkungan yang bersumber dari Open Data Jabar dan Badan Pusat Statistik (BPS).

  2. Pembersihan Data: Melakukan pengecekan kelengkapan, konsistensi, dan kesesuaian format data agar siap dianalisis.

  3. Analisis Deskriptif: Menghitung ukuran frekuensi penyakit berupa prevalensi kasus diare pada tingkat kabupaten/kota.

  4. Analisis Tren Temporal: Mengamati perubahan dan pola kasus diare selama periode tahun 2020–2024.

  5. Analisis Spasial: Menyajikan peta tematik untuk menggambarkan distribusi geografis kasus diare antarwilayah.

  6. Pemodelan Regresi: Menyajikan peta tematik untuk menggambarkan distribusi geografis kasus diare antarwilayah.

4 BAB IV. HASIL DAN PEMBAHASAN

4.1 Gambaran Data dan Statistik Deskriptif

Data 2024 menunjukkan bahwa tiap kabupaten/kota di Jawa Barat melaporkan jumlah kasus yang berbeda. Perbedaan ini dipengaruhi oleh banyak faktor, di antaranya kepadatan penduduk, kondisi lingkungan, dan upaya pencegahan yang dilakukan di daerah tersebut.

Statistik Deskriptif

Tabel 4.1: Ringkasan Statistik Deskriptif
Variable Min Mean Median Max SD
Jumlah_Diare 4096.00 24899.52 21014.00 56802.00 12335.05
Jumlah_Penduduk 209790.00 1864636.67 1884190.00 5682300.00 1228053.16
Akses_Sanitasi 45.88 75.70 77.32 99.08 16.92
Gizi_Buruk_Balita 407.00 3521.96 3069.00 9102.00 2534.45
Sarana_Kesehatan 7.00 71.22 60.00 196.00 48.26
Prevalensi_Pct 0.63 1.66 1.41 4.43 0.85

4.2 Analisis Ukuran Frekuensi: Prevalensi

Interpretasi: Berdasarkan gambar di atas kota Cirebon memiliki prevalensi kasus diare mencapai 4,43%, dimana rata-rata prevalensi provinsi Jawa Barat 1,68% (hampir 3 kali lipat). Hal ini mengindikasikan Kota Cirebon sebagai outlier atau pusat perhatian utama dalam persebaran kasus.

4.3 Visualisasi Spasial Variabel Epidemiologi

Berikut disajikan distribusi geografis dari variabel dependen (Kasus) dan variabel independen (Sanitasi, Gizi, Sarana Kesehatan) untuk melihat pola pengelompokan (clustering).

4.3.1 Peta Kasus Diare dan Akses Sanitasi

Interpretasi:

Peta menunjukkan bahwa wilayah dengan akses sanitasi layak yang rendah cenderung memiliki kasus diare lebih tinggi, sehingga perbaikan sanitasi menjadi faktor penting dalam menekan penyebaran diare.

4.3.2 Peta Gizi Buruk dan Sarana Kesehatan

4.3.1 Untuk 4.3.2 (Gizi vs Sarana)

Interpretasi:

Peta menunjukkan ketimpangan wilayah, di mana daerah dengan gizi buruk tinggi sering kali memiliki sarana kesehatan yang terbatas, sehingga perlu menjadi prioritas intervensi dan perbaikan akses layanan kesehatan.

4.4 Grafik Tren Kasus Diare Tahunan (Temporal Analysis)

Analisis tren kasus Diare Provinsi Jawa Barat dari tahun 2020 hingga 2024 memberikan gambaran umum tentang dinamika penyakit dalam beberapa tahun terakhir.

Interpretasi:

Grafik memperlihatkan bahwa kasus diare di Jawa Barat naik dari sekitar 1,3 juta kasus pada 2020 hingga puncaknya pada 2022, kemudian sedikit menurun pada 2023, dan mengalami penurunan sangat signifikan pada 2024 hingga hampir setengah dari tahun sebelumnya, yang mengindikasikan adanya perbaikan besar dalam pencegahan, penanganan, atau pelaporan kasus.

4.5 Pemodelan Statistik (Regresi Binomial Negatif)

4.5.1 Analisis Diagnostik

Pertama-tama dilakukan verifikasi Overdispersi, kemudian memastikan tidak ada hubungan linear yang kuat antar variabel independen dengan uji Multikolinieritas

Tabel 4.2a: Indikator Overdispersi
Indikator Nilai
Rasio Varians/Mean (Overdispersi) 6110.7
Tabel 4.2b: Uji Multikolinieritas (VIF)
Variabel VIF
Akses_Sanitasi 1.061
Gizi_Buruk_Balita 1.622
Sarana_Kesehatan 1.547

Interpretasi:

Hasil perhitungan rasio varians terhadap mean yang sangat tinggi (6110,7) menunjukkan adanya overdispersi pada data, sehingga penggunaan model Negative Binomial sudah tepat. Selanjutnya, uji multikolinearitas menunjukkan seluruh variabel independen memiliki nilai VIF di bawah 10, yang menandakan tidak terdapat masalah multikolinearitas dan variabel-variabel dapat digunakan secara bersama dalam model tanpa mengganggu kestabilan estimasi.

4.5.2 Hasil Estimasi Model

Model mengestimasi laju kejadian diare dengan menyertakan variabel offset logaritma jumlah penduduk:

Tabel 4.3: Estimasi Model Binomial Negatif
Variabel IRR Std. Error Statistik-z p-value Konf. Bawah Konf. Atas
(Intercept) 0.032 0.337 -10.183 0.000 0.017 0.063
Akses_Sanitasi 0.997 0.004 -0.749 0.454 0.989 1.005
Gizi_Buruk_Balita 1.000 0.000 -0.555 0.579 1.000 1.000
Sarana_Kesehatan 0.994 0.002 -3.569 0.000 0.991 0.997

Interpretasi:

Hasil estimasi menunjukkan bahwa akses sanitasi dan jumlah balita gizi buruk tidak berpengaruh signifikan terhadap jumlah kasus diare, yang ditunjukkan oleh nilai p-value masing-masing sebesar 0,454 dan 0,579 (p > 0,05), serta nilai IRR yang mendekati 1. Sementara itu, sarana kesehatan berpengaruh signifikan terhadap jumlah kasus diare (p-value = 0,000), dengan nilai IRR sebesar 0,994. Hal ini mengindikasikan bahwa setiap peningkatan satu unit sarana kesehatan berasosiasi dengan penurunan rata-rata jumlah kasus diare sebesar sekitar 0,6%, dengan interval kepercayaan 95% yang seluruhnya berada di bawah 1. Temuan ini menunjukkan bahwa ketersediaan sarana kesehatan memiliki peran penting dalam menekan kasus diare di wilayah penelitian.

4.5.3 Evaluasi Performa Model

Evaluasi dilakukan untuk menilai sejauh mana model Binomial Negatif mampu menjelaskan variasi data diare yang memiliki fluktuasi ekstrem.

Tabel 4.4: Indikator Evaluasi Performa Model
Indikator Nilai
AIC (Akaike Information Criterion) 566.750
Log-Likelihood -278.370
Residual Deviance 27.490
Parameter Theta (Dispersion) 9.229

Interpretasi:

Nilai AIC sebesar 566,750 menunjukkan tingkat kecocokan model yang relatif baik dan dapat digunakan sebagai dasar pembanding dengan model alternatif. Nilai log-likelihood sebesar −278,370 mengindikasikan bahwa model mampu menjelaskan data dengan tingkat kecocokan yang memadai. Residual deviance sebesar 27,490 yang relatif kecil menunjukkan tidak adanya penyimpangan besar antara nilai observasi dan nilai yang diprediksi oleh model. Selain itu, nilai parameter dispersi (theta) sebesar 9,229 menegaskan bahwa model Binomial Negatif berhasil menangani overdispersi yang terdapat pada data, sehingga model dinilai layak dan stabil untuk analisis jumlah kasus diare.

5 BAB V KESIMPULAN DAN SARAN

5.1 Kesimpulan

Analisis epidemiologi menunjukkan bahwa kasus diare di Provinsi Jawa Barat memiliki variasi spasial dan temporal yang jelas, dengan beberapa wilayah perkotaan menunjukkan prevalensi yang lebih tinggi. Tren kasus meningkat hingga tahun 2022 dan menurun signifikan pada tahun 2024. Hasil pemodelan Binomial Negatif menunjukkan bahwa sarana kesehatan berpengaruh signifikan dalam menurunkan jumlah kasus diare, sedangkan akses sanitasi layak dan status gizi buruk balita tidak berpengaruh signifikan secara statistik. Model yang digunakan terbukti sesuai dan stabil dalam menangani karakteristik data yang mengalami overdispersi.

5.2 Saran

Pemerintah daerah disarankan untuk memprioritaskan peningkatan dan pemerataan sarana kesehatan sebagai strategi utama pengendalian diare. Selain itu, upaya perbaikan sanitasi lingkungan dan edukasi perilaku hidup bersih dan sehat tetap perlu dilakukan secara berkelanjutan. Penelitian selanjutnya disarankan menambahkan variabel lain serta menggunakan data longitudinal untuk memperoleh analisis yang lebih komprehensif.

6 Acknowledgement

Peneliti mengucapkan terima kasih kepada Bapak Dr. I Gede Nyoman Mindra Jaya, S.Si., M.Si., selaku dosen pengampu mata kuliah Epidemiologi, atas bimbingan, arahan teknis, serta ilmu yang diberikan selama ini. Apresiasi juga disampaikan kepada rekan-rekan mahasiswa Program Studi Statistika Universitas Padjadjaran atas dukungan dan diskusi yang membantu selama proses pembelajaran.

Selain itu, peneliti menyampaikan terima kasih kepada alat bantu kecerdasan buatan (AI) ChatGPT yang digunakan sebagai pendukung dalam pengembangan sintaks pemrograman R, perbaikan tata bahasa akademik, serta penyusunan struktur visualisasi dan narasi laporan. Meskipun demikian, seluruh proses analisis data, verifikasi perhitungan, interpretasi hasil, dan penarikan kesimpulan dilakukan sepenuhnya oleh peneliti.

7 Lampiran

7.1 Referensi

  • Jaya, I. G. N. M. (2025). Epidemiologi.
  • Agresti, A. (2015). Foundations of Linear and Generalized Linear Models. Wiley.
  • Zain, Z. (2025). Faktor hubungan kondisi sanitasi dengan kejadian diare: Literature review. Jurnal Kesehatan Tambusai, 6(1).
  • Putri, F. L. A. (2025). Faktor risiko diare pada anak usia 12–59 bulan di wilayah kerja Puskesmas Pembina Kota Palembang. Jurnal Riset Ilmu Kesehatan Umum dan Farmasi, 3(4).

7.4 Script Analisis (Replication Code)

## ----setup, include=FALSE------------------------------------------------------------------------------------------------------------
knitr::opts_chunk$set(
  echo = FALSE,     
  message = FALSE,  
  warning = FALSE   
)

library(readxl)
library(dplyr)
library(knitr)
library(scales)
library(ggplot2)
library(tidyr)
library(MASS)
library(broom)
library(sf)
library(patchwork)
library(car)

# --- LOADING DATA ---
# Panggil library
library(readxl)
library(dplyr)

# Langkah 1: Baca file Excel dan simpan ke objek 'raw_data'
raw_data <- read_excel("data uas epidem.xlsx")

data_diare <- raw_data |>
  rename(
    Wilayah           = `Kabupaten/kota`,
    Jumlah_Diare      = `Jumlah Kasus Diare`,
    Jumlah_Penduduk   = `Jumlah Penduduk`,
    Akses_Sanitasi    = `% Akses Sanitasi`, # Nama asli kolom di excel
    Gizi_Buruk_Balita = `Balita Gizi Buruk`,
    Sarana_Kesehatan  = `Sarana Kesehatan`
  ) |>
  mutate(
    # Pastikan Akses_Sanitasi jadi angka (numeric)
    Akses_Sanitasi = as.numeric(Akses_Sanitasi),
    Prevalensi_Pct = round((Jumlah_Diare / Jumlah_Penduduk) * 100, 3)
  )

data_tren_wide <- read_excel("data diare tahunan.xlsx") 

# 2. Baru lakukan pivot_longer pada data yang sudah terbaca
data_tren_long <- data_tren_wide %>%
  pivot_longer(
    cols = -1,               # Mengambil semua kolom kecuali kolom pertama (wilayah)
    names_to = "Tahun", 
    values_to = "Jumlah_Kasus"
  ) %>%
  mutate(Tahun = as.integer(Tahun))

# Cek hasil transformasi data
head(data_tren_long)

data_tren_total <- data_tren_long %>%
  group_by(Tahun) %>%
  summarise(Total_Kasus_Jabar = sum(Jumlah_Kasus, na.rm = TRUE))


## ------------------------------------------------------------------------------------------------------------------------------------
summary_table <- data_diare |>
  summarise(across(where(is.numeric), list(
    Min = ~min(.x, na.rm = TRUE),
    Mean = ~mean(.x, na.rm = TRUE),
    Median = ~median(.x, na.rm = TRUE),
    Max = ~max(.x, na.rm = TRUE),
    SD = ~sd(.x, na.rm = TRUE)
  ))) |>
  pivot_longer(everything(), 
               names_to = c("Variable", ".value"), 
               names_pattern = "(.*)_(Min|Mean|Median|Max|SD)")

kable(summary_table, digits = 2, caption = "Tabel 4.1: Ringkasan Statistik Deskriptif")


## ----plot-kasus----------------------------------------------------------------------------------------------------------------------
data_diare |>
  ggplot(aes(x = reorder(Wilayah, Prevalensi_Pct), y = Prevalensi_Pct)) +
  geom_col(fill = "#1E88E5") +
  geom_text(aes(label = round(Prevalensi_Pct, 2)), hjust = -0.1, size = 3) +
  coord_flip() +
  labs(title = "Gambar 4.1: Prevalensi Kasus Diare per Kabupaten/Kota", x = "Wilayah", y = "Prevalensi (%)") +
  theme_minimal()


## ----plot-prev-----------------------------------------------------------------------------------------------------------------------
# Muat dan sinkronisasi data spasial
shp <- readRDS("jabar_shapefile.rds") %>% st_as_sf()
data_diare_clean <- data_diare %>%
  mutate(Wilayah_Clean = tolower(trimws(as.character(Wilayah))),
         Wilayah_Clean = gsub("^kab\\.?\\s*|^kabupaten\\s+", "", Wilayah_Clean))
shp_clean <- shp %>%
  mutate(Wilayah_Clean = tolower(trimws(as.character(NAME_2))),
         Wilayah_Clean = gsub("^kabupaten\\s+", "", Wilayah_Clean))
peta_final <- left_join(shp_clean, data_diare_clean, by = "Wilayah_Clean")


## ----map-kasus-sanitasi, echo=FALSE, message=FALSE, warning=FALSE,fig.width=12, fig.height=5, out.width="100%", fig.align="center"----
library(ggplot2)
library(patchwork)

p_kasus <- ggplot(peta_final) +
  geom_sf(aes(fill = Jumlah_Diare), color = "white", linewidth = 0.2) +
  scale_fill_viridis_c(option = "mako", name = "Jumlah Kasus") +
  labs(title = "Distribusi Kasus Diare") +
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold"),
    plot.margin = margin(5, 5, 0, 5)
  )

p_sanit <- ggplot(peta_final) +
  geom_sf(aes(fill = Akses_Sanitasi), color = "white", linewidth = 0.2) +
  scale_fill_viridis_c(option = "viridis", name = "Sanitasi (%)") +
  labs(title = "Akses Sanitasi Layak") +
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold"),
    plot.margin = margin(5, 5, 0, 5)
  )

(p_kasus + p_sanit) + plot_layout(guides = "collect")



## ----map-gizi-sarana, echo=FALSE, message=FALSE, warning=FALSE,fig.width=12, fig.height=5, out.width="100%", fig.align="center"------
p_gizi <- ggplot(peta_final) +
  geom_sf(aes(fill = Gizi_Buruk_Balita), color = "white", linewidth = 0.2) +
  scale_fill_viridis_c(option = "rocket", name = "Jumlah Balita") +
  labs(title = "Balita Gizi Buruk") +
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold"),
    plot.margin = margin(5, 5, 0, 5)
  )

p_srk <- ggplot(peta_final) +
  geom_sf(aes(fill = Sarana_Kesehatan), color = "white", linewidth = 0.2) +
  scale_fill_viridis_c(option = "magma", name = "Jumlah Sarana") +
  labs(title = "Sarana Kesehatan") +
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold"),
    plot.margin = margin(5, 5, 0, 5)
  )

(p_gizi + p_srk) + plot_layout(guides = "collect")


## ----plot-tren, echo=FALSE, message=FALSE, warning=FALSE-----------------------------------------------------------------------------

data_tren_total$Tahun <- as.numeric(as.character(data_tren_total$Tahun))

ggplot(data_tren_total, aes(x = Tahun, y = Total_Kasus_Jabar)) +
  geom_line(color = "#DC3545", size = 1.2) +
  geom_point(color = "#DC3545", size = 3) +
  geom_text(aes(label = comma(Total_Kasus_Jabar)), vjust = -1.5, size = 3.5, family = "serif") +
  scale_y_continuous(labels = comma, expand = expansion(mult = c(0.1, 0.2))) +
  scale_x_continuous(breaks = unique(data_tren_total$Tahun)) +
  labs(
    title = "Gambar 4.5: Tren Total Kasus Diare Provinsi Jawa Barat (2020-2024)",
    x = "Tahun",
    y = "Total Kasus Diare"
  ) +
  theme_minimal() +
  theme(text = element_text(family = "serif")) # Biar font grafiknya juga Times New Roman


## ----diagnostik-model, echo=FALSE, message=FALSE, warning=FALSE----------------------------------------------------------------------
library(dplyr)
library(knitr)
library(tibble)

# Overdispersi
ratio_disp <- var(data_diare$Jumlah_Diare) / mean(data_diare$Jumlah_Diare)

# VIF
model_vif <- lm(Jumlah_Diare ~ Akses_Sanitasi + Gizi_Buruk_Balita + Sarana_Kesehatan,
                data = data_diare)
vif_vals <- car::vif(model_vif)

# 1) Tabel ringkas diagnostik (rasio overdispersi)
diagnostik_tbl <- tibble(
  Indikator = "Rasio Varians/Mean (Overdispersi)",
  Nilai = round(ratio_disp, 1)
)

# 2) Tabel VIF yang ada kolom variabelnya
vif_tbl <- tibble(
  Variabel = names(vif_vals),
  VIF = as.numeric(vif_vals)
)

kable(diagnostik_tbl, caption = "Tabel 4.2a: Indikator Overdispersi")
kable(vif_tbl, digits = 3, caption = "Tabel 4.2b: Uji Multikolinieritas (VIF)")



## ----model-nb, message=FALSE, warning=FALSE------------------------------------------------------------------------------------------
model_nb <- MASS::glm.nb(Jumlah_Diare ~ Akses_Sanitasi + Gizi_Buruk_Balita + Sarana_Kesehatan + 
                   offset(log(Jumlah_Penduduk)), data = data_diare)

# Tabel Estimasi IRR
hasil_irr <- broom::tidy(model_nb, exponentiate = TRUE, conf.int = TRUE)
knitr::kable(hasil_irr, digits = 3, 
             col.names = c("Variabel", "IRR", "Std. Error", "Statistik-z", "p-value", "Konf. Bawah", "Konf. Atas"),
             caption = "Tabel 4.3: Estimasi Model Binomial Negatif")


## ----eval-model, message=FALSE, warning=FALSE----------------------------------------------------------------------------------------
eval_performance <- data.frame(
  Indikator = c("AIC (Akaike Information Criterion)", "Log-Likelihood", "Residual Deviance", "Parameter Theta (Dispersion)"),
  Nilai = c(round(AIC(model_nb), 2), 
           round(as.numeric(logLik(model_nb)), 2), 
           round(model_nb$deviance, 2),
           round(model_nb$theta, 3))
)
knitr::kable(eval_performance, caption = "Tabel 4.4: Indikator Evaluasi Performa Model")


## ----tampil-script, echo=FALSE, results='asis'---------------------------------------------------------------------------------------
cat("```r\n")
cat(readLines("Lampiran_Script_Diare_Jabar.R"), sep = "\n")
cat("\n```")