1 Ringkasan

Laporan ini membangun model prediksi persentase penduduk miskin kabupaten/kota di Provinsi Jawa Timur tahun 2023. Target yang digunakan adalah persentase penduduk miskin, bukan garis kemiskinan nominal. Unit analisis adalah 38 kabupaten/kota; baris agregat Jawa Timur dikeluarkan dari data modeling.

Karena data hanya terdiri dari satu tahun dan 38 observasi, evaluasi utama menggunakan repeated 5-fold cross-validation sebanyak 10 repeats. Hasil model dibaca sebagai performa prediktif pada data yang tersedia, bukan bukti hubungan kausal.

2 Persiapan Data

source("scripts/run_all.R")
dataset <- readr::read_csv("data/processed/dataset_final.csv", show_col_types = FALSE)
model_dataset <- readr::read_csv("data/processed/model_dataset.csv", show_col_types = FALSE)
missing_summary <- readr::read_csv("output/tables/missing_summary.csv", show_col_types = FALSE)

knitr::kable(head(dataset, 10), caption = "Cuplikan dataset final")
Cuplikan dataset final
wilayah persentase_miskin ipm tpt pdrb_per_kapita_ribu rata_lama_sekolah sanitasi_layak jumlah_penduduk_ribu laju_pertumbuhan_penduduk persentase_penduduk kepadatan_penduduk rasio_jenis_kelamin
Bangkalan 19.35 66.82 6.18 25408 6.57 50.30 1091.8 1.07 2.63 839 97.6
Banyuwangi 7.34 73.79 4.75 58086 8.17 82.63 1743.9 0.76 4.20 485 100.1
Blitar 8.69 72.84 4.91 35812 8.04 82.50 1253.6 0.88 3.02 718 101.2
Bojonegoro 12.18 71.80 4.63 74242 7.88 92.63 1319.6 0.50 3.18 571 100.7
Bondowoso 13.34 70.56 4.15 31432 6.95 57.41 788.2 0.56 1.90 507 97.2
Gresik 10.96 78.44 6.82 130527 10.30 95.00 1350.4 1.08 3.25 1075 101.4
Jember 9.51 70.42 4.01 36837 6.97 64.47 2586.8 0.71 6.23 781 99.3
Jombang 9.15 75.16 4.66 36991 9.06 94.06 1351.3 0.91 3.25 1218 101.6
Kediri 10.72 74.68 5.79 30193 8.62 92.13 1677.2 0.92 4.04 1101 101.9
Kota Batu 3.31 79.07 4.52 93214 10.11 95.06 220.2 3.38 0.53 1134 101.3
knitr::kable(missing_summary, caption = "Ringkasan missing value")
Ringkasan missing value
variable missing_count
wilayah 0
persentase_miskin 0
ipm 0
tpt 0
pdrb_per_kapita_ribu 0
rata_lama_sekolah 0
sanitasi_layak 0
jumlah_penduduk_ribu 0
laju_pertumbuhan_penduduk 0
persentase_penduduk 0
kepadatan_penduduk 0
rasio_jenis_kelamin 0

Dataset final memiliki 38 observasi dan 12 kolom. Dataset modeling memakai variabel target dan enam prediktor utama sesuai scope project.

3 Analisis Eksploratif

descriptive_stats <- readr::read_csv("output/tables/descriptive_stats.csv", show_col_types = FALSE)
knitr::kable(head(descriptive_stats, 20), caption = "Statistik deskriptif")
Statistik deskriptif
metric value
persentase_miskin_mean 1.029263e+01
persentase_miskin_median 9.665000e+00
persentase_miskin_min 3.310000e+00
persentase_miskin_max 2.176000e+01
persentase_miskin_sd 4.321289e+00
ipm_mean 7.468211e+01
ipm_median 7.390500e+01
ipm_min 6.619000e+01
ipm_max 8.400000e+01
ipm_sd 4.711228e+00
tpt_mean 4.662895e+00
tpt_median 4.665000e+00
tpt_min 1.710000e+00
tpt_max 8.050000e+00
tpt_sd 1.428829e+00
pdrb_per_kapita_ribu_mean 7.065947e+04
pdrb_per_kapita_ribu_median 3.723250e+04
pdrb_per_kapita_ribu_min 2.384200e+04
pdrb_per_kapita_ribu_max 5.410680e+05
pdrb_per_kapita_ribu_sd 8.945138e+04

