/*==============================================================================
  DETERMINAN PEMANFAATAN PERSALINAN DI FASILITAS KESEHATAN DI INDONESIA:
  ANALISIS DATA SDKI 2017
=============================================================================*/

* ============================================================================
* PERSIAPAN AWAL
* ============================================================================

clear all
set more off
set maxvar 10000

* ============================================================================
* LANGKAH 1: BUKA DATA DAN LIHAT STRUKTUR
* ============================================================================

use "C:\Users\Lukman Hakim\Downloads\DHS\IDIR71FL.DTA", clear

* Lihat dataset
describe, short

* Output: 49.627 observasi dan 5.491 variabel

* Cek variabel-variabel yang digunakan
describe v005 v012 v021 v022 v025 v106 v157 v158 v159 v190 v208 v714 m15_1 m14_1 bord_01

* ============================================================================
* LANGKAH 2: FILTER SAMPEL
* ============================================================================

* v208 = jumlah kelahiran dalam 5 tahun terakhir
*  hanya menganalisis wanita yang punya kelahiran dalam 5 tahun terakhir
tab v208
keep if v208 >= 1
* Sekarang tersisa ser 15.357 observasi


* ============================================================================
* LANGKAH 3: BUAT VARIABEL OUTCOME
* ============================================================================

* Lihat distribusi tempat persalinan
tab m15_1, miss

* Recode: 1 = fasilitas kesehatan, 0 = non-faskes
* Nilai di data:
*   Non-Faskes: 11=rumah sendiri, 12=rumah lain, 96=lainnya
*   Faskes Publik: 21=RS pemerintah, 22=klinik pemerintah, 23=puskesmas,
*                  24=mobile clinic, 25=bidan desa, 26=public lain,
*                  27=posyandu, 28=pos kesehatan, 29=UKBM lain
*   Faskes Swasta: 31=RS swasta, 32=klinik swasta, 33=dokter obgyn,
*                  34=dokter umum, 35=bidan swasta, 36=perawat, 37=swasta lain

gen faskes = .
replace faskes = 0 if m15_1 == 11 | m15_1 == 12 | m15_1 == 96
replace faskes = 1 if m15_1 >= 21 & m15_1 <= 29
replace faskes = 1 if m15_1 >= 31 & m15_1 <= 37

label define faskes_lab 0 "Non-Faskes" 1 "Fasilitas Kesehatan"
label values faskes faskes_lab
label variable faskes "Persalinan di Fasilitas Kesehatan"

* Cek hasil recode
tab faskes, miss
tab m15_1 faskes, miss
* Pastikan: 11,12,96 -> 0 dan 21-29,31-37 -> 1

* Buang yang missing (tidak ada informasi tempat persalinan)
drop if faskes == .
* Sekarang tersisa ser 15.321 observasi


* ============================================================================
* LANGKAH 4: BUAT VARIABEL-VARIABEL INDEPENDEN
* ============================================================================

* ----- (a) Kelompok Usia Ibu -----
* v012 = usia responden saat ini (15-49)
tab v012

gen usia_kel = .
replace usia_kel = 1 if v012 >= 15 & v012 <= 19
replace usia_kel = 2 if v012 >= 20 & v012 <= 24
replace usia_kel = 3 if v012 >= 25 & v012 <= 29
replace usia_kel = 4 if v012 >= 30 & v012 <= 34
replace usia_kel = 5 if v012 >= 35 & v012 <= 39
replace usia_kel = 6 if v012 >= 40 & v012 <= 49

label define usia_lab 1 "15-19" 2 "20-24" 3 "25-29" 4 "30-34" 5 "35-39" 6 "40-49"
label values usia_kel usia_lab
label variable usia_kel "Kelompok Usia Ibu"
tab usia_kel


* ----- (b) Pendidikan Ibu -----
* v106: 0=no education, 1=primary, 2=secondary, 3=higher
* pakai langsung, tapi beri label Indonesia
tab v106

gen pendidikan = v106
label define pend_lab 0 "Tidak Sekolah" 1 "SD" 2 "SMP/SMA" 3 "Perguruan Tinggi"
label values pendidikan pend_lab
label variable pendidikan "Tingkat Pendidikan Ibu"
tab pendidikan


* ----- (c) Status Pekerjaan -----
* v714: 0=tidak bekerja, 1=bekerja
tab v714, miss

gen bekerja = v714
label define kerja_lab 0 "Tidak Bekerja" 1 "Bekerja"
label values bekerja kerja_lab
label variable bekerja "Status Pekerjaan Ibu"
tab bekerja, miss


* ----- (d) Kuintil Kekayaan -----
* v190: 1=poorest, 2=poorer, 3=middle, 4=richer, 5=richest
tab v190

gen wealth = v190
label define wealth_lab 1 "Terbawah" 2 "Menengah Bawah" 3 "Menengah" 4 "Menengah Atas" 5 "Teratas"
label values wealth wealth_lab
label variable wealth "Kuintil Kekayaan"
tab wealth


* ----- (e) Wilayah Tempat Tinggal -----
* v025: 1=urban, 2=rural
tab v025

gen wilayah = v025
label define wil_lab 1 "Perkotaan" 2 "Perdesaan"
label values wilayah wil_lab
label variable wilayah "Wilayah Tempat Tinggal"
tab wilayah


* ----- (f) Kunjungan ANC -----
* m14_1 = jumlah kunjungan ANC untuk kelahiran terakhir
* Nilai: 0=tidak ANC, 1-40=jumlah kunjungan, 98=tidak tahu
tab m14_1, miss

gen anc_kel = .
replace anc_kel = 0 if m14_1 == 0
replace anc_kel = 1 if m14_1 >= 1 & m14_1 <= 3
replace anc_kel = 2 if m14_1 >= 4 & m14_1 <= 40
* 98 = don't know -> jadikan missing
* m14_1 yang sudah missing tetap missing

