*********************************************************************************************************************** ** Human Development Report Office (HDRO), United Nations Development Programme ** Multidimensional Poverty Index 2024 release ** Methodology developed in partnership with the Oxford Poverty and Human Development Initiative, University of Oxford ************************************************************************************************************************ clear all set more off set maxvar 10000 set mem 500m cap log close *** Working Folder Path *** global path_in "C:\UNDP\MPI\MPI_Computation\MPI_2024\MICS\Thailand MICS_2022\Thailand_StataDataset" global path_out "C:\UNDP\MPI\MPI_Computation\MPI_2024\MICS\Thailand MICS_2022\Outputs" global path_logs "C:\UNDP\MPI\MPI_Computation\MPI_2024\MICS\Thailand MICS_2022" global path_qc "C:\UNDP\MPI\MPI_Computation\MPI_2024\MICS\Thailand MICS_2022" global path_ado "C:" *** Log file *** log using "$path_logs/Thailand_mics21-22_dataprep.log", replace ******************************************************************************** *** Thailand MICS 2021-22 *** ******************************************************************************** ******************************************************************************** *** Step 1: Data preparation *** Selecting main variables from CH, WM, HH & MN recode & merging with HL recode ******************************************************************************** ******************************************************************************** *** 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 ln=uf4 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 + "C:\UNDP\MPI\WHO 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="C:\UNDP\MPI\WHO 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_Thailand" 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 //Check the variable for "sex" has: "1" for male ;"2" for female tab hl4, nol clonevar gender = hl4 desc gender tab gender *** Variable: AGE *** tab caged, miss codebook caged clonevar age_days = caged desc age_days replace age_days = . if caged==9999 replace age_days = . if caged < 0 replace age_days = trunc(cage*(365/12)) if age_days>=9000 & cage<9000 summ age_days gen str6 ageunit = "days" lab var ageunit "Days" *** Variable: BODY WEIGHT (KILOGRAMS) *** codebook an8, tab (9999) /*Coding information: 99.3-Child not present after revisits; 99.4-Child refused; 99.5-Rspondent refused; 99.6-Other(Specify) */ clonevar weight = an8 replace weight = . if an8>=99 tab uf17 an8 if an8>=99 | an8==., miss //uf17: result of the child interview. *tab uf9 if uf17==. & an8==. desc weight summ weight *** Variable: HEIGHT (CENTIMETERS) codebook an11, tab (9999) /*Coding information: 99.4-Child refused; 99.5-Rspondent refused; 99.6-Other(Specify) */ clonevar height = an11 replace height = . if an11>=999 tab uf17 an11 if an11>=999 | an11==., miss desc height summ height *** Variable: MEASURED STANDING/LYING DOWN codebook an12 gen measure = "l" if an12==1 //Child measured lying down replace measure = "h" if an12==2 //Child measured standing up replace measure = " " if an12==9 | an12==0 | an12==. //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_days ageunit weight height measure oedema sw /*We now turn to using the dta file that was created and that contains the calculated z-scores to create the child nutrition variables following WHO standards */ use "$path_out/children_nutri_Thailand_z_rc.dta", clear 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 tab underweight [iweight=chweight] 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 tab stunting [iweight=chweight] 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 tab wasting [iweight=chweight] count if _fwei==1 | _flen==1 /* Implausible values are excluded */ //Retain relevant variables: keep ind_id child_CH ln underweight stunting wasting order ind_id child_CH ln underweight stunting wasting sort ind_id duplicates report ind_id //Erase files from folder: erase "$path_out/children_nutri_Thailand_z_rc.xls" erase "$path_out/children_nutri_Thailand_prev_rc.xls" *erase "$path_out/children_nutri_Thailand_z_rc.dta" //Save a temp file for merging with HL: save "$path_out/Thailand22_CH.dta", replace ******************************************************************************** *** Step 1.2 BR - BIRTH RECODE *** (All females 15-49 years who ever gave birth) ******************************************************************************** *Thailand MICS 2021_22 survey doesn't collect information on child's birth history. ******************************************************************************** *** Step 1.2 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 ln=wm4 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 women_WM =1 //Identification variable for observations in WM recode tab wb4, miss /* age of woman */ tab1 cm1 cm8, m tab cm1 cm8, miss /*Women who has never ever given birth will not have information on child mortality. */ lookfor marital codebook mstatus ma6, tab (10) tab mstatus ma6, miss tab mstatus ma6, miss nol gen marital = 1 if mstatus == 3 & ma6==. //1: Never married replace marital = 2 if mstatus == 1 & ma6==. //2: Currently married replace marital = 3 if mstatus == 2 & ma6==1 //3: Widowed replace marital = 4 if mstatus == 2 & ma6==2 //4: Divorced replace marital = 5 if mstatus == 2 & ma6==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 ma6 marital, miss tab mstatus marital, miss //Retain relevant variables: keep wm17 cm1 cm8 cm9 cm10 ind_id women_WM marital order wm17 cm1 cm8 cm9 cm10 ind_id women_WM marital sort ind_id //Save a temp file for merging with HL: save "$path_out/Thailand22_WM.dta", replace ******************************************************************************** *** Step 1.3 MN - MEN'S RECODE ***(All eligible man: 15-49 years in the household) ******************************************************************************** *No MN dataset 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 lookfor marital codebook mmstatus mma6, tab (10) tab mmstatus mma6, miss gen marital = 1 if mmstatus == 3 & mma6==. //1: Never married replace marital = 2 if mmstatus == 1 & mma6==. //2: Currently married replace marital = 3 if mmstatus == 2 & mma6==1 //3: Widowed replace marital = 4 if mmstatus == 2 & mma6==2 //4: Divorced replace marital = 5 if mmstatus == 2 & mma6==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 mma6 marital, miss tab mmstatus marital, miss //Retain relevant variables: keep mcm1 mcm8 mcm9 mcm10 ind_id men_MN marital mnweight order mcm1 mcm8 mcm9 mcm10 ind_id men_MN marital mnweight sort ind_id //Save a temp file for merging with HL: save "$path_out/Thailand22_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" duplicates report hh_id //Save a temp file for merging with HL: save "$path_out/Thailand22_HH.dta", replace ******************************************************************************** *** Step 1.5 HL - HOUSEHOLD MEMBER ******************************************************************************** use "$path_in/hl.dta", clear rename _all, lower gen year = "2021-22" gen survey = "MICS" gen country = "Thailand" gen countrycode = "THA" *** 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 sort ind_id ******************************************************************************** *** Step 1.6 DATA MERGING ******************************************************************************** /* *** Merging BR Recode ***************************************** merge 1:1 ind_id using "$path_out/Thailand22_BH.dta" drop _merge tab women_BH, miss erase "$path_out/Thailand22_BH.dta" */ *** Merging WM Recode ***************************************** merge 1:1 ind_id using "$path_out/Thailand22_WM.dta" tab hl8, miss gen temp = (hl8>0 & hl8<.) tab women_WM temp, miss col tab wm17 if temp==1 & women_WM==., miss //Total of eligible women not interviewed drop temp drop _merge erase "$path_out/Thailand22_WM.dta" *** Merging HH Recode ***************************************** merge m:1 hh_id using "$path_out/Thailand22_HH.dta" tab hh46 if _m==2 drop if _merge==2 //Drop households that were not interviewed (n=4532 observations deleted). drop _merge erase "$path_out/Thailand22_HH.dta" *** Merging MN Recode ***************************************** merge 1:1 ind_id using "$path_out/Thailand22_MN.dta" drop _merge erase "$path_out/Thailand22_MN.dta" *** Merging CH Recode ***************************************** merge 1:1 ind_id using "$path_out/Thailand22_CH.dta" drop _merge erase "$path_out/Thailand22_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 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 = (hl8>0 & hl8<.) if hl8!=. 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 tab hl8 no_fem_eligible, m *** No Eligible Men 15-49 years ***************************************** gen male_eligible = (hl9>0 & men_MN==1) if hl9!=. 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 men" tab no_male_eligible, miss *** No Eligible Children 0-5 years ***************************************** gen child_eligible = (hl10>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 tab hl10 no_child_eligible, m *** No Eligible Women and Men *********************************************** *** 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 */ drop fem_eligible hh_n_fem_eligible child_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 codebook 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)(13=3)(4/12=4)(14=6)(15=3)(96=5)(97/99=.) /*Please ensure recoding follows these 6 broad categories: 1"head" 2"spouse" 3"child" 4"extended family" 5"not related" 6"maid" */ 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 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)" //Total number of de jure 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 hh48 drop member //Subnational region * hh7a is at the district level lookfor region lookfor state 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 *** ******************************************************************************** ** official school entrance age: 6 yrs ** official duration of primary school: 6 yrs /* For Thailand, the official entrance age for primary education is 6 years and the duration is 6 years, the entrance age of lower secondary is 12 years and the duration is 3 years, the entrace age of upper secondary is 15 years and the duration is 3 years. (Source: http://data.uis.unesco.org/)*/ tab ed5b ed5a, miss codebook ed5b ed5a ed4, tab (30) tab age ed10a if ed9==1, miss /*Check: For those currently in school, check their level of schooling. */ gen eduyears=1 if ed5b==1 & ed5a==1 replace eduyears=2 if ed5b==2 & ed5a==1 replace eduyears=3 if ed5b==3 & ed5a==1 replace eduyears=4 if ed5b==4 & ed5a==1 replace eduyears=5 if ed5b==5 & ed5a==1 replace eduyears=6 if ed5b==6 & ed5a==1 replace eduyears=7 if ed5b==1 & ed5a==2 replace eduyears=8 if ed5b==2 & ed5a==2 replace eduyears=9 if ed5b==3 & ed5a==2 replace eduyears=10 if (ed5b==4 & ed5a==3) | (ed5b==1 & ed5a==4) replace eduyears=11 if (ed5b==5 & ed5a==3) | (ed5b==2 & ed5a==4) replace eduyears=12 if (ed5b==6 & ed5a==3) | (ed5b==3 & ed5a==4) replace eduyears=13 if ed5b==1 & ed5a==6 | (ed5b==1 & ed5a==5) replace eduyears=14 if ed5b==2 & ed5a==6 | (ed5b==2 & ed5a==5) replace eduyears=15 if ed5b==3 & ed5a==6 | (ed5b==3 & ed5a==5) replace eduyears=16 if ed5b==4 & ed5a==6 replace eduyears=17 if ed5b==5 & ed5a==6 replace eduyears=18 if ed5b==6 & ed5a==6 replace eduyears=17 if ed5b==1 & ed5a==7 replace eduyears=18 if ed5b==2 & ed5a==7 replace eduyears=19 if ed5b==1 & ed5a==8 replace eduyears=20 if ed5b==2 & ed5a==8 replace eduyears=21 if ed5b==3 & ed5a==8 replace eduyears=0 if ed5a==0 | ed4==2 replace eduyears = eduyears-1 if ed6==2 & eduyears>0 & eduyears<. /* Deduct 1 year of schooling to those who did not complete the highest level attended */ replace eduyears=0 if ed5b==95 *Coding Non-Formal education as zero. lab var eduyears "Highest year of education completed" replace eduyears=6 if (ed5a>=2 & ed5a<=6) & (ed5b==97 | ed5b==98 | ed5b==99 | ed5b==.) *imputing 6 years, we do not know how many years they completed but they completed at least 6 years, so for MPI they are not deprived tab eduyears ed5a, miss *** Cleaning 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 */ replace eduyears = 0 if (age==10 | age==11) & eduyears < 6 /*The variable "eduyears" was replaced with a '0' given that the criteria for this indicator is household member aged 12 years or older (6 years-school entrance age primary +6 years) */ /*A control variable is created on whether there is information on years of education for at least 2/3 of the household members. */ gen temp = 1 if (eduyears!=. & (age>=12 & age!=.)) | ((age==10 | age==11 ) & eduyears>=6 & eduyears<.) bysort hh_id: egen no_missing_edu = sum(temp) /*Total household members who are 12 years and older with no missing years of education but recognizing as an achievement if the member is 10 or 11 and already completed 6 yrs of schooling */ gen temp2 = 1 if (age>=12 & age!=.) | ((age==10 | age==11) & eduyears>=6 & eduyears<.) bysort hh_id: egen hhs = sum(temp2) //Total number of household members who are 12 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 12 years and older */ tab no_missing_edu, miss label var no_missing_edu "No missing edu for at least 2/3 of the HH members aged 12 years & older" drop temp temp2 hhs /*The entire household is considered deprived if no household member aged 12 years or older has completed SIX years of schooling. */ gen years_edu6 = (eduyears>=6) /* The years of schooling indicator takes a value of "1" if at least someone in the hh has reported 6 years of education or more */ 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 lab var hh_years_edu6 "Household has at least one member with 6 years of edu" tab hh_years_edu6, m ******************************************************************************** *** Step 2.2 Child School Attendance *** ******************************************************************************** codebook ed9, tab (10) gen attendance = 1 if ed9==1 //Replace attendance with '1' if currently attending school replace attendance = 0 if ed9==2 //Replace attendance with '0' if currently not attending school replace attendance = 0 if ed4==2 //Replace attendance with '0' if never ever attended school *replace attendance = 0 if ed4==1 & ed5a==4 //Replace attendance with '0' if attended school but informal schooling //informal education not available in the dataset. tab age ed9, 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", modify label values attendance lab_attend label var attendance "Attended school during current school year" /*The entire household is considered deprived if any school-aged child is not attending school up to class 8. */ gen child_schoolage = (schage>=6 & schage<=14) /* Note: In Thailand, the official school entrance age is 6 years. So, age range is 6-14 (=6+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 = 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 = hh_no_uw_st lab var hh_nutrition_uw_st "Household has no child underweight or stunted" */ ******************************************************************************** *** Step 2.4 Child Mortality *** ******************************************************************************** codebook cm9 cm10 /*mcm9 mcm10*/ //cm9 or mcm9: number of sons who have died //cm10 or mcm10: number of daughters who have died replace cm1=1 if cm8==1 & cm1==2 egen temp_f = rowtotal(cm9 cm10), missing //Total child mortality reported by eligible women replace temp_f = 0 if (/*cm1==1 &*/ cm8==2) | cm1==2 *replace temp_f = 0 if marital==1 & women_WM==1 & temp_f==. /*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 - never married women assumed not deprived */ *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 replace mcm1=1 if mcm8==1 & mcm1==2 egen temp_m = rowtotal(mcm9 mcm10), 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 men */ 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 tab child_mortality_f child_mortality_m, m egen child_mortality = rowmax(child_mortality_f child_mortality_m) replace child_mortality = 0 if no_fem_eligible==1 & no_male_eligible==1 lab var child_mortality "Total child mortality within household reported by women" tab child_mortality, miss gen hh_mortality = (child_mortality==0) replace hh_mortality = . if child_mortality==. tab hh_mortality, miss lab var hh_mortality "Household had no child mortality any time" /*Deprived if any children died in the household in the last 5 years from the survey year */ ************************************************************************ ** NO BIRTH HISTORIES ******************************************************************************** *** Step 2.5 Electricity *** ******************************************************************************** /*Members of the household are considered deprived if the household has no electricity */ clonevar electricity = hc8 codebook electricity, tab (9) replace electricity = 1 if (electricity==1| electricity==2) //Off-grind (generator/isolated system), private network, and solar coded as having electricity replace electricity = 0 if electricity==3 replace electricity = . if electricity==9 ta hc8 electricity,m 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 */ lookfor toilet clonevar toilet = ws11 codebook toilet, tab(30) codebook ws15, tab(30) clonevar shared_toilet = ws15 recode shared_toilet (2=0) (9=.) tab ws15 shared_toilet, miss nol //0=no;1=yes;.=missing gen toilet_mdg = 0 if ws11==14 | ws11==23 | ws11==25| ws11==41 | ws11==51 | ws11==95 | ws11==96 replace toilet_mdg = 1 if ws11==11 | ws11==12 | ws11==13 | ws11==18 | ws11==21 | ws11==22 | ws11==24 | ws11==31 replace toilet_mdg = 0 if shared_toilet==1 /*shared*/ /*Household is assigned a value of '0' if it uses improved sanitation but shares toilet with other households */ lab var toilet_mdg "Household has improved sanitation with MDG Standards" tab toilet toilet_mdg, miss /* tab toilet, miss tab toilet Type of toilet facility | Freq. Percent Cum. ----------------------------------------+----------------------------------- FLUSH / POUR FLUSH: FLUSH TO PIPED SEWE | 15,977 15.99 15.99 11 y FLUSH / POUR FLUSH: FLUSH TO SEWAGE TAN | 80,246 80.33 96.32 12 y FLUSH / POUR FLUSH: FLUSH TO PIT LATRIN | 3,188 3.19 99.51 13 y FLUSH / POUR FLUSH: FLUSH TO ELSEWHERE | 73 0.07 99.58 14 n FLUSH / POUR FLUSH: FLUSH TO DK WHERE | 42 0.04 99.62 18 y PIT LATRINE: VENTILATED IMPROVED PIT LA | 65 0.07 99.69 21 y PIT LATRINE: PIT LATRINE WITH SLAB | 181 0.18 99.87 22 y PIT LATRINE: PIT LATRINE WITHOUT SLAB / | 14 0.01 99.88 23 n NO TOILET FACILITY OR BUSH OR FIELD | 57 0.06 99.94 95 n OTHER | 39 0.04 99.98 96 n NO RESPONSE | 19 0.02 100.00 99 Missing ----------------------------------------+----------------------------------- Total | 99,901 100.00 */ ******************************************************************************** *** 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 = ws4 codebook water, tab(100) clonevar ndwater = ws2 //Non-drinking water tab ws2 if water==91| water==92 /*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. */ tab ws1, miss /* tab ws1 tab ws1, miss Main source of drinking water | Freq. Percent Cum. ----------------------------------------+----------------------------------- PIPED WATER: PIPED/HOSED INTO DWELLING | 17,416 17.43 17.43 11 y PIPED WATER: PIPED/HOSED INTO COMPOUND | 1,677 1.68 19.11 12 y PIPED WATER: PIPED/HOSED TO NEIGHBOUR�S | 58 0.06 19.17 13 y PIPED WATER: PUBLIC TAP | 186 0.19 19.36 14 y TUBE-WELL | 1,214 1.22 20.57 21 y DUG WELL: PROTECTED (E.G. ROOF, WELL LI | 1,913 1.91 22.49 31 y DUG WELL: UNPROTECTED | 374 0.37 22.86 32 n RAINWATER | 2,594 2.60 25.46 51 y WATER TANK TRUCK | 49 0.05 25.51 61 y SURFACE WATER (RIVER, DAM, LAKE, POND, | 261 0.26 25.77 81 n PACKAGED WATER: BOTTLED WATER | 25,278 25.30 51.07 91 y PACKAGED WATER: GALLON SIZED WATER | 43,155 43.20 94.27 93 y PACKAGED WATER: GLASS / CUP WATER | 685 0.69 94.95 94 y COIN-OPERATED WATER DISPENSER | 5,028 5.03 99.99 95 y OTHER | 13 0.01 100.00 96 n ----------------------------------------+----------------------------------- Total | 99,901 100.00 */ gen water_mdg = 1 if ws1==11 | ws1==12 | ws1==13 | ws1==14 | ws1==21 | ws1==31 | ws1==41 | ws1==51 | ws1==61 | ws1==71 | ws1==72| ws1==91| ws1==92| ws1==93| ws1==94| ws1==95 replace water_mdg = 0 if ws1==32 | ws1==42 | ws1==81 | ws1==96 replace water_mdg = 0 if timetowater >= 30 & timetowater!=. & timetowater!=998 & timetowater!=999 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 = hc4 codebook floor, tab(99) gen floor_imp = 1 replace floor_imp = 0 if floor<=12 | floor==96 replace floor_imp = . if floor==. | floor==99 lab var floor_imp "Household has floor that it is not earth/sand/dung" ta hc4 floor_imp,m /* Members of the household are considered deprived if the household has wall made of natural or rudimentary materials */ clonevar wall = hc6 codebook wall, tab(99) gen wall_imp = 1 replace wall_imp = 0 if wall<=27 | wall==96 replace wall_imp = . if wall==. | wall==99 lab var wall_imp "Household has wall that it is not of low quality materials" ta hc6 wall_imp, m /* Members of the household are considered deprived if the household has roof made of natural or rudimentary materials */ clonevar roof = hc5 codebook roof, tab(99) gen roof_imp = 1 replace roof_imp = 0 if roof<=25 | roof==96 replace roof_imp = . if roof==. | roof==99 lab var roof_imp "Household has roof that it is not of low quality materials" tab hc5 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.*/ tab eu1, m clonevar cookingfuel = eu1 codebook cookingfuel, tab(99) gen cooking_mdg = 1 if cookingfuel<=6 | cookingfuel==97 replace cooking_mdg = 0 if cookingfuel>6 & cookingfuel<=96 replace cooking_mdg = 1 if (eu4==1 | eu4==2 | eu4==3) replace cooking_mdg = 0 if (eu1==6 & (eu4==6 | eu4==9)) | ((eu4>=4 & eu4<=12) & eu1==99) *replace cooking_mdg = 1 if eu4==3 & eu1==96 lab var cooking_mdg "Household has cooking fuel by MDG standards" /* Deprived if: "coal/lignite", "charcoal", "wood", "straw/shrubs/grass" "agricultural crop", "animal dung" */ bys cooking_mdg: ta eu1 eu4, m ******************************************************************************** *** 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. */ //Check that for standard assets in living standards: "no"==0 and yes=="1" codebook hc9a hc9b /*hc7b hc7a*/ hc12 hc9c hc9d hc9e hc10e hc10b hc10c hc11 /*hc,,,,,,,,,,,8kkjkkjmk10d*/ //hc7b, hc7a and hc10d not available clonevar television = hc9a clonevar lCD_television = hc9b gen radio = . gen telephone = . clonevar mobiletelephone = hc12 clonevar refrigerator = hc9c clonevar refrigerator2 = hc9d clonevar refrigerator3 = hc9e clonevar car = hc10e clonevar bicycle = hc10b clonevar motorbike = hc10c clonevar largebike=hc10i clonevar computer = hc11 gen animal_cart = . foreach var in television lCD_television radio telephone mobiletelephone refrigerator /// refrigerator2 refrigerator3 car bicycle motorbike largebike computer animal_cart { replace `var' = 0 if `var'==2 replace `var' = . if `var'==9 | `var'==99 | `var'==8 | `var'==98 } *** //Group television and LCD_television as a single variable replace television= 1 if lCD_television==1 //Group telephone and mobiletelephone as a single variable replace telephone=1 if mobiletelephone==1 //Group motobike and largebike as a single variable replace motorbike=1 if largebike==1 //Group refrigerator variables as a single variable replace refrigerator=1 if refrigerator2==1 | refrigerator3==1 tab1 television telephone motorbike refrigerator, m /* 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, m ******************************************************************************** *** Step 2.11 Rename and keep variables for MPI calculation ******************************************************************************** //Retain data on sampling design: desc psu stratum clonevar strata = stratum *gen psu = . //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 (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 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 hh_mortality hh_nutrition_uw_st hh_child_atten hh_years_edu6 electricity water_mdg toilet_mdg housing_1 cooking_mdg hh_assets2 country countrycode order hh_id ind_id country countrycode 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 hh_mortality hh_nutrition_uw_st hh_child_atten hh_years_edu6 electricity water_mdg toilet_mdg housing_1 cooking_mdg hh_assets2 *** Sort, compress and save data for estimation *** sort ind_id compress save "$path_out/Thailand_mics22_pov.dta", replace log close ******************************************************************************** *** MPI Calculation (TTD file) ******************************************************************************** **SELECT COUNTRY POV FILE RUN ON LOOP FOR MORE COUNTRIES use "$path_out\Thailand_mics22_pov.dta", clear ******************************************************************************** *** Define Sample Weight and total population *** ******************************************************************************** gen sample_weight = weight /* change to weight if MICS*/ ******************************************************************************** *** List of the 10 indicators included in the MPI *** ******************************************************************************** gen edu_1 = hh_years_edu6 gen atten_1 = hh_child_atten gen cm_1 = hh_mortality /* change countries with no child mortality 5 year to child mortality ever*/ gen nutri_1 = hh_nutrition_uw_st gen elec_1 = electricity gen toilet_1 = toilet_mdg gen water_1 = water_mdg gen house_1 = housing_1 gen fuel_1 = cooking_mdg gen asset_1 = hh_assets2 global est_1 edu_1 atten_1 cm_1 nutri_1 elec_1 toilet_1 water_1 house_1 fuel_1 asset_1 ******************************************************************************** *** List of sample without missing values *** ******************************************************************************** foreach j of numlist 1 { gen sample_`j' = (edu_`j'!=. & atten_`j'!=. & cm_`j'!=. & nutri_`j'!=. & elec_`j'!=. & toilet_`j'!=. & water_`j'!=. & house_`j'!=. & fuel_`j'!=. & asset_`j'!=.) replace sample_`j' = . if subsample==0 /* Note: If the anthropometric data was collected from a subsample of the total population that was sampled, then the final analysis only includes the subsample population. */ *** Percentage sample after dropping missing values *** sum sample_`j' [iw = sample_weight] gen per_sample_weighted_`j' = r(mean) sum sample_`j' gen per_sample_`j' = r(mean) } *** ******************************************************************************** *** Define deprivation matrix 'g0' *** which takes values 1 if individual is deprived in the particular *** indicator according to deprivation cutoff z as defined during step 2 *** ******************************************************************************** foreach j of numlist 1 { foreach var in ${est_`j'} { gen g0`j'_`var' = 1 if `var'==0 replace g0`j'_`var' = 0 if `var'==1 } } *** Raw Headcount Ratios foreach j of numlist 1 { foreach var in ${est_`j'} { sum g0`j'_`var' if sample_`j'==1 [iw = sample_weight] gen raw`j'_`var' = r(mean)*100 lab var raw`j'_`var' "Raw Headcount: Percentage of people who are deprived in `var'" } } ******************************************************************************** *** Define vector 'w' of dimensional and indicator weight *** ******************************************************************************** /*If survey lacks one or more indicators, weights need to be adjusted within / each dimension such that each dimension weighs 1/3 and the indicator weights add up to one (100%). CHECK COUNTRY FILE*/ foreach j of numlist 1 { // DIMENSION EDUCATION foreach var in edu_`j' atten_`j' { capture drop w`j'_`var' gen w`j'_`var' = 1/6 } // DIMENSION HEALTH foreach var in cm_`j' nutri_`j' { capture drop w`j'_`var' gen w`j'_`var' = 1/6 } // DIMENSION LIVING STANDARD foreach var in elec_`j' toilet_`j' water_`j' house_`j' fuel_`j' asset_`j' { capture drop w`j'_`var' gen w`j'_`var' = 1/18 } } ******************************************************************************** *** Generate the weighted deprivation matrix 'w' * 'g0' ******************************************************************************** foreach j of numlist 1 { foreach var in ${est_`j'} { gen w`j'_g0_`var' = w`j'_`var' * g0`j'_`var' replace w`j'_g0_`var' = . if sample_`j'!=1 /*The estimation is based only on observations that have non-missing values for all variables in varlist_pov*/ } } ******************************************************************************** *** Generate the vector of individual weighted deprivation count 'c' ******************************************************************************** foreach j of numlist 1 { egen c_vector_`j' = rowtotal(w`j'_g0_*) replace c_vector_`j' = . if sample_`j'!=1 *drop w_g0_* } ******************************************************************************** *** Identification step according to poverty cutoff k (20 33.33 50) *** ******************************************************************************** foreach j of numlist 1 { foreach k of numlist 20 33 50 { gen multidimensionally_poor_`j'_`k' = (c_vector_`j'>=`k'/100) replace multidimensionally_poor_`j'_`k' = . if sample_`j'!=1 //Takes value 1 if individual is multidimensional poor } } ******************************************************************************** *** Generate the censored vector of individual weighted deprivation count 'c(k)' ******************************************************************************** foreach j of numlist 1 { foreach k of numlist 20 33 50 { gen c_censured_vector_`j'_`k' = c_vector_`j' replace c_censured_vector_`j'_`k' = 0 if multidimensionally_poor_`j'_`k'==0 } //Provide a score of zero if a person is not poor } * ******************************************************************************** *** Define censored deprivation matrix 'g0(k)' *** ******************************************************************************** foreach j of numlist 1 { foreach var in ${est_`j'} { gen g0`j'_k_`var' = g0`j'_`var' replace g0`j'_k_`var' = 0 if multidimensionally_poor_`j'_33==0 replace g0`j'_k_`var' = . if sample_`j'!=1 } } ******************************************************************************** *** Generates Multidimensional Poverty Index (MPI), *** Headcount (H) and Intensity of Poverty (A) *** ******************************************************************************** *** Multidimensional Poverty Index (MPI) *** foreach j of numlist 1 { foreach k of numlist 20 33 50 { sum c_censured_vector_`j'_`k' [iw = sample_weight] if sample_`j'==1 gen MPI_`j'_`k' = r(mean) lab var MPI_`j'_`k' "MPI with k=`k'" } sum c_censured_vector_`j'_33 [iw = sample_weight] if sample_`j'==1 gen MPI_`j' = r(mean) lab var MPI_`j' "`j' Multidimensional Poverty Index (MPI = H*A): Range 0 to 1" *** Headcount (H) *** sum multidimensionally_poor_`j'_33 [iw = sample_weight] if sample_`j'==1 gen H_`j' = r(mean)*100 lab var H_`j' "`j' Headcount ratio: % Population in multidimensional poverty (H)" *** Intensity of Poverty (A) *** sum c_censured_vector_`j'_33 [iw = sample_weight] if multidimensionally_poor_`j'_33==1 & sample_`j'==1 gen A_`j' = r(mean)*100 lab var A_`j' "`j' Intensity of deprivation among the poor (A): Average % of weighted deprivations" *** Population vulnerable to poverty (who experience 20-32.9% intensity of deprivations) *** gen temp = 0 replace temp = 1 if c_vector_`j'>=0.2 & c_vector_`j'<0.3332 replace temp = . if sample_`j'!=1 sum temp [iw = sample_weight] gen vulnerable_`j' = r(mean)*100 lab var vulnerable_`j' "`j' % Population vulnerable to poverty (who experience 20-32.9% intensity of deprivations)" drop temp *** Population in severe poverty (with intensity 50% or higher) *** gen temp = 0 replace temp = 1 if c_vector_`j'>0.49 replace temp = . if sample_`j'!=1 sum temp [iw = sample_weight] gen severe_`j' = r(mean)*100 lab var severe_`j' "`j' % Population in severe poverty (with intensity 50% or higher)" drop temp } * *** Censored Headcount *** foreach j of numlist 1 { foreach var in ${est_`j'} { sum g0`j'_k_`var' [iw = sample_weight] if sample_`j'==1 gen cen`j'_`var' = r(mean)*100 lab var cen`j'_`var' "Censored Headcount: Percentage of people who are poor and deprived in `var'" } } *** Dimensional Contribution *** foreach j of numlist 1 { foreach var in ${est_`j'} { gen cont`j'_`var' = (w`j'_`var' * cen`j'_`var')/MPI_`j' if sample_`j'==1 lab var cont`j'_`var' "% Contribution in MPI of indicator..." } } ** The line below produces the variance (inequality among the poor) ** sum c_vector_1 if c_vector_1>=1/3 & c_vector_1<=1 [aw = sample_weight], detail gen var=r(Var) *** Prepare results to export *** *keep country year survey per_sample_weighted* per_sample* MPI* H* A* vulnerable* severe* raw* cen* cont* var *gen temp = (_n) *keep if temp==1 *drop temp order hh_id ind_id country countrycode survey year subsample strata psu weight area relationship sex age agec7 agec4 marital hhsize region year_interview month_interview date_interview MPI_1 H_1 A_1 severe_1 vulnerable_1 var cont1_nutri_1 cont1_cm_1 cont1_edu_1 cont1_atten_1 cont1_fuel_1 cont1_toilet_1 cont1_water_1 cont1_elec_1 cont1_house_1 cont1_asset_1 per_sample_1 per_sample_weighted_1 raw1_nutri_1 raw1_cm_1 raw1_edu_1 raw1_atten_1 raw1_fuel_1 raw1_toilet_1 raw1_water_1 raw1_elec_1 raw1_house_1 raw1_asset_1 cen1_nutri_1 cen1_cm_1 cen1_edu_1 cen1_atten_1 cen1_fuel_1 cen1_toilet_1 cen1_water_1 cen1_elec_1 cen1_house_1 cen1_asset_1 codebook, compact clear