Grafik distribusi menunjukkan variasi kemiskinan antarwilayah. Grafik 10 wilayah tertinggi membantu mengidentifikasi wilayah yang relatif lebih berat dalam indikator kemiskinan. Matriks korelasi digunakan sebagai eksplorasi awal untuk melihat asosiasi linear antarvariabel, bukan sebagai bukti kausal.

4 Model Regresi Linear

Regresi Linear digunakan sebagai baseline karena mudah diinterpretasikan dan menjadi pembanding awal terhadap Random Forest.

lm_coefficients <- readr::read_csv("output/tables/lm_coefficients.csv", show_col_types = FALSE)
knitr::kable(lm_coefficients, digits = 4, caption = "Koefisien Regresi Linear")
Koefisien Regresi Linear
variable estimate std_error statistic p_value
(Intercept) 55.2588 22.5216 2.4536 0.0200
ipm -0.4601 0.4461 -1.0314 0.3103
tpt -0.3261 0.3873 -0.8422 0.4061
pdrb_per_kapita_ribu 0.0000 0.0000 0.5972 0.5547
rata_lama_sekolah -1.3358 1.2718 -1.0503 0.3017
sanitasi_layak 0.0203 0.0560 0.3621 0.7197
kepadatan_penduduk 0.0003 0.0003 0.8893 0.3807

Interpretasi koefisien dilakukan secara hati-hati karena dataset bersifat observasional, cross-section, dan ukuran sampelnya kecil.

5 Model Random Forest

Random Forest digunakan untuk menangkap pola non-linear dan interaksi antarvariabel yang mungkin tidak tertangkap oleh Regresi Linear. Tuning dilakukan pada parameter mtry, sedangkan jumlah pohon ditetapkan 500.

rf_importance <- readr::read_csv("output/tables/rf_feature_importance.csv", show_col_types = FALSE)
knitr::kable(rf_importance, digits = 4, caption = "Feature importance Random Forest")
Feature importance Random Forest
variable importance
rata_lama_sekolah 14.6685
ipm 12.2775
kepadatan_penduduk 10.2210
tpt 8.1197
pdrb_per_kapita_ribu 5.5210
sanitasi_layak 1.7648

Feature importance menunjukkan variabel yang paling informatif bagi prediksi model. Nilai ini tidak boleh ditulis sebagai bukti bahwa variabel tersebut menyebabkan kemiskinan.

6 Evaluasi Model

model_comparison <- readr::read_csv("output/tables/model_comparison.csv", show_col_types = FALSE)
knitr::kable(model_comparison, digits = 4, caption = "Perbandingan model berdasarkan repeated 5-fold cross-validation")
Perbandingan model berdasarkan repeated 5-fold cross-validation
model rmse r2 mae
Regresi Linear 3.0684 0.5390 2.4520
Random Forest 2.7134 0.6401 2.1449

Berdasarkan repeated 5-fold cross-validation, model dengan RMSE lebih kecil memiliki error prediksi rata-rata yang lebih rendah. R² menunjukkan proporsi variasi target yang dapat dijelaskan secara prediktif oleh model pada skema validasi tersebut.

Model terbaik pada eksperimen ini adalah Random Forest dengan RMSE 2.713, MAE 2.145, dan R² 0.64. Regresi Linear menghasilkan RMSE 3.068, MAE 2.452, dan R² 0.539.

7 Rekomendasi Kebijakan Berbasis Data

Rekomendasi berikut disusun dari variabel yang paling informatif dalam model dan tetap dibaca sebagai prioritas eksploratif, bukan klaim kausal final.

  1. Prioritaskan intervensi pendidikan di wilayah dengan rata-rata lama sekolah rendah, karena variabel pendidikan menjadi sinyal prediktif kuat dalam model.
  2. Perkuat strategi pembangunan manusia lintas sektor di wilayah dengan IPM rendah, terutama melalui layanan dasar pendidikan, kesehatan, dan ekonomi rumah tangga.
  3. Gunakan kepadatan penduduk dan karakteristik wilayah sebagai dasar penajaman program, karena kebutuhan wilayah perkotaan padat dan kabupaten rural tidak selalu sama.
  4. Integrasikan indikator ekonomi dan ketenagakerjaan dalam monitoring kemiskinan, tetapi hindari membaca TPT atau PDRB secara tunggal tanpa konteks lokal.

8 Keterbatasan

9 Kesimpulan

Pipeline berhasil menggabungkan tujuh sumber data BPS menjadi dataset kabupaten/kota Jawa Timur 2023, menjalankan EDA, membangun Regresi Linear dan Random Forest, mengevaluasi model dengan repeated k-fold cross-validation, serta menghasilkan feature importance dan rekomendasi kebijakan berbasis hasil prediktif.