label define anc_lab 0 "Tidak ANC" 1 "1-3 kali" 2 "4+ kali"
label values anc_kel anc_lab
label variable anc_kel "Kunjungan ANC"
tab anc_kel, miss


* ----- (g) Paritas / Urutan Kelahiran -----
* bord_01 = urutan kelahiran untuk kelahiran terakhir
* Nilai: 1-13
tab bord_01, miss

gen paritas = .
replace paritas = 1 if bord_01 == 1
replace paritas = 2 if bord_01 >= 2 & bord_01 <= 3
replace paritas = 3 if bord_01 >= 4 & bord_01 != .

label define par_lab 1 "Anak ke-1" 2 "Anak ke-2-3" 3 "Anak ke-4+"
label values paritas par_lab
label variable paritas "Urutan Kelahiran"
tab paritas, miss


* ----- (u) Ackeses Media -----
* v157=koran (0-3), v158=radio (0-3), v159=TV (0-3)
* 0=tidak sama sekali, 1=kurang dari seminggu sekali,
* 2=minimal seminggu sekali, 3=hampir setiap hari
tab1 v157 v158 v159, miss

gen media = .
replace media = 0 if v157 == 0 & v158 == 0 & v159 == 0	replace media = 1 if media == . & (v157 >= 1 | v158 >= 1 | v159 >= 1)

label define media_lab 0 "Tidak Ada Akses" 1 "Ada Akses Media"
label values media media_lab
label variable media "Akses terhadap Media"
tab media, miss


* ============================================================================
* LANGKAH 8: SETUP SURVEY DESIGN
* ============================================================================

* DHS menggunakan desain sampling kompleks:
* v021 = primary sampling unit (cluster/PSU)
* v022 = strata (provinsi x urban/rural)
* v005 = sampling weight (perlu dibagi 1.000.000)

gen wt = v005 / 1000000
label variable wt "Sampling Weight"

svyset v021 [pweight=wt], strata(v022) singleunit(centered)

* ============================================================================
* LANGKAH 9: SIMPAN DATA BERSIH
* ============================================================================

save "C:\Users\Lukman Hakim\Downloads\DHS\OUTPUT\data_analisis_bersih.dta", replace

* ============================================================================
* LANGKAH 10: ANALISIS DESKRIPTIF (TABEL 1)
* ============================================================================

svy: tab faskes
* Catat: persentase Ya dan Tidak

svy: tab usia_kel
svy: tab pendidikan
svy: tab bekerja
svy: tab wealth
svy: tab wilayah
svy: tab anc_kel
svy: tab paritas
svy: tab media

* Untuk melihat n (unweighted) bersamaan:
tab faskes
tab usia_kel
tab pendidikan
tab bekerja
tab wealth
tab wilayah
tab anc_kel
tab paritas
tab media


* ============================================================================
* LANGKAH 11: ANALISIS BIVARIAT - CHI SQUARE (TABEL 2)
* ============================================================================

* Gunakan svy: tab dengan opsi col per untuk column percentages
* Uji chi-square otomatis menggunakan koreksi Rao-Scott

* Catat: persentase kolom dan p-value untuk setiap variabel

svy: tab usia_kel faskes, col per
svy: tab pendidikan faskes, col per
svy: tab bekerja faskes, col per
svy: tab wealth faskes, col per
svy: tab wilayah faskes, col per
svy: tab anc_kel faskes, col per
svy: tab paritas faskes, col per
svy: tab media faskes, col per


* ============================================================================
* LANGKAH 12: REGRESI LOGISTIK - CRDE OP€TABEL 4, KOLON CRUDE)
* ============================================================================

* Perintah "svy: logistic" otomatis menampilkan Odds Ratio
* Referensi kategori: angka terkecil, kecuali ditentukan lain

* Usia (ref: 25-29 = kategori 3)
svy: logistic faskes ib3.usia_kel

* Pendidikan (ref: Tidak Sekolah = 0)
svy: logistic faskes i.pendidikan

* Status Pekerjaan (ref: Tidak Bekerja = 0)
svy: logistic faskes i.bekerja

* Kuintil Kekayaan (ref: Terbawah = 1)
svy: logistic faskes i.wealth

* Wilayah (ref: Perdesaan = 2)
svy: logistic faskes ib2.wilayah

* ANC (ref: Tidak ANC = 0)
svy: logistic faskes i.anc_kel

* Paritas (ref: Anak ke-1 = 1)
svy: logistic faskes i.paritas

* Akses Media (ref: Tidak Ada Akses = 0)
svy: logistic faskes i.media


* ============================================================================
* LANGKAH 13: REGRESI LOGISTIK MULTIVARIAT - ADJUSTED OR (TABEL 5)
* ============================================================================

* Semua variabel dimasukkan bersamaan dalam satu model
* ib3. dan ib2. untuk menentukan kategori referensi

svy: logistic faskes ib3.usia_kel i.pendidikan i.bekerja i.wealth ib2.wilayah i.anc_kel i.paritas i.media

* Simpan hasil model
estimates store model_full

* Tampilkan dengan 95% CI yang lebih rapi
svy: logistic faskes ib3.usia_kel i.pendidikan i.bekerja i.wealth ib2.wilayah i.anc_kel i.paritas i.media, or


* ============================================================================
* LANGKAH 14: POST-ESTIMATION (UNTUK PEMBAHASAN)
* ============================================================================

* Predicted probabilities per kategori
margins pendidikan
margins wealth
margins wilayah
margins anc_kel

* Predicted probabilities dengan grafik
marginsplot, name(wealth_plot, replace)
marginsplot, name(anc_plot, replace)