******************************************************************************** /* Citation: Oxford Poverty and Human Development Initiative (OPHI), University of Oxford. 2019 Global Multidimensional Poverty Index - Ukraine MICS 2012 [STATA do-file]. Available from OPHI website: http://ophi.org.uk/ For further queries, contact: ophi@qeh.ox.ac.uk */ ******************************************************************************** clear all set more off set maxvar 10000 set mem 500m *** Working Folder Path *** global path_in "../rdta/Ukraine MICS 2012" global path_out "cdta" global path_ado "ado" ******************************************************************************** *** UKRAINE MICS 2012 *** ******************************************************************************** ******************************************************************************** *** Step 1: Data preparation *** Selecting main variables from CH, WM, HH & MN recode & merging with HL recode ******************************************************************************** /*Ukraine MICS 2012: No anthropometric data was collected for any of the groups. */ ******************************************************************************** *** Step 1.1 CH - CHILDREN's RECODE (under 5) ******************************************************************************** use "$path_in/ch.dta", clear rename _all, lower *** Generate individual unique key variable required for data merging *** hh1=cluster number; *** hh2=household number; *** ln=child's line number in household gen double ind_id = hh1*100000 + hh2*100 + ln format ind_id %20.0g label var ind_id "Individual ID" duplicates report ind_id //No duplicates gen child_CH=1 //Generate identification variable for observations in CH recode /*Note: Since anthropometric data was not collected for children under 5, the variables generated under this section takes missing value. */ *** Standard MPI indicator *** gen underweight = . lab var underweight "Child is undernourished (weight-for-age) 2sd - WHO" tab underweight, miss gen stunting = . lab var stunting "Child is stunted (length/height-for-age) 2sd - WHO" tab stunting, miss gen wasting = . lab var wasting "Child is wasted (weight-for-length/height) 2sd - WHO" tab wasting, miss *** Destitution indicator *** //Takes value 1 if the child is under 3 stdev below the median & 0 otherwise gen underweight_u = . lab var underweight_u "Child is undernourished (weight-for-age) 3sd - WHO" gen stunting_u = . lab var stunting_u "Child is stunted (length/height-for-age) 3sd - WHO" gen wasting_u = . lab var wasting_u "Child is wasted (weight-for-length/height) 3sd - WHO" //Retain relevant variables: keep ind_id child_CH ln underweight* stunting* wasting* order ind_id child_CH ln underweight* stunting* wasting* sort ind_id save "$path_out/UKR12_CH.dta", replace ******************************************************************************** *** Step 1.2 BR - BIRTH RECODE *** (All females 15-49 years who ever gave birth) ******************************************************************************** /*The purpose of step 1.2 is to identify children of any age who died in the last 5 years prior to the survey date.*/ //Ukraine MICS 2012 has no BH file, but PH file has relevant information use "$path_in/ph.dta", clear rename _all, lower *** Generate individual unique key variable required for data merging using: *** hh1=cluster number; *** hh2=household number; *** ln=women's line number. gen double ind_id = hh1*100000 + hh2*100 + ln format ind_id %20.0g label var ind_id "Individual ID" desc ph4c ph13u ph13n gen date_death = ph4c + ph13n //Date of death = date of birth/end of pregnancy (ph4c) + age at death(ph13n) gen mdead_survey = wdoi-date_death //Months dead from survey = Date of interview (wdoi) - date of death replace mdead_survey = . if (ph13n==0 | ph13n==.) & ph9==1 //Replace children who are alive as '0' and missing cases as '.' gen ydead_survey = mdead_survey/12 //Years dead from survey gen age_death = ph13n if ph9==2 label var age_death "Age at death in years" tab age_death, miss //Check whether the age is in years codebook ph9, tab (10) //bh5 - Child still alive: 1=Yes; 2=No gen child_died = 1 if ph9==2 //1=child dead; 0=child alive replace child_died = 0 if ph9==1 replace child_died = . if ph9==. label define lab_died 0"child is alive" 1"child has died" label values child_died lab_died tab ph9 child_died, miss bysort ind_id: egen tot_child_died = sum(child_died) //For each woman, sum the number of children who died //Identify child under 18 mortality in the last 5 years gen child18_died = child_died replace child18_died=0 if age_death>=18 & age_death<. label values child18_died lab_died tab child18_died, miss bysort ind_id: egen tot_child18_died_5y=sum(child18_died) if ydead_survey<=5 /*Total number of children under 18 who died in the past 5 years prior to the interview date */ replace tot_child18_died_5y=0 if tot_child18_died_5y==. & tot_child_died>=0 & tot_child_died<. /*All children who are alive or who died longer than 5 years from the interview date are replaced as '0'*/ replace tot_child18_died_5y=. if child18_died==1 & ydead_survey==. //Replace as '.' if there is no information on when the child died tab tot_child_died tot_child18_died_5y, miss bysort ind_id: egen childu18_died_per_wom_5y = max(tot_child18_died_5y) lab var childu18_died_per_wom_5y "Total child under 18 death for each women in the last 5 years (birth recode)" //Keep one observation per women bysort ind_id: gen id=1 if _n==1 keep if id==1 drop id duplicates report ind_id gen women_BH = 1 //Identification variable for observations in BH recode //Retain relevant variables keep ind_id women_BH childu18_died_per_wom_5y order ind_id women_BH childu18_died_per_wom_5y sort ind_id save "$path_out/UKR12_PH.dta", replace ******************************************************************************** *** Step 1.3 WM - WOMEN's RECODE *** (All eligible females 15-49 years in the household) ******************************************************************************** use "$path_in/wm.dta", clear rename _all, lower *** Generate individual unique key variable required for data merging *** hh1=cluster number; *** hh2=household number; *** ln=respondent's line number gen double ind_id = hh1*100000 + hh2*100 + ln format ind_id %20.0g label var ind_id "Individual ID" duplicates report ind_id //No duplicate gen women_WM =1 //Identification variable for observations in WM recode tab wb2, miss //233 women with no info on age tab cm1 cm8, miss /* Ukraine MICS 2012: one observation of woman who had never given birth but had a child who later died. This will be corrected later in the dofile */ //Retain relevant variables: keep wm7 cm1 cm8 cm9a cm9b ind_id women_WM order wm7 cm1 cm8 cm9a cm9b ind_id women_WM sort ind_id save "$path_out/UKR12_WM.dta", replace ******************************************************************************** *** Step 1.3 MN - MEN'S RECODE ***(All eligible man: 15-49 years in the household) ******************************************************************************** use "$path_in/mn.dta", clear rename _all, lower *** Generate individual unique key variable required for data merging *** hh1=cluster number; *** hh2=household number; *** ln=respondent's line number gen double ind_id = hh1*100000 + hh2*100 + ln format ind_id %20.0g label var ind_id "Individual ID" duplicates report ind_id gen men_MN=1 //Identification variable for observations in MR recode //Retain relevant variables: keep mcm1 mcm8 mcm9a mcm9b ind_id men_MN order mcm1 mcm8 mcm9a mcm9b ind_id men_MN sort ind_id save "$path_out/UKR12_MN.dta", replace ******************************************************************************** *** Step 1.4 HH - HOUSEHOLD RECODE ***(All households interviewed) ******************************************************************************** use "$path_in/hh.dta", clear rename _all, lower *** Generate individual unique key variable required for data merging *** hh1=cluster number; *** hh2=household number; gen double hh_id = hh1*100 + hh2 format hh_id %20.0g lab var hh_id "Household ID" save "$path_out/UKR12_HH.dta", replace ******************************************************************************** *** Step 1.5 HL - HOUSEHOLD MEMBER ******************************************************************************** use "$path_in/hl.dta", clear rename _all, lower *** Generate a household unique key variable at the household level using: ***hh1=cluster number ***hh2=household number gen double hh_id = hh1*100 + hh2 format hh_id %20.0g label var hh_id "Household ID" *** Generate individual unique key variable required for data merging using: *** hh1=cluster number; *** hh2=household number; *** hl1=respondent's line number. gen double ind_id = hh1*100000 + hh2*100 + hl1 format ind_id %20.0g label var ind_id "Individual ID" sort ind_id ******************************************************************************** *** Step 1.6 DATA MERGING ******************************************************************************** *** Merging PH Recode ***************************************** merge 1:1 ind_id using "$path_out/UKR12_PH.dta" // Using PH file (no BH file for UKR 2012 MICS) drop _merge erase "$path_out/UKR12_PH.dta" *** Merging WM Recode ***************************************** merge 1:1 ind_id using "$path_out/UKR12_WM.dta" tab hl7, miss gen temp = (hl7>0) tab women_WM temp, miss col tab wm7 if temp==1 & women_WM==., miss //Total of eligible women not interviewed drop temp drop _merge erase "$path_out/UKR12_WM.dta" *** Merging HH Recode ***************************************** merge m:1 hh_id using "$path_out/UKR12_HH.dta" tab hh9 if _m==2 drop if _merge==2 //Drop households that were not interviewed drop _merge erase "$path_out/UKR12_HH.dta" *** Merging MN Recode ***************************************** merge 1:1 ind_id using "$path_out/UKR12_MN.dta" drop _merge erase "$path_out/UKR12_MN.dta" *** Merging CH Recode ***************************************** merge 1:1 ind_id using "$path_out/UKR12_CH.dta" drop _merge erase "$path_out/UKR12_CH.dta" sort ind_id ******************************************************************************** *** Step 1.7 CONTROL VARIABLES ******************************************************************************** /* Households are identified as having 'no eligible' members if there are no applicable population, that is, children 0-5 years, adult women 15-49 years or adult men 15-49 years. These households will not have information on relevant indicators of health. As such, these households are considered as non-deprived in those relevant indicators.*/ *** No Eligible Women 15-49 years ***************************************** gen fem_eligible = (hl7>0) if hl7!=. bys hh_id: egen hh_n_fem_eligible = sum(fem_eligible) //Number of eligible women for interview in the hh gen no_fem_eligible = (hh_n_fem_eligible==0) //Takes value 1 if the household had no eligible females for an interview lab var no_fem_eligible "Household has no eligible women" tab no_fem_eligible, miss *** No Eligible Men 15-49 years ***************************************** gen male_eligible = (hl7a>0) if hl7a!=. bys hh_id: egen hh_n_male_eligible = sum(male_eligible) //Number of eligible men for interview in the hh gen no_male_eligible = (hh_n_male_eligible==0) //Takes value 1 if the household had no eligible males for an interview lab var no_male_eligible "Household has no eligible man" tab no_male_eligible, miss *** No Eligible Children 0-5 years ***************************************** gen child_eligible = (hl9>0 | child_CH==1) bys hh_id: egen hh_n_children_eligible = sum(child_eligible) //Number of eligible children for anthropometrics gen no_child_eligible = (hh_n_children_eligible==0) //Takes value 1 if there were no eligible children for anthropometrics lab var no_child_eligible "Household has no children eligible" tab no_child_eligible, miss *** No Eligible Women and Men *********************************************** gen no_adults_eligible = (no_fem_eligible==1 & no_male_eligible==1) //Takes value 1 if the household had no eligible men & women for an interview lab var no_adults_eligible "Household has no eligible women or men" tab no_adults_eligible, miss *** No Eligible Children and Women *********************************************** /*NOTE: In the DHS datasets, we use this variable as a control variable for the nutrition indicator if nutrition data is present for children and women. However, in MICS, we do NOT use this as a control variable. This is because nutrition data is only collected from children. However, we continue to generate this variable in this do-file so as to be consistent*/ gen no_child_fem_eligible = (no_child_eligible==1 & no_fem_eligible==1) lab var no_child_fem_eligible "Household has no children or women eligible" tab no_child_fem_eligible, miss *** No Eligible Women, Men or Children *********************************************** /*NOTE: In the DHS datasets, we use this variable as a control variable for the nutrition indicator if nutrition data is present for children, women and men. However, in MICS, we do NOT use this as a control variable. This is because nutrition data is only collected from children. However, we continue to generate this variable in this do-file so as to be consistent*/ gen no_eligibles = (no_fem_eligible==1 & no_male_eligible==1 & no_child_eligible==1) lab var no_eligibles "Household has no eligible women, men, or children" tab no_eligibles, miss *** No Eligible Subsample ***************************************** /*Note that the MICS surveys do not collect hemoglobin data. As such, this variable takes missing value. However, we continue to generate this variable in this do-file so as to be consistent*/ gen no_hem_eligible = . lab var no_hem_eligible "Household has no eligible individuals for hemoglobin measurements" drop fem_eligible hh_n_fem_eligible male_eligible hh_n_male_eligible /// child_eligible hh_n_children_eligible sort hh_id ******************************************************************************** *** Step 1.8 RENAMING DEMOGRAPHIC VARIABLES *** ******************************************************************************** //Sample weight clonevar weight = hhweight label var weight "Sample weight" //Area: urban or rural desc hh6 clonevar area = hh6 replace area=0 if area==2 label define lab_area 1 "urban" 0 "rural" label values area lab_area label var area "Area: urban-rural" //Sex of household member codebook hl4 clonevar sex = hl4 label var sex "Sex of household member" //Age of household member codebook hl6, tab (100) clonevar age = hl6 replace age = . if age>=98 label var age "Age of household member" //Age group recode age (0/4 = 1 "0-4")(5/9 = 2 "5-9")(10/14 = 3 "10-14") /// (15/17 = 4 "15-17")(18/59 = 5 "18-59")(60/max=6 "60+"), gen(agec7) lab var agec7 "age groups (7 groups)" recode age (0/9 = 1 "0-9") (10/17 = 2 "10-17")(18/59 = 3 "18-59") /// (60/max=4 "60+"), gen(agec4) lab var agec4 "age groups (4 groups)" recode age (0/17 = 1 "0-17") (18/max = 2 "18+"), gen(agec2) lab var agec2 "age groups (2 groups)" //Total number of HH members in the household gen member = 1 bysort hh_id: egen hhsize = sum(member) label var hhsize "Household size" tab hhsize, miss compare hhsize hh11 drop member //Subnational region codebook hh7, tab (100) decode hh7, gen(temp) replace temp = proper(temp) encode temp, gen(region) lab var region "Region for subnational decomposition" tab hh7 region, miss drop temp ******************************************************************************** *** Step 2 Data preparation *** *** Standardization of the 10 Global MPI indicators *** Identification of non-deprived & deprived individuals ******************************************************************************** ******************************************************************************** *** Step 2.1 Years of Schooling *** ******************************************************************************** /* According to Ukraine MICS 2012 survey report, children start school at ages 6 or 7 at the discretion of their parents/caretakers, primary school is for ages 7-10, and secondary school is for ages 11-17 (p. 165). The survey used the following groupings: primary (grades 1-4), secondary (5-12), PTU (1-3), technical/vocational school (1-4), higher education (1+) */ /* Note Ukraine MICS 2012: for ed4a, PTU is secondary special education, starting after nine years of educ (4 primary and first 5 years of secondary) and texnikum (4) is technical school */ tab ed4b ed4a, miss /* Note large number of missing values for all key education variables ed4a - 13.80% ed4b - 15% ed3 - 13% */ tab age ed6a if ed5==1, miss //Check: For those currently in school and their level of schooling clonevar edulevel = ed4a //Highest educational level attended replace edulevel = . if ed4a==. | ed4a==8 |ed4a==9 //ed4a=8/98/99 are missing values replace edulevel = 0 if ed3==2 //Those who never attended school are replaced as '0' label var edulevel "Highest educational level attended" clonevar eduhighyear = ed4b //Highest grade of education completed replace eduhighyear = . if ed4b==. | ed4b==98 | ed4b==99 //ed4b=97/98/99 are missing values replace eduhighyear = 0 if ed3==2 //Those who never attended school are replaced as '0' lab var eduhighyear "Highest year of education completed" *** Cleaning inconsistencies replace eduhighyear = 0 if age<10 /*The variable "eduhighyear" was replaced with a '0' given that the criteria for this indicator is household member aged 10 years or older */ replace eduhighyear = 0 if edulevel<1 *** Now we create the years of schooling tab eduhighyear edulevel, miss gen eduyears = eduhighyear replace eduyears = 0 if edulevel<2 & eduhighyear==. /*Assuming 0 year if they only attend preschool or primary but the last year is unknown*/ replace eduyears = eduhighyear + 9 if (edulevel==3) /*PTU (special secondary education starts after 9 years of general education */ replace eduyears = eduhighyear + 11 if (edulevel==4 | edulevel==5) /*University after 11 years of education, 4 years of primary + 5 years of lower secondary and 2 years of upper secondary */ replace eduyears = 0 if edulevel==0 & eduyears==. replace eduyears = . if edulevel==. & eduhighyear==. //Replaced as missing value when level of education is missing *** Checking for further inconsistencies replace eduyears = . if age<=eduyears & age>0 /*There are cases in which the years of schooling are greater than the age of the individual. This is clearly a mistake in the data. Please check whether this is the case and correct when necessary */ replace eduyears = 0 if age<10 /*The variable "eduyears" was replaced with a '0' given that the criteria for this indicator is household member aged 10 years or older */ lab var eduyears "Total number of years of education accomplished" /*A control variable is created on whether there is information on years of education for at least 2/3 of the household members aged 10 years and older */ gen temp = 1 if eduyears!=. & age>=10 & age!=. bysort hh_id: egen no_missing_edu = sum(temp) /*Total household members who are 10 years and older with no missing years of education */ gen temp2 = 1 if age>=10 & age!=. bysort hh_id: egen hhs = sum(temp2) /*Total number of household members who are 10 years and older */ replace no_missing_edu = no_missing_edu/hhs replace no_missing_edu = (no_missing_edu>=2/3) /*Identify whether there is information on years of education for at least 2/3 of the household members aged 10 years and older */ tab no_missing_edu, miss //Values for 0 are less than 1% drop temp temp2 hhs *** Standard MPI *** /*The entire household is considered deprived if no household member aged 10 years or older has completed SIX years of schooling. */ ******************************************************************* gen years_edu6 = (eduyears>=6) replace years_edu6 = . if eduyears==. bysort hh_id: egen hh_years_edu6_1 = max(years_edu6) gen hh_years_edu6 = (hh_years_edu6_1==1) replace hh_years_edu6 = . if hh_years_edu6_1==. replace hh_years_edu6 = . if hh_years_edu6==0 & no_missing_edu==0 //Final variable missing if household has info for < 2/3 of members lab var hh_years_edu6 "Household has at least one member with 6 years of edu" tab hh_years_edu6, miss *** Destitution MPI *** /*The entire household is considered deprived if no household member aged 10 years or older has completed at least one year of schooling. */ ******************************************************************* gen years_edu1 = (eduyears>=1) replace years_edu1 = . if eduyears==. bysort hh_id: egen hh_years_edu_u = max(years_edu1) replace hh_years_edu_u = . if hh_years_edu_u==0 & no_missing_edu==0 lab var hh_years_edu_u "Household has at least one member with 1 year of edu" ******************************************************************************** *** Step 2.2 Child School Attendance *** ******************************************************************************** codebook ed5, tab (10) gen attendance = . replace attendance = 1 if ed5==1 //Replace attendance with '1' if currently attending school replace attendance = 0 if ed5==2 //Replace attendance with '0' if currently not attending school replace attendance = 0 if ed3==2 //Replace attendance with '0' if never ever attended school tab age ed5, miss //Check individuals who are not of school age replace attendance = 0 if age<5 | age>24 //Replace attendance with '0' for individuals who are not of school age tab attendance, miss label define lab_attend 1 "currently attending" 0 "not currently attending" label values attendance lab_attend label var attendance "Attended school during current school year" *** Standard MPI *** /*The entire household is considered deprived if any school-aged child is not attending school up to class 8. */ ******************************************************************* gen child_schoolage = (age>=7 & age<=15) /* Note: In Ukraine, the official school entrance age for primary school is 7 years. This is indicated in the country report (p.166). So, age range is 7-15 (=7+8) */ /*A control variable is created on whether there is no information on school attendance for at least 2/3 of the school age children */ count if child_schoolage==1 & attendance==. //Understand how many eligible school aged children are not attending school gen temp = 1 if child_schoolage==1 & attendance!=. bysort hh_id: egen no_missing_atten = sum(temp) /*Total school age children with no missing information on school attendance */ gen temp2 = 1 if child_schoolage==1 bysort hh_id: egen hhs = sum(temp2) //Total number of household members who are of school age replace no_missing_atten = no_missing_atten/hhs replace no_missing_atten = (no_missing_atten>=2/3) /*Identify whether there is missing information on school attendance for more than 2/3 of the school age children */ tab no_missing_atten, miss //Values for 0 are less than 1% label var no_missing_atten "No missing school attendance for at least 2/3 of the school aged children" drop temp temp2 hhs bysort hh_id: egen hh_children_schoolage = sum(child_schoolage) replace hh_children_schoolage = (hh_children_schoolage>0) //Control variable: //It takes value 1 if the household has children in school age lab var hh_children_schoolage "Household has children in school age" gen child_not_atten = (attendance==0) if child_schoolage==1 replace child_not_atten = . if attendance==. & child_schoolage==1 bysort hh_id: egen any_child_not_atten = max(child_not_atten) gen hh_child_atten = (any_child_not_atten==0) replace hh_child_atten = . if any_child_not_atten==. replace hh_child_atten = 1 if hh_children_schoolage==0 replace hh_child_atten = . if hh_child_atten==1 & no_missing_atten==0 /*If the household has been intially identified as non-deprived, but has missing school attendance for at least 2/3 of the school aged children, then we replace this household with a value of '.' because there is insufficient information to conclusively conclude that the household is not deprived */ lab var hh_child_atten "Household has all school age children up to class 8 in school" tab hh_child_atten, miss /*Note: The indicator takes value 1 if ALL children in school age are attending school and 0 if there is at least one child not attending. Households with no children receive a value of 1 as non-deprived. The indicator has a missing value only when there are all missing values on children attendance in households that have children in school age. */ *** Destitution MPI *** /*The entire household is considered deprived if any school-aged child is not attending school up to class 6. */ ******************************************************************* gen child_schoolage_6 = (age>=7 & age<=13) /*Note: In Ukraine, the official school entrance age is 6 years. So, age range for destitute measure is 7-13 (=7+6) */ /*A control variable is created on whether there is no information on school attendance for at least 2/3 of the children attending school up to class 6 */ gen temp = 1 if child_schoolage_6==1 & attendance!=. bysort hh_id: egen no_missing_atten_u = sum(temp) /*Total school age children attending up to class 6 with no missing information on school attendance */ gen temp2 = 1 if child_schoolage_6==1 bysort hh_id: egen hhs = sum(temp2) /*Total number of household members who are of school age attending up to class 6 */ replace no_missing_atten_u = no_missing_atten_u/hhs replace no_missing_atten_u = (no_missing_atten_u>=2/3) /*Identify whether there is missing information on school attendance for more than 2/3 of the school age children attending up to class 6 */ tab no_missing_atten_u, miss label var no_missing_atten_u "No missing school attendance for at least 2/3 of the school aged children" drop temp temp2 hhs bysort hh_id: egen hh_children_schoolage_6 = sum(child_schoolage_6) replace hh_children_schoolage_6 = (hh_children_schoolage_6>0) lab var hh_children_schoolage_6 "Household has children in school age (6 years of school)" gen child_atten_6 = (attendance==1) if child_schoolage_6==1 replace child_atten_6 = . if attendance==. & child_schoolage_6==1 bysort hh_id: egen any_child_atten_6 = max(child_atten_6) gen hh_child_atten_u = (any_child_atten_6==1) replace hh_child_atten_u = . if any_child_atten_6==. replace hh_child_atten_u = 1 if hh_children_schoolage_6==0 replace hh_child_atten_u = . if hh_child_atten_u==0 & no_missing_atten_u==0 /*If the household has been intially identified as deprived, but has missing school attendance for at least 2/3 of the school aged children, then we replace this household with a value of '.' because there is insufficient information to conclusively conclude that the household is deprived */ lab var hh_child_atten_u "Household has at least one school age children up to class 6 in school" tab hh_child_atten_u, miss ******************************************************************************** *** Step 2.3 Nutrition *** ******************************************************************************** /*Ukraine MICS 2012 has no information on nutrition. Hence we create empty variables under this section */ gen hh_nutrition_st_u = . lab var hh_nutrition_st_u "Household has no child stunted or adult deprived by BMI/BMI-for-age (destitute)" gen hh_nutrition_uw_st_u = . lab var hh_nutrition_uw_st_u "Household has no child underweight/stunted or adult deprived by BMI/BMI-for-age (destitute)" ******************************************************************************** *** Step 2.4 Child Mortality *** ******************************************************************************** codebook cm9a cm9b mcm9a mcm9b //cm9a or mcm9a: number of sons who have died //cm9b or mcm9b: number of daughters who have died egen temp_f = rowtotal(cm9a cm9b), missing //Total child mortality reported by eligible women replace temp_f = 0 if cm1==1 & cm8==2 | cm1==2 /*Assign a value of "0" for: - all eligible women who have ever gave birth but reported no child death - all eligible women who never ever gave birth */ replace temp_f = 0 if no_fem_eligible==1 /*Assign a value of "0" for: - individuals living in households that have non-eligible women */ bysort hh_id: egen child_mortality_f = sum(temp_f), missing lab var child_mortality_f "Occurrence of child mortality reported by women" tab child_mortality_f, miss drop temp_f egen temp_m = rowtotal(mcm9a mcm9b), missing //Total child mortality reported by eligible men replace temp_m = 0 if mcm1==1 & mcm8==2 | mcm1==2 /*Assign a value of "0" for: - all eligible men who ever fathered children but reported no child death - all eligible men who never fathered children */ replace temp_m = 0 if no_male_eligible==1 /*Assign a value of "0" for: - individuals living in households that have non-eligible women */ bysort hh_id: egen child_mortality_m = sum(temp_m), missing lab var child_mortality_m "Occurrence of child mortality reported by men" tab child_mortality_m, miss drop temp_m egen child_mortality = rowmax(child_mortality_f child_mortality_m) lab var child_mortality "Total child mortality within household reported by women & men" tab child_mortality, miss *** Standard MPI *** /* The standard MPI indicator takes a value of "0" if women in the household reported mortality among children under 18 in the last 5 years from the survey year. The indicator takes a value of "1" if eligible women within the household reported (i) no child mortality or (ii) if any child died longer than 5 years from the survey year or (iii) if any child 18 years and older died in the last 5 years. Households were replaced with a value of "1" if eligible men within the household reported no child mortality in the absence of information from women. The indicator takes a missing value if there was missing information on reported death from eligible individuals. */ ************************************************************************ tab childu18_died_per_wom_5y, miss /* The 'childu18_died_per_wom_5y' variable was constructed in Step 1.2 using information from individual women who ever gave birth in the BH file. The missing values represent eligible woman who have never ever given birth and so are not present in the BR file. But these 'missing women' may be living in households where there are other women with child mortality information from the BH file. So at this stage, it is important that we aggregate the information that was obtained from the BH file at the household level. This ensures that women who were not present in the BH file is assigned with a value, following the information provided by other women in the household.*/ replace childu18_died_per_wom_5y = 0 if cm1==1 & cm8==2 | cm1==2 /*Assign a value of "0" for: - all eligible women who have ever gave birth but reported no child death - all eligible women who never ever gave birth */ replace childu18_died_per_wom_5y = 0 if no_fem_eligible==1 /*Assign a value of "0" for: - individuals living in households that have non-eligible women */ bysort hh_id: egen childu18_mortality_5y = sum(childu18_died_per_wom_5y), missing replace childu18_mortality_5y = 0 if childu18_mortality_5y==. & child_mortality==0 /*Replace all households as 0 death if women has missing value and men reported no death in those households */ label var childu18_mortality_5y "Under 18 child mortality within household past 5 years reported by women" tab childu18_mortality_5y, miss gen hh_mortality_u18_5y = (childu18_mortality_5y==0) replace hh_mortality_u18_5y = . if childu18_mortality_5y==. lab var hh_mortality_u18_5y "Household had no under 18 child mortality in the last 5 years" tab hh_mortality_u18_5y, miss *** Destitution MPI *** *** (same as standard MPI) *** ************************************************************************ clonevar hh_mortality_u = hh_mortality_u18_5y ******************************************************************************** *** Step 2.5 Electricity *** ******************************************************************************** *** Standard MPI *** /*Members of the household are considered deprived if the household has no electricity */ **************************************** clonevar electricity = hc8a codebook electricity, tab (10) replace electricity = 0 if electricity==2 replace electricity = . if electricity==9 label var electricity "Household has electricity" *** Destitution MPI *** *** (same as standard MPI) *** **************************************** gen electricity_u = electricity label var electricity_u "Household has electricity" ******************************************************************************** *** Step 2.6 Sanitation *** ******************************************************************************** /* Improved sanitation facilities include flush or pour flush toilets to sewer systems, septic tanks or pit latrines, ventilated improved pit latrines, pit latrines with a slab, and composting toilets. These facilities are only considered improved if it is private, that is, it is not shared with other households. Source: https://unstats.un.org/sdgs/metadata/files/Metadata-06-02-01.pdf Note: In cases of mismatch between the country report and the internationally agreed guideline, we followed the report. */ clonevar toilet = ws8 codebook toilet, tab(30) codebook ws9, tab(30) clonevar shared_toilet = ws9 recode shared_toilet (2=0) recode shared_toilet (9=.) tab ws9 shared_toilet, miss nol //0=no;1=yes;.=missing *** Standard MPI *** /*Members of the household are considered deprived if the household's sanitation facility is not improved (according to the SDG guideline) or it is improved but shared with other households*/ ******************************************************************** gen toilet_mdg = ((toilet<23 | toilet==31) & shared_toilet!=1) replace toilet_mdg = 0 if toilet == 14 | toilet== 15 replace toilet_mdg = 0 if (toilet<22 | toilet==31) & shared_toilet==1 replace toilet_mdg = . if toilet==. | toilet==99 lab var toilet_mdg "Household has improved sanitation with MDG Standards" tab toilet toilet_mdg, miss *** Destitution MPI *** /*Members of the household are considered deprived if household practises open defecation or uses other unidentifiable sanitation practises */ ******************************************************************** gen toilet_u = . replace toilet_u = 0 if toilet==95 | toilet==96 //95 open defecation, 96 Other replace toilet_u = 1 if toilet!=95 & toilet!=96 & toilet!=. & toilet!=99 lab var toilet_u "Household does not practise open defecation or others" tab toilet toilet_u, miss ******************************************************************************** *** Step 2.7 Drinking Water *** ******************************************************************************** /* Improved drinking water sources include the following: piped water into dwelling, yard or plot; public taps or standpipes; boreholes or tubewells; protected dug wells; protected springs; packaged water; delivered water and rainwater which is located on premises or is less than a 30-minute walk from home roundtrip. Source: https://unstats.un.org/sdgs/metadata/files/Metadata-06-01-01.pdf Note: In cases of mismatch between the country report and the internationally agreed guideline, we followed the report. */ clonevar water = ws1 clonevar timetowater = ws4 codebook water, tab(99) clonevar ndwater = ws2 /* Ukraine MICS 2012: observations if bottled water used for drinking */ tab ws2 if water==91 /*Because the quality of bottled water is not known, households using bottled water for drinking are classified as using an improved or unimproved source according to their water source for non-drinking activities such as cooking and hand washing. However, it is important to note that households using bottled water for drinking are classified as unimproved source if this is explicitly mentioned in the country report. */ *** Standard MPI *** /* Members of the household are considered deprived if the household does not have access to improved drinking water (according to the SDG guideline) or safe drinking water is at least a 30-minute walk from home, roundtrip */ ******************************************************************** gen water_mdg = 1 if water==11 | water==12 | water==13 | water==14 | /// water==21 | water==31 | water==41 | water==91 /*Non deprived if water is "piped into dwelling", "piped to yard/plot", "piped to neighbour", "public tap/standpipe", "tube well or borehole", "protected well", "protected spring", "bottled water" */ replace water_mdg = 0 if water==32 | water==42 | water==61 | water==71 | /// water==81 | water==96 /*Deprived if it is "unprotected well", "unprotected spring", "tanker truck" "cart with small tank/drum", "surface water (river/lake, etc)", "other" */ replace water_mdg = 0 if water_mdg==1 & timetowater>=30 & timetowater!=. /// & timetowater!=998 & timetowater!=999 //Deprived if water is at more than 30 minutes' walk (roundtrip) replace water_mdg = . if water==. | water==99 replace water_mdg = 0 if water==91 & (ndwater==32 | ndwater==61) /*Households using bottled water for drinking are classified as using an improved or unimproved source according to their water source for non-drinking activities */ /* Ukraine MICS 2012: for households that use bottled water for both drinking water and non-drinking water, they are considered non-deprived for consistency with countries without non-drinking water data. */ lab var water_mdg "Household has drinking water with MDG standards (considering distance)" tab water water_mdg, miss *** Destitution MPI *** /* Members of the household is identified as destitute if household does not have access to safe drinking water, or safe water is more than 45 minute walk from home, round trip.*/ ******************************************************************** gen water_u = . replace water_u = 1 if water==11 | water==12 | water==13 | water==14 | /// water==21 | water==31 | water==41 | water==91 replace water_u = 0 if water==32 | water==42 | water==61 | water==71 | /// water==81 | water==96 replace water_u = 0 if water_u==1 & timetowater>45 & timetowater!=. /// & timetowater!=988 & timetowater!=999 replace water_u = . if water==99 | water==. replace water_u = 0 if water==91 & (ndwater==32 | ndwater==61) lab var water_u "Household has drinking water with MDG standards (45 minutes distance)" tab water water_u, miss ******************************************************************************** *** Step 2.8 Housing *** ******************************************************************************** /* Members of the household are considered deprived if the household has a dirt, sand or dung floor */ clonevar floor = hc3 codebook floor, tab(99) gen floor_imp = 1 replace floor_imp = 0 if floor<=12 | floor==96 //Deprived if "mud/earth/clay", "sand", "dung", "other" replace floor_imp = . if floor==99 replace floor_imp = . if floor==. lab var floor_imp "Household has floor that it is not earth/sand/dung" tab floor floor_imp, miss /* Members of the household are considered deprived if the household has wall made of natural or rudimentary materials */ clonevar wall = hc5 codebook wall, tab(99) gen wall_imp = 1 replace wall_imp = 0 if wall<=26 | wall==96 /*Deprived if "no wall" "cane/palms/trunk" "mud/dirt" "grass/reeds/thatch" "pole/bamboo with mud" "stone with mud" "cardboard" "carton/plastic" "uncovered adobe" "canvas/tent" "unburnt bricks" "other" "plywood" */ replace wall_imp = . if wall==99 replace wall_imp = . if wall==. lab var wall_imp "Household has wall that it is not of low quality materials" tab wall wall_imp, miss /* Members of the household are considered deprived if the household has roof made of natural or rudimentary materials */ clonevar roof = hc4 codebook roof, tab(99) gen roof_imp = 1 replace roof_imp = 0 if roof<=23 | roof==96 /*Deprived if "no roof" "thatch/palm leaf" "mud/earth/lump of earth" "sod/grass" "plastic/polythene sheeting" "rustic mat" "cardboard" "canvas/tent" "unburnt bricks" "other"*/ replace roof_imp = . if roof==99 replace roof_imp = . if roof==. lab var roof_imp "Household has roof that it is not of low quality materials" tab roof roof_imp, miss *** Standard MPI *** /* Members of the household is deprived in housing if the roof, floor OR walls are constructed from low quality materials.*/ ************************************************************** gen housing_1 = 1 replace housing_1 = 0 if floor_imp==0 | wall_imp==0 | roof_imp==0 replace housing_1 = . if floor_imp==. & wall_imp==. & roof_imp==. lab var housing_1 "Household has roof, floor & walls that it is not low quality material" tab housing_1, miss *** Destitution MPI *** /* Members of the household is deprived in housing if two out of three components (roof and walls; OR floor and walls; OR roof and floor) the are constructed from low quality materials. */ ************************************************************** gen housing_u = 1 replace housing_u = 0 if (floor_imp==0 & wall_imp==0 & roof_imp==1) | /// (floor_imp==0 & wall_imp==1 & roof_imp==0) | /// (floor_imp==1 & wall_imp==0 & roof_imp==0) | /// (floor_imp==0 & wall_imp==0 & roof_imp==0) replace housing_u = . if floor_imp==. & wall_imp==. & roof_imp==. lab var housing_u "Household has one of three aspects(either roof,floor/walls) that is not low quality material" tab housing_u, miss ******************************************************************************** *** Step 2.9 Cooking Fuel *** ******************************************************************************** /* Solid fuel are solid materials burned as fuels, which includes coal as well as solid biomass fuels (wood, animal dung, crop wastes and charcoal). Source: https://apps.who.int/iris/bitstream/handle/10665/141496/9789241548885_eng.pdf */ clonevar cookingfuel = hc6 codebook cookingfuel, tab(99) *** Standard MPI *** /* Members of the household are considered deprived if the household uses solid fuels and solid biomass fuels for cooking. */ ***************************************************************** gen cooking_mdg = 1 replace cooking_mdg = 0 if cookingfuel>5 & cookingfuel<95 replace cooking_mdg = . if cookingfuel==. | cookingfuel==99 lab var cooking_mdg "Household has cooking fuel according to MDG standards" /* Non deprived if: 1 "electricity", 2 "lpg", 3 "natural gas", 4 "biogas", 95 "no food cooked in household" Deprived if: 6 "coal/lignite", 7 "charcoal", 8 "wood" */ tab cookingfuel cooking_mdg, miss *** Destitution MPI *** *** (same as standard MPI) *** **************************************** gen cooking_u = cooking_mdg lab var cooking_u "Household uses clean fuels for cooking" ******************************************************************************** *** Step 2.10 Assets ownership *** ******************************************************************************** //Check that for standard assets in living standards: "no"==0 and yes=="1" codebook hc8c hc8b hc8e hc9b hc9d hc8f hc9f hc9c hc8j hc11 clonevar television = hc8c replace television = 1 if hc8d==1 /* Ukraine MICS 2012: variable hc8d is flatscreen tv and variable hc8c is crt tv set.*/ gen bw_television = . clonevar radio = hc8b clonevar telephone = hc8e clonevar mobiletelephone = hc9b clonevar refrigerator = hc8f clonevar car = hc9f clonevar bicycle = hc9c clonevar motorbike = hc9d gen computer = hc8j replace computer = 1 if hc8k==1 replace computer = 1 if hc8l==1 /* Ukraine MICS 2012: there are three different variables for computer - hc8j (desktop computer), hc8k (laptop computer), and hc8l (tablet computer). These will all be included in this variable. */ clonevar animal_cart = hc9e foreach var in television radio telephone mobiletelephone refrigerator /// car bicycle motorbike computer animal_cart { replace `var' = 0 if `var'==2 replace `var' = . if `var'==9 | `var'==99 | `var'==8 | `var'==98 } //Missing values replaced //Group telephone and mobiletelephone as a single variable replace telephone=1 if telephone==0 & mobiletelephone==1 replace telephone=1 if telephone==. & mobiletelephone==1 //Label indicators lab var television "Household has television" lab var radio "Household has radio" lab var telephone "Household has telephone (landline/mobilephone)" lab var refrigerator "Household has refrigerator" lab var car "Household has car" lab var bicycle "Household has bicycle" lab var motorbike "Household has motorbike" lab var computer "Household has computer" lab var animal_cart "Household has animal cart" *** Standard MPI *** /* Members of the household are considered deprived in assets if the household does not own more than one of: radio, TV, telephone, bike, motorbike, refrigerator, computer or animal cart and does not own a car or truck.*/ ***************************************************************************** egen n_small_assets2 = rowtotal(television radio telephone refrigerator bicycle motorbike computer animal_cart), missing lab var n_small_assets2 "Household Number of Small Assets Owned" gen hh_assets2 = (car==1 | n_small_assets2 > 1) replace hh_assets2 = . if car==. & n_small_assets2==. lab var hh_assets2 "Household Asset Ownership: HH has car or more than 1 small assets incl computer & animal cart" tab hh_assets2, miss *** Destitution MPI *** /* Members of the household are considered deprived in assets if the household does not own any assets.*/ ***************************************************************************** gen hh_assets2_u = (car==1 | n_small_assets2>0) replace hh_assets2_u = . if car==. & n_small_assets2==. lab var hh_assets2_u "Household Asset Ownership: HH has car or at least 1 small assets incl computer & animal cart" ******************************************************************************** *** Step 2.11 Rename and keep variables for MPI calculation ******************************************************************************** //Retain data on sampling design: desc psu stratum rename stratum strata //Retain year, month & date of interview: desc hh5y hh5m hh5d clonevar year_interview = hh5y clonevar month_interview = hh5m clonevar date_interview = hh5d //Generate presence of subsample gen subsample = . *** Rename key global MPI indicators for estimation *** recode hh_mortality_u18_5y (0=1)(1=0) , gen(d_cm) recode hh_nutrition_uw_st (0=1)(1=0) , gen(d_nutr) recode hh_child_atten (0=1)(1=0) , gen(d_satt) recode hh_years_edu6 (0=1)(1=0) , gen(d_educ) recode electricity (0=1)(1=0) , gen(d_elct) recode water_mdg (0=1)(1=0) , gen(d_wtr) recode toilet_mdg (0=1)(1=0) , gen(d_sani) recode housing_1 (0=1)(1=0) , gen(d_hsg) recode cooking_mdg (0=1)(1=0) , gen(d_ckfl) recode hh_assets2 (0=1)(1=0) , gen(d_asst) *** Rename key global MPI indicators for destitution estimation *** recode hh_mortality_u (0=1)(1=0) , gen(dst_cm) recode hh_nutrition_uw_st_u (0=1)(1=0) , gen(dst_nutr) recode hh_child_atten_u (0=1)(1=0) , gen(dst_satt) recode hh_years_edu_u (0=1)(1=0) , gen(dst_educ) recode electricity_u (0=1)(1=0) , gen(dst_elct) recode water_u (0=1)(1=0) , gen(dst_wtr) recode toilet_u (0=1)(1=0) , gen(dst_sani) recode housing_u (0=1)(1=0) , gen(dst_hsg) recode cooking_u (0=1)(1=0) , gen(dst_ckfl) recode hh_assets2_u (0=1)(1=0) , gen(dst_asst) *** Total number of missing values for each variable *** mdesc psu strata area age /// d_cm d_nutr d_satt d_educ d_elct d_wtr d_sani d_hsg d_ckfl d_asst *** Keep main variables require for MPI calculation *** keep hh_id ind_id psu strata subsample weight area region agec4 agec2 /// d_cm d_nutr d_satt d_educ d_elct d_wtr d_sani d_hsg d_ckfl d_asst order hh_id ind_id psu strata subsample weight area region agec4 agec2 /// d_cm d_nutr d_satt d_educ d_elct d_wtr d_sani d_hsg d_ckfl d_asst *** Generate coutry and survey details for estimation *** char _dta[cty] "Ukraine" char _dta[ccty] "UKR" char _dta[year] "2012" char _dta[survey] "MICS" char _dta[ccnum] "804" char _dta[type] "micro" char _dta[class] "old_survey" *** Sort, compress and save data for estimation *** sort ind_id compress la da "Micro data for `_dta[ccty]' (`_dta[ccnum]') from `c(current_date)' (`c(current_time)')." save "$path_out/ukr_mics12.dta", replace