******************************************************************************** /* Citation: Oxford Poverty and Human Development Initiative (OPHI), University of Oxford. 2018 Global Multidimensional Poverty Index - Uzbekistan MICS 2006 [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 cap log close *** Working Folder Path *** global path_in "T:/GMPI 2.0/data/Uzbekistan MICS 2006" global path_out "G:/pov" global path_logs "G:/logs" global path_ado "G:/ado" *** Log file *** log using "$path_logs/uzb_mics06_dataprep.log", replace ******************************************************************************** *** UZBEKISTAN MICS 2006 *** ******************************************************************************** ******************************************************************************** *** Step 1: Data preparation *** Selecting main variables from CH, WM, HH & MN recode & merging with HL recode ******************************************************************************** /*Uzbekistan MICS 2006: The weight and height of all children under 5 years of age was measured */ ******************************************************************************** *** 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 /* For this part of the do-file we use the WHO Anthro and macros. This is to calculate the z-scores of children under 5. Source of ado file: http://www.who.int/childgrowth/software/en/ */ *** Next, indicate to STATA where the igrowup_restricted.ado file is stored: adopath + "$path_ado/igrowup_stata" *** We will now proceed to create three nutritional variables: *** weight-for-age (underweight), *** weight-for-height (wasting) *** height-for-age (stunting) /* We use 'reflib' to specify the package directory where the .dta files containing the WHO Child Growth Standards are stored. Note that we use strX to specify the length of the path in string. If the path is long, you may specify str55 or more, so it will run. */ gen str100 reflib = "$path_ado/igrowup_stata" lab var reflib "Directory of reference tables" /* We use datalib to specify the working directory where the input STATA dataset containing the anthropometric measurement is stored. */ gen str100 datalib = "$path_out" lab var datalib "Directory for datafiles" /* We use datalab to specify the name that will prefix the output files that will be produced from using this ado file (datalab_z_r_rc and datalab_prev_rc)*/ gen str30 datalab = "children_nutri_uzb" lab var datalab "Working file" *** Next check the variables that WHO ado needs to calculate the z-scores: *** sex, age, weight, height, measurement, oedema & child sampling weight *** Variable: SEX *** tab hl4, miss //"1" for male ;"2" for female tab hl4, nol clonevar gender = hl4 desc gender tab gender *** Variable: AGE *** tab cage, miss codebook cage clonevar age_months = cage desc age_months replace age_months = . if cage==9999 replace age_months = . if cage < 0 summ age_months gen str6 ageunit = "months" lab var ageunit "Months" *** Variable: BODY WEIGHT (KILOGRAMS) *** codebook an1, tab (999) clonevar weight = an1 replace weight = . if an1>=99 tab an4 an1 if an3>=99 | an3==., miss //an4: result of the measurement tab uf9 if an4==. & an1==. desc weight summ weight *** Variable: HEIGHT (CENTIMETERS) codebook an2, tab (999) clonevar height = an2 replace height = . if an2>=999 tab an4 an2 if an2>=999 | an4==., miss desc height summ height *** Variable: MEASURED STANDING/LYING DOWN /* For children aged below 24 months (<731 days), it makes a difference whether the child was measured lying down (recumbent), in which case his/her length was measured, than whether he was measured standing, in which his/her measure is height. The ado can adjust for this difference. When the kid was measured standing, the ado converts the height to recumbent length by adding 0.7cm, and for children aged 24 months or above, who are measured in a recumbent position, the ado converts the length to standing height by subtracting 0.7 cm. The exported variable is _clenhei, which is the converted length/height according to age. In MICS all children under 24 months are supposed to have been measured in recumbent position, and all children above 24 months are supposed to have been measured in standing position. However, the survey provides a variable that controls for this: hw15, in case a different practice was used in some cases.*/ codebook an2a gen measure = "l" if an2a==1 //Child measured lying down replace measure = "h" if an2a==2 //Child measured standing up replace measure = " " if an2a==9 | an2a==0 | an2a==. //Replace with " " if unknown desc measure tab measure *** Variable: OEDEMA *** lookfor oedema gen str1 oedema = "n" //It assumes no-one has oedema desc oedema tab oedema *** Variable: INDIVIDUAL CHILD SAMPLING WEIGHT *** gen sw = chweight desc sw summ sw /*We now run the command to calculate the z-scores with the adofile */ igrowup_restricted reflib datalib datalab gender age_months ageunit weight /// height measure oedema sw /*We now turn to using the dta file that was created and that contains the calculated z-scores */ use "$path_out/children_nutri_uzb_z_rc.dta", clear *** Standard MPI indicator *** //Takes value 1 if the child is under 2 stdev below the median & 0 otherwise gen underweight = (_zwei < -2.0) replace underweight = . if _zwei == . | _fwei==1 lab var underweight "Child is undernourished (weight-for-age) 2sd - WHO" tab underweight, miss gen stunting = (_zlen < -2.0) replace stunting = . if _zlen == . | _flen==1 lab var stunting "Child is stunted (length/height-for-age) 2sd - WHO" tab stunting, miss gen wasting = (_zwfl < - 2.0) replace wasting = . if _zwfl == . | _fwfl == 1 lab var wasting "Child is wasted (weight-for-length/height) 2sd - WHO" tab wasting, miss count if _fwei==1 | _flen==1 /* Note: In the context of Uzbekistan MICS 2006, 80 children were replaced as '.' because they have extreme z-scores which are biologically implausible. */ //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/UZB06_CH.dta", replace //Erase files from folder: erase "$path_out/children_nutri_uzb_z_rc.xls" erase "$path_out/children_nutri_uzb_prev_rc.xls" erase "$path_out/children_nutri_uzb_z_rc.dta" ******************************************************************************** *** Step 1.2 BH - BIRTH RECODE *** (All females 15-49 years who ever gave birth) ******************************************************************************** /* Note: There is no BH dta file for Uzbekistan MICS 2006. Hence this section has been deactivated */ ******************************************************************************** *** 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 duplicates gen women_WM =1 //Identification variable for observations in WM recode tab wm9, miss //286 women with no age info tab cm1 cm7, miss /*Women who has never ever given birth will not have information on child mortality*/ lookfor marital codebook mstatus ma4, tab (10) tab mstatus ma4, miss gen marital = 1 if mstatus == 3 & ma4==. //1: Never married replace marital = 2 if mstatus == 1 & ma4==. //2: Currently married replace marital = 3 if mstatus == 2 & ma4==1 //3: Widowed replace marital = 4 if mstatus == 2 & ma4==2 //4: Divorced replace marital = 5 if mstatus == 2 & ma4==3 //5: Separated/not living together label define lab_mar 1"never married" 2"currently married" 3"widowed" /// 4"divorced" 5"not living together" label values marital lab_mar label var marital "Marital status of household member" tab marital, miss tab ma4 marital, miss tab mstatus marital, miss //Retain relevant variables: keep wm7 cm1 cm7 cm8a cm8b ind_id women_WM marital order wm7 cm1 cm7 cm8a cm8b ind_id women_WM marital sort ind_id save "$path_out/UZB06_WM.dta", replace ******************************************************************************** *** Step 1.4 MN - MEN'S RECODE ***(All eligible man in the household) ******************************************************************************** /* Note: There is no MN dta file for Uzbekistan MICS 2006. Hence this section has been deactivated */ ******************************************************************************** *** Step 1.5 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" duplicates report hh_id //No duplicates //Save a temp file for merging with HL: save "$path_out/UZB06_HH.dta", replace ******************************************************************************** *** Step 1.5 HL - HOUSEHOLD MEMBER ******************************************************************************** use "$path_in/hl.dta", clear rename _all, lower gen cty = "Uzbekistan" gen ccty = "UZB" gen year = "2006" gen survey = "MICS" gen ccnum = 860 *** 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" duplicates report ind_id //No duplicates sort ind_id ******************************************************************************** *** Step 1.6 DATA MERGING ******************************************************************************** *** Merging BH Recode ***************************************** //No BH recode for Uzbekistan MICS 2006 *** Merging WM Recode ***************************************** merge 1:1 ind_id using "$path_out/UZB06_WM.dta" tab hl6, miss gen temp = (hl6>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/UZB06_WM.dta" *** Merging HH Recode ***************************************** merge m:1 hh_id using "$path_out/UZB06_HH.dta" tab hh9 if _m==2 drop if _merge==2 //Drop households that were not interviewed drop _merge erase "$path_out/UZB06_HH.dta" *** Merging CH Recode ***************************************** merge 1:1 ind_id using "$path_out/UZB06_CH.dta" drop _merge erase "$path_out/UZB06_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. 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 = (hl6>0) if hl6!=. 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 ***************************************** //No male recode for Uzbekistan MICS 2006 gen no_male_eligible = . lab var no_male_eligible "Household has no eligible man" tab no_male_eligible, miss *** No Eligible Children 0-5 years ***************************************** gen child_eligible = (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 *********************************************** //No male recode for Uzbekistan MICS 2006 gen no_adults_eligible = . 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 *********************************************** //No male recode for Uzbekistan MICS 2006 gen no_eligibles = . lab var no_eligibles "Household has no eligible women 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 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" //Relationship to the head of household desc hl3 clonevar relationship = hl3 codebook relationship, tab (20) recode relationship (1=1)(2=2)(3=3)(14=3)(4/13=4)(15=5)(96=5)(98=.) label define lab_rel 1"head" 2"spouse" 3"child" 4"extended family" /// 5"not related" 6"maid" label values relationship lab_rel label var relationship "Relationship to the head of household" tab hl3 relationship, miss //Sex of household member codebook hl4 clonevar sex = hl4 label var sex "Sex of household member" //Age of household member codebook hl5, tab (100) clonevar age = hl5 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)" //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 /*The sample for the Uzbekistan MICS was designed to provide estimates at the national level, for urban and rural areas, and for six geo-economical regions of the country */ 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 the survey report (p.57): " The school system in Uzbekistan has two compulsory levels. The first level, primary education, consists of grades one through four for students age 7-10. The second level consists of grades five through nine for students age 11-15. Students who have completed a minimum of nine grades may enrol in special secondary education. The special secondary school system provides special training of three years. Students who complete special secondary school may enrol in university." `(page 57) */ tab ed3b ed3a, miss tab age ed6a if ed4==1, miss //For those currently in school, their level of schooling clonevar edulevel = ed3a //Highest educational level attended replace edulevel = . if ed3a==. | ed3a==8 | ed3a==98 | ed3a==99 //ed4a=8/98/99 are missing values replace edulevel = 0 if ed2==2 //Those who never attended school are replaced as '0' label var edulevel "Highest educational level attended" clonevar eduhighyear = ed3b //Highest grade of education completed replace eduhighyear = . if ed3b==. | ed3b==97 | ed3b==98 | ed3b==99 //ed4b=97/98/99 are missing values replace eduhighyear = 0 if ed2==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) //Secondary special education assumed to start after 9 years of education replace eduyears = eduhighyear + 12 if (edulevel==4) /*Higher education assumed to start after 12 years of education - 9 years of general education and 3 years of special secondary education */ replace eduyears = 0 if edulevel==0 & eduyears==. replace eduyears = . if edulevel==. & eduhighyear==. //Replaced as missing value when level of education is missing replace eduyears = 0 if edulevel==6 /* Non-standrd education is replace considering as zero years of formal education */ *** 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 drop temp temp2 hhs /*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 ******************************************************************************** *** Step 2.2 Child School Attendance *** ******************************************************************************** codebook ed4, tab (10) gen attendance = . replace attendance = 1 if ed4==1 //Replace attendance with '1' if currently attending school replace attendance = 0 if ed4==2 //Replace attendance with '0' if currently not attending school replace attendance = 0 if ed2==2 //Replace attendance with '0' if never ever attended school tab age ed4, 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 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" tab attendance, miss /*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 Uzbekistan, the official school entrance age for primary school is 7 years. So, age range is 7-15 (=7+8) Source: "http://data.uis.unesco.org/?ReportId=163" Go to Education>Education>System>Official entrance age to primary education. Look at the starting age and add 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 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. */ ******************************************************************************** *** Step 2.3 Nutrition *** ******************************************************************************** ******************************************************************************** *** Step 2.3a Child Nutrition *** ******************************************************************************** *** Child Underweight Indicator *** ************************************************************************ bysort hh_id: egen temp = max(underweight) gen hh_no_underweight = (temp==0) //Takes value 1 if no child in the hh is underweight replace hh_no_underweight = . if temp==. replace hh_no_underweight = 1 if no_child_eligible==1 //Households with no eligible children will receive a value of 1 lab var hh_no_underweight "Household has no child underweight - 2 stdev" drop temp *** Child Stunting Indicator *** ************************************************************************ bysort hh_id: egen temp = max(stunting) gen hh_no_stunting = (temp==0) //Takes value 1 if no child in the hh is stunted replace hh_no_stunting = . if temp==. replace hh_no_stunting = 1 if no_child_eligible==1 lab var hh_no_stunting "Household has no child stunted - 2 stdev" drop temp *** Child Either Stunted or Underweight Indicator *** ************************************************************************ gen uw_st = 1 if stunting==1 | underweight==1 replace uw_st = 0 if stunting==0 & underweight==0 replace uw_st = . if stunting==. & underweight==. bysort hh_id: egen temp = max(uw_st) gen hh_no_uw_st = (temp==0) //Takes value 1 if no child in the hh is underweight or stunted replace hh_no_uw_st = . if temp==. replace hh_no_uw_st = 1 if no_child_eligible==1 //Households with no eligible children will receive a value of 1 lab var hh_no_uw_st "Household has no child underweight or stunted" drop temp ******************************************************************************** *** Step 2.3b Household Nutrition Indicator *** ******************************************************************************** /* The indicator takes value 1 if there is no children under 5 underweight or stunted. It also takes value 1 for the households that have no eligible children. The indicator takes value missing "." only if all eligible children have missing information in their respective nutrition variable. */ ************************************************************************ gen hh_nutrition_uw_st = 1 replace hh_nutrition_uw_st = 0 if hh_no_uw_st==0 replace hh_nutrition_uw_st = . if hh_no_uw_st==. replace hh_nutrition_uw_st = 1 if no_child_eligible==1 /*We replace households that do not have the applicable population, that is, children 0-5, as non-deprived in nutrition*/ lab var hh_nutrition_uw_st "Household has no child underweight or stunted" ******************************************************************************** *** Step 2.4 Child Mortality *** ******************************************************************************** //NOTE: Uzbekistan MICS 2016: No information on child mortality from men codebook cm8a cm8b //cm9a: number of sons who have died //cm9b: number of daughters who have died egen temp_f = rowtotal(cm8a cm8b), missing //Total child mortality reported by eligible women replace temp_f = 0 if cm1==1 & cm7==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 /* In the case of Uzbekistan, this variable takes missing value because the survey did not collect information on child mortality from men */ gen child_mortality_m = . lab var child_mortality_m "Occurrence of child mortality reported by men" egen child_mortality = rowmax(child_mortality_f) lab var child_mortality "Total child mortality within household reported by women & men" tab child_mortality, miss /*Deprived if any children died in the household */ ************************************************************************ gen hh_mortality = (child_mortality==0) /*Household is replaced with a value of "1" if there is no incidence of child mortality*/ replace hh_mortality = . if child_mortality==. replace hh_mortality = 1 if no_fem_eligible==1 //Household is replaced with a value of "1" if there is no eligible women lab var hh_mortality "Household had no child mortality" tab hh_mortality, miss /*Deprived if any children died in the household in the last 5 years from the survey year */ ************************************************************************ /*In the case of Uzbekistan, there is no birth history data. This means, there is no information on the date of death of children who have died. As such we are not able to construct the indicator on child mortality that occurred in the last 5 years. */ gen child_mortality_5y = . label var child_mortality_5y "Total child mortality within household past 5 years reported by women" gen hh_mortality_5y = . lab var hh_mortality_5y "Household had no child mortality in the last 5 years" ******************************************************************************** *** Step 2.5 Electricity *** ******************************************************************************** /*Members of the household are considered deprived if the household has no electricity */ clonevar electricity = hc9a codebook electricity, tab (10) replace electricity = 0 if electricity==2 //0=no; 1=yes replace electricity = . if electricity==9 label var electricity "Household has electricity" ******************************************************************************** *** Step 2.6 Sanitation *** ******************************************************************************** /*Members of the household are considered deprived if the household's sanitation facility is not improved, according to MDG guidelines, or it is improved but shared with other household. We also checked the country reports on how the sanitation categories have been grouped. In cases of mismatch, we have followed the country report */ clonevar toilet = ws7 codebook toilet, tab(40) codebook ws8, tab(30) clonevar shared_toilet = ws8 recode shared_toilet (2=0) tab ws8 shared_toilet, miss nol //0=no;1=yes;.=missing gen toilet_mdg = ((toilet<23) & shared_toilet!=1) replace toilet_mdg = 0 if toilet==14 replace toilet_mdg = 0 if (toilet<23) & 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 ******************************************************************************** *** Step 2.7 Drinking Water *** ******************************************************************************** /*Members of the household are considered deprived if the household does not have access to safe drinking water according to MDG guidelines, or safe drinking water is more than a 30-minute walk from home roundtrip. */ clonevar water = ws1 clonevar timetowater = ws3 //Note: 995 is for water on premises codebook water, tab(100) gen ndwater = . //Non-drinking water: variable not present in the dataset gen water_mdg = 1 if water==11 | water==12 | water==13 | water==21 | /// water==31 | water==41 /*Non deprived if water is "piped into dwelling", "piped to yard/plot", "public tap/standpipe", "tube well or borehole", "protected well", "protected spring", "rainwater", "bottled water". These definition it's the same as the Uzbekistan report*/ /*Note: Following the MDG definition, households that receive their drinking water by tanker trucks are identified as unimproved.*/ 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" "surface water (river/lake, etc)", "cart with small tank","other" */ replace water_mdg = 0 if water_mdg==1 & timetowater>=30 & timetowater!=. /// & timetowater!=995 & timetowater!=998 & timetowater!=999 //Deprived if water is at more than 30 minutes' walk (roundtrip) replace water_mdg = . if water==. | water==99 lab var water_mdg "Household has drinking water with MDG standards (considering distance)" tab water water_mdg, 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==11 | floor==96 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 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 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 /*Household is deprived in housing if the roof, floor OR walls uses 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 ******************************************************************************** *** Step 2.9 Cooking Fuel *** ******************************************************************************** /* Members of the household are considered deprived if the household cooks with solid fuels: wood, charcoal, crop residues or dung. "Indicators for Monitoring the Millennium Development Goals", p. 63 */ clonevar cookingfuel = hc6 codebook cookingfuel, tab(99) 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" /* Deprived if: 6 "coal/lignite", 7 "charcoal", 8 "wood", 9 "straw/shrubs/grass" 10 "agricultural crop", 11 "animal dung" */ tab cookingfuel cooking_mdg, miss ******************************************************************************** *** Step 2.10 Assets ownership *** ******************************************************************************** /* Members of the household are considered deprived if the household does not own more than one of: radio, TV, telephone, bike, motorbike or refrigerator and does not own a car or truck. */ codebook hc9c hc9b hc9d hc9e hc10e hc10c hc9f hc10b hc11 clonevar television = hc9c gen bw_television = . clonevar radio = hc9b clonevar telephone = hc9e clonevar mobiletelephone = hc9d clonevar refrigerator = hc9f clonevar car = hc10e clonevar bicycle = hc10b clonevar motorbike = hc10c clonevar computer = hc10n1 clonevar animal_cart = hc10d 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 /* 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" ******************************************************************************** *** Step 2.11 Rename and keep variables for MPI calculation ******************************************************************************** //Retain data on sampling design: egen strata = group(hh7 hh6) /*Note: Urban and rural areas in each of the six regions (except Tashkent city which does not include any rural area) were defined as the sampling domains (p.135). */ gen psu=hh1 /*375 primary sampling units were selected with probability proportional to size from a master frame of 14,799 enumeration areas called “mahala” produced by a countrywide population review, conducted by the State Statistical Committee (SSC) in 2002 (p.17). */ //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 *** /* Note: In the case of Uzbekistan MICS 2006, there is no birth history file. We are not able to identify whether child mortality occured in the last 5 years preceeding the survey date. As such, for the estimation, we use the indicator 'hh_mortality' that represent all child mortality that was ever reported. */ recode hh_mortality (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) *** Keep selected variables for global MPI estimation *** keep hh_id ind_id ccty ccnum cty survey year subsample /// strata psu weight area relationship sex age agec7 agec4 marital hhsize /// region year_interview month_interview date_interview /// 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 ccty ccnum cty survey year subsample /// strata psu weight area relationship sex age agec7 agec4 marital hhsize /// region year_interview month_interview date_interview /// d_cm d_nutr d_satt d_educ d_elct d_wtr d_sani d_hsg d_ckfl d_asst *** Sort, compress and save data for estimation *** sort ind_id compress save "$path_out/uzb_mics06_pov.dta", replace log close