ANALISIS EPIDEMIOLOGI DAN BINOMIAL NEGATIF
PENYAKIT DIARE DI
PROVINSI JAWA BARAT TAHUN 2024
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.
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.
Berdasarkan latar belakang tersebut, rumusan masalah dalam kajian ini adalah:
Bagaimana tren perkembangan kasus diare di Provinsi Jawa Barat selama periode tahun 2020-2024?
Bagaimana sebaran spasial (peta distribusi) kasus diare di tingkat kabupaten/kota di Jawa Barat?
Faktor risiko apa saja yang secara signifikan mempengaruhi jumlah kasus diare berdasarkan pemodelan Binomial Negatif?
Tujuan dari laporan proyek epidemiologi ini adalah:
Mendeskripsikan tren temporal kasus diare di Jawa Barat dari tahun ke tahun.
Memetakan distribusi geografis penyakit untuk melihat pola pengelompokan kasus.
Menganalisis besarnya pengaruh variabel independen terhadap jumlah kasus diare menggunakan model regresi Binomial Negatif.
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.
Agent (Agen): Mikroorganisme patogen penyebab diare yang masuk ke tubuh melalui makanan atau air yang terkontaminasi.
Host (Pejamu): Individu yang rentan terhadap infeksi, dipengaruhi oleh karakteristik seperti usia dan kondisi kesehatan.
Environment (Lingkungan): Kondisi lingkungan yang memfasilitasi penularan, meliputi sanitasi, ketersediaan air bersih, dan kebersihan lingkungan.
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.
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.
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.
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.
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.
Analisis yang dilakukan dalam penelitian ini meliputi:
Analisis deskriptif epidemiologi, untuk menggambarkan pola kejadian diare berdasarkan waktu, tempat, dan populasi melalui perhitungan prevalensi, statistika deskriptif, dan visualisasi grafik.
Analisis spasial eksploratif, menggunakan peta tematik untuk menggambarkan sebaran geografis kasus diare antar kabupaten/kota dan mengidentifikasi pola pengelompokan wilayah.
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.
Tahapan analisis epidemiologi yang dilakukan dalam penelitian ini meliputi:
Integrasi Data: Menggabungkan data kasus diare, kependudukan, dan faktor lingkungan yang bersumber dari Open Data Jabar dan Badan Pusat Statistik (BPS).
Pembersihan Data: Melakukan pengecekan kelengkapan, konsistensi, dan kesesuaian format data agar siap dianalisis.
Analisis Deskriptif: Menghitung ukuran frekuensi penyakit berupa prevalensi kasus diare pada tingkat kabupaten/kota.
Analisis Tren Temporal: Mengamati perubahan dan pola kasus diare selama periode tahun 2020–2024.
Analisis Spasial: Menyajikan peta tematik untuk menggambarkan distribusi geografis kasus diare antarwilayah.
Pemodelan Regresi: Menyajikan peta tematik untuk menggambarkan distribusi geografis kasus diare antarwilayah.
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
| 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 |
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.
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
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.
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.1 Analisis Diagnostik
Pertama-tama dilakukan verifikasi Overdispersi, kemudian memastikan tidak ada hubungan linear yang kuat antar variabel independen dengan uji Multikolinieritas
| Indikator | Nilai |
|---|---|
| Rasio Varians/Mean (Overdispersi) | 6110.7 |
| 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:
| 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.
| 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.
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.
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.
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.
## ----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```")