/* USE THE BIRTHS RECODE: BDBR72FL BDHS 2014 BY: MLULEKI TSAWE - (University of the Western Cape, South Africa) */ clear all set matsize 800 set mem 1g set maxvar 9000 cd "..." // INSERT YOUR PATH HERE use "BDBR72FL", clear set more off ******************************************************************************** ** WEIGHT VARIABLE gen weight = v005/1000000 ******************************************************************************** ** SURVEY SET gen psu = v021 gen strata = v023 svyset psu [pw = weight], strata(strata) vce(linearized) *svydes ******************************************************************************** // RENAME rename v013 age rename v106 education rename v190 wealth rename v025 residence rename v024 region *rename sdist district //////////////////////////////////////////////////////////////////////////////// ** QUALIFIED DOCTOR recode m2a (1=1 "doctor") (0=0 "not doctor") (else=.), gen(doctor) label var doctor "Antenatal care provided by a doctor" label val doctor doctor ** NURSE/MIDWIFE/PARAMEDIC cap drop NMP gen NMP=. replace NMP = 0 if m2b==0 | (m2a==1) replace NMP = 1 if m2b==1 & (m2a ==0) label define NMP 0"not NMP" 1"NMP" label var NMP "Antenatal care provided by a nurse/midwife/paramedic" label val NMP NMP ** FAMILY WELFARE VISITOR cap drop FWV gen FWV=. replace FWV = 0 if m2c==0 | (m2a==1) replace FWV = 1 if m2c==1 & (m2a ==0 & m2b==0) label define FWV 0"not FWV" 1"FWV" label var FWV "Antenatal care provided by a family welfare visitor" label val FWV FWV ** COMMUNITY SKILLED BIRTH ATTENDANT cap drop CSBA gen CSBA=. replace CSBA = 0 if m2d==0 | (m2a==1) replace CSBA = 1 if m2d==1 & (m2a ==0 & m2b==0) label define CSBA 0"not CSBA" 1"CSBA" label var CSBA "Antenatal care provided by a community skilled birth attendant" label val CSBA CSBA ** MEDICAL ASSISTANT/SUB-ASSISTANT COMMUNITY MEDICAL OFFICER (MA/SACMO) cap drop MA_SACMO gen MA_SACMO=. replace MA_SACMO = 0 if m2e==0 | (m2a==1) replace MA_SACMO = 1 if m2e==1 & (m2a ==0 & m2b==0) label define MA_SACMO 0"not MA_SACMO" 1"MA_SACMO" label var MA_SACMO "Antenatal care provided by a medical assistant/sub-assistant community medical officer (ma/sacmo)" label val MA_SACMO MA_SACMO ** COMMUNITY HEALTH CARE PROVIDER cap drop CHCP gen CHCP=. replace CHCP = 0 if m2f==0 | (m2a==1) replace CHCP = 1 if m2f==1 & (m2a ==0 & m2b==0) label define CHCP 0"not CHCP" 1"CHCP" label var CHCP "Antenatal care provided by a community health care provider" label val CHCP CHCP ** ========================================================================== ** ** ========================================================================== ** ** ========================================================================== ** ** SKILLED ANTENATAL CARE PROVIDER ****** Percentage receiving antenatal care from a skilled provider gen skilled_ANC = 0 label define skilled_ANC 0"Unskilled" 1"Skilled provider" label var skilled_ANC "Antenatal care from a skilled provider" label val skilled_ANC skilled_ANC foreach xvar of varlist m2a m2b m2c m2d m2e { replace skilled_ANC=1 if `xvar'==1 } * ** ANTENATAL CARE VISITS * Replicating DHS table cap drop antenatal_dhs recode m14 (0=0 "None") (1=1 "1") (2=2 "2") (3=3 "3") (4/32=4 "4+") /// (else=88 "DNK/Missing"), gen(antenatal_dhs) label var antenatal_dhs "Antenatal visits - as in SLDHS report" label val antenatal_dhs antenatal_dhs * Any antenatal care cap drop any_ANC recode m14 (1/20=1 "Any ANC") /// (else=0 "None/DNK/Missing"), gen(any_ANC) label var any_ANC "Any antenatal care visit" label val any_ANC any_ANC *==============================================================================* ** DROP IF NOT WITHIN SAMPLE qui regr m2a m2b m2c m2d m2e /*if v208 >0 & v208 !=.*/ [pw=weight] drop if e(sample)!=1 ******************************************************************************** ** CHECK svy: tab skilled_ANC, count format(%4.0f) svy: tab skilled_ANC, percent format(%4.1f) svy: tab wealth skilled_ANC, percent format(%4.1f) row miss svy: tab antenatal_dhs residence, percent format(%4.1f) col miss tabstat m14 if antenatal_dhs >=1 & antenatal_dhs <=4 [aw=weight], by(residence) stat(mean sd min max) format(%4.1f) long tabstat m14 if antenatal_dhs >=1 & antenatal_dhs <=4 [aw=weight], by(age) stat(mean sd min max) format(%4.1f) long ******************************************************************************** ******************************************************************************** ******************************************************************************** * Mother’s age at birth // I CANNOT REPLICATE THIS // ***************************************** * Current age recode v012 (15/19=1 "<20") (20/34=2 "20-34") (35/49=3 "35=49"), gen(age_current) label var age_current "Current age of respondent" label val age_current age_current * Marital status recode v501 (1=1 "Married") (else=0 "Not married"), gen (marital_stat) label var marital_stat "Marital status" label val marital_stat marital_stat * Birth order gen birth_order1 = bord replace birth_order1 = bord-1 if b0 == 2 replace birth_order1 = bord-2 if b0 == 3 recode birth_order1 (1=1 "1") (2/3=2 "2-3") (4/5=3 "4-5") /// (6/20=4 "6+"), gen(birth_order) label var birth_order "Birth order" label values birth_order birth_order * Educational attainment cap drop educ_attainment recode v149 (0=0 "No education") (1=1 "Primary incomplete") /// (2=2 "Primary complete") (3=3 "Secondary incomplete") /// (4/5=4 "Secondary complete or higher"), gen(educ_attainment) label var educ_attainment "Educational attainment" label val educ_attainment educ_attainment ** ========================================================================== ** ** ========================================================================== ** ** ========================================================================== ** ** READING NEWSPAPERS (at least once a week) cap drop news_once recode v157 (2/3=1 "Yes") (else=0 "No"), gen(news_once) label variable news_once "Reads a newspaper at least once a week?" label values news_once news_once ** WATCHES TV (at least once a week) cap drop watch_tv recode v159 (2/3=1 "Yes") (else=0 "No"), gen(watch_tv) label variable watch_tv "Watches television at least once a week?" label values watch_tv watch_tv ** LISTENS TO THE RADIO (at least once a week) cap drop listen_radio recode v158 (2/3=1 "Yes") (else=0 "No"), gen(listen_radio) label variable listen_radio "Listens to the radio at least once a week?" label values listen_radio listen_radio *********************************************************** * ACCESSES ALL THREE MEDIA (at least once a week) cap drop all_media gen all_media = 0 foreach groupvar of varlist news_once watch_tv listen_radio { replace all_media=1 if (news_once==1 & watch_tv==1 & listen_radio==1) } * label define all_media 0"No" 1"Yes" label variable all_media "Accesses all three media at least once a week" label values all_media all_media * CEB recode v201 (1=1 "1 child") (2/3=2 "2-3 children") /// (4/max = 3 "4+ children"), gen (parity) label var parity "Total number of children ever born = parity" label val parity parity * Region and residence = Sub-regions cap drop sub_region egen sub_region = group(region residence), label *==============================================================================* *==============================================================================* *==============================================================================* ** MORE CHECKS ** *** Table 9.1 Antenatal care *** svy: tab age_current skilled_ANC, percent format(%4.1f) row miss svy: tab birth_order skilled_ANC, percent format(%4.1f) row miss svy: tab residence skilled_ANC, percent format(%4.1f) row miss svy: tab region skilled_ANC, percent format(%4.1f) row miss *svy: tab educ_attainment skilled_ANC, percent format(%4.1f) row miss tab educ_attainment skilled_ANC [iw=weight], row miss nof svy: tab wealth skilled_ANC, percent format(%4.1f) row miss svy: tab news_once skilled_ANC, percent format(%4.1f) row svy: tab watch_tv skilled_ANC, percent format(%4.1f) row svy: tab listen_radio skilled_ANC, percent format(%4.1f) row *svy: tab all_media skilled_ANC, percent format(%4.1f) row svy: tab v130 skilled_ANC, percent format(%4.1f) row svy: tab v501 skilled_ANC, percent format(%4.1f) row svy: tab parity skilled_ANC, percent format(%4.1f) row tab sub_region skilled_ANC [iw=weight], row miss nof *svy: tab sub_region skilled_ANC, percent format(%4.1f) row *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* svy: tab age_current skilled_ANC, count format(%4.0f) miss svy: tab birth_order skilled_ANC, count format(%4.0f) miss svy: tab residence skilled_ANC, count format(%4.0f) miss svy: tab region skilled_ANC, count format(%4.0f) miss svy: tab educ_attainment skilled_ANC, count format(%4.0f) miss svy: tab wealth skilled_ANC, count format(%4.0f) miss svy: tab news_once skilled_ANC, count format(%4.0f) miss svy: tab watch_tv skilled_ANC, count format(%4.0f) miss svy: tab listen_radio skilled_ANC, count format(%4.0f) miss svy: tab all_media skilled_ANC, count format(%4.0f) miss svy: tab v130 skilled_ANC, count format(%4.0f) miss svy: tab v501 skilled_ANC, count format(%4.0f) miss svy: tab parity skilled_ANC, count format(%4.0f) miss svy: tab sub_region skilled_ANC, count format(%4.0f) miss exit ******************************************************************************** svy: glm skilled_ANC ib(1).age_current ib(0).marital_stat /// ib(4).v130 ib(0).educ_attainment ib(1).wealth ib(4).birth_order /// ib(1).parity ib(0).all_media ib(2).residence ib(1).region, family(binomial) link(logit) eform svy: logistic skilled_ANC ib(1).age_current ib(0).marital_stat /// ib(4).v130 ib(0).educ_attainment ib(1).wealth ib(4).birth_order /// ib(1).parity ib(0).all_media ib(2).residence ib(1).region /* svy: logistic skilled_ANC age_current marital_stat /// v130 educ_attainment wealth birth_order /// parity all_media residence region graph bar (mean) skilled_ANC [pweight = weight], over(wealth) blabel(total, format(%6.2f)) ytitle(Average antenatal care use) by(, title(Average antenatal care use by wealth) subtitle(Differentials by residence) note(SLDHS (2013))) by(residence)