The DHS Program User Forum
Discussions regarding The DHS Program data and results
Home » Topics » Nutrition and Anthropometry » IYCF indicators (Bangladesh Demographic and Health Survey 2017-18)
IYCF indicators Wed, 05 January 2022 05:42
 Md Mahbubul Alam Shaun Messages: 5Registered: January 2022 Member
Dear all experts,
I am new here. Can you please let me know how to calculate the minimum acceptable diet and minimum dietary diversity for children aged 6-23 months? Though I have calculated the minimum meal frequency of BDHS 2017-18 and got 79.87%, in the final BDHS report it is 81%. I would also like to request you what error might I did? I used the following syntax:

gen age = V008-B3
keep if age<24 & B5==1
keep if B9==0
drop if _n > 0 & CASEID == CASEID[_n-1]
drop if age<6
gen wt= V005/1000000
gen minfreq1 = 0
replace minfreq1 =1 if (M39>1 & M39<8 & age>=6 & age<=8) | (M39>2 & M39<8 & age>=9 & age<=23)
ta minfreq1 if V404==1 [iw=wt]
gen totmilkf = 0
replace totmilkf=totmilkf + V469E if V469E<8
replace totmilkf=totmilkf + V469E if V469E<8
replace totmilkf=totmilkf + V469E if V469E<8
*
gen feedings=totmilkf
replace feedings= feedings + M39 if M39>0 & M39<8
gen minfreq2 =0
replace minfreq2 = 1 if feedings>=4
*
gen minfreq3=0
replace minfreq3=1 if minfreq1==1 & V404==1
replace minfreq3=1 if minfreq2==1 & V404==0
ta minfreq3 [iw=wt]
*
gen MMF=.
replace MMF=0 if minfreq3==0
replace MMF=1 if minfreq3==1
la de MMF 0 "No" 1 "Yes", replace
la val MMF MMF
la var MMF "Minimum Meal Frequency"
tab MMF [iw=wt]
Re: IYCF indicators [message #23902 is a reply to message #23901] Wed, 05 January 2022 09:55
 Bridgette-DHS Messages: 3000Registered: February 2013 Senior Member
Following is a response from DHS Research & Data Analysis Director, Tom Pullum:

The Stata syntax for these indicators is posted on our GitHub site ( https://github.com/DHSProgram/DHS-Indicators-Stata/tree/mast er/Chap11_NT). Please read the documentation carefully. These are among the most difficult indicators in DHS surveys.

Re: IYCF indicators [message #23940 is a reply to message #23902] Sat, 15 January 2022 03:47
 Md Mahbubul Alam Shaun Messages: 5Registered: January 2022 Member
Hello Tom Pullum,
As per your suggestion, I have used the following syntax. But it does not match the results of table 11.7 of BDHS final report of minimum acceptable diet. Please let me know the problem or how can I fix it.

gen nt_bf_curr= M4==95
label values nt_bf_curr yesno
label var nt_bf_curr "Currently breastfeeding - last-born under 2 years"
*
gen water=0
gen liquids=0
gen milk=0
gen solids=0
*
replace water=1 if (V409>=1 & V409<=7)
foreach xvar of varlist V409A V410 V410A V412C V413*{
replace liquids=1 if `xvar'>=1 & `xvar'<=7
}
*
foreach xvar of varlist V411 V411A {
replace milk=1 if `xvar'>=1 & `xvar'<=7
}
*
foreach xvar of varlist V414* {
replace solids=1 if `xvar'>=1 & `xvar'<=7
}
replace solids=1 if V412A==1 | V412B==1 | M39A==1
gen nt_bf_status=1
replace nt_bf_status=2 if water==1
replace nt_bf_status=3 if liquids==1
replace nt_bf_status=4 if milk==1
replace nt_bf_status=5 if solids==1
replace nt_bf_status=0 if nt_bf_curr==0
label define bf_status 0"not bf" 1"exclusively bf" 2"bf & plain water" 3"bf & non-milk liquids" 4"bf & other milk" 5"bf & complemenatry foods"
label values nt_bf_status bf_status
label var nt_bf_status "Breastfeeding status for last-born child under 2 years"
*
gen age = V008 - B3
*
gen v1= (M4!=94 & M4!=99) & (inrange(M34,0,100)) if (MIDX==1 & age<24)
la de v1 0 "No" 1 "Yes", replace
label values v1 v1
label var v1 "Initiation of breastfeeding withinh 1 hour - last-born in the past 2 years"
*
recode nt_bf_status (1=1) (else=0) if age<6, gen(nt_ebf)
label values nt_ebf yesno
label var nt_ebf "Exclusively breastfed - last-born under 6 months"
*
recode nt_bf_status (1/3=1) (else=0) if age<6, gen(nt_predo_bf)
label values nt_predo_bf yesno
label var nt_predo_bf "Predominantly breastfed - last-born under 6 months"
*
gen nt_ageapp_bf=0
replace nt_ageapp_bf=1 if nt_ebf==1
replace nt_ageapp_bf=1 if nt_bf_status==5 & inrange(age,6,23)
label values nt_ageapp_bf yesno
label var nt_ageapp_bf "Age-appropriately breastfed - last-born under 2 years"
*
gen nt_food_bf = 0
replace nt_food_bf=1 if (V412A==1 | V412B==1 | M39A==1)
foreach i in a b c d e f g h i j k l m n o p q r s t u v w {
replace nt_food_bf=1 if V414I==1
}
replace nt_food_bf=. if !inrange(age,6,8)
label values nt_food_bf yesno
label var nt_food_bf "Introduced to solid, semi-solid, or soft foods - last-born 6-8 months"
*
gen nt_bf_cont_1yr= M4==95 if inrange(age,12,15)
label values nt_bf_cont_1yr yesno
label var nt_bf_cont_1yr "Continuing breastfeeding at 1 year (12-15 months) - last-born under 2 years"
*
gen nt_bf_cont_2yr= M4==95 if inrange(age,20,23)
label values nt_bf_cont_2yr yesno
label var nt_bf_cont_2yr "Continuing breastfeeding at 2 year (20-23 months) - last-born under 2 years"
*
gen food1= V414A==1
gen food2= V414B==1
gen food3= V414C==1
gen food4= V414D==1
*
gen nt_formula= V411A==1
label values nt_formula yesno
label var nt_formula "Child given infant formula in day/night before survey - last-born under 2 years"
*
gen nt_milk= V411==1
label values nt_milk yesno
label var nt_milk "Child given other milk in day/night before survey- last-born under 2 years"
*
gen nt_liquids= V410==1 | V412C==1 | V413==1
label values nt_liquids yesno
label var nt_liquids "Child given other liquids in day/night before survey- last-born under 2 years"
*
gen nt_bbyfood= V412A==1
label values nt_bbyfood yesno
label var nt_bbyfood "Child given fortified baby food in day/night before survey- last-born under 2 years"
*
gen nt_grains= V412A==1 | V414E==1
label values nt_grains yesno
label var nt_grains "Child given grains in day/night before survey- last-born under 2 years"
*
gen nt_vita= V414I==1 | V414J==1 | V414K==1
label values nt_vita yesno
label var nt_vita "Child given vitamin A rich food in day/night before survey- last-born under 2 years"
*
gen nt_frtveg= V414L==1
label values nt_frtveg yesno
label var nt_frtveg "Child given other fruits or vegetables in day/night before survey- last-born under 2 years"
*
gen nt_root= V414F==1
label values nt_root yesno
label var nt_root "Child given roots or tubers in day/night before survey- last-born under 2 years"
*
if V000=="BD7" {
replace nt_root=1 if food1==1
}
*
gen nt_nuts= V414O==1
label values nt_nuts yesno
label var nt_nuts "Child given legumes or nuts in day/night before survey- last-born under 2 years"
*
gen nt_meatfish= V414H==1 | V414M==1 | V414N==1
label values nt_meatfish yesno
label var nt_meatfish "Child given meat, fish, shellfish, or poultry in day/night before survey- last-born under 2 years"
*
if V000=="BD7" {
replace nt_meatfish=1 if food2==1
}
*
gen nt_eggs= V414G==1
label values nt_eggs yesno
label var nt_eggs "Child given eggs in day/night before survey- last-born under 2 years"
//Given dairy
gen nt_dairy= V414P==1 | V414V==1
label values nt_dairy yesno
label var nt_dairy "Child given cheese, yogurt, or other milk products in day/night before survey- last-born under 2 years"
//Given other solid or semi-solid foods
gen nt_solids= nt_bbyfood==1 | nt_grains==1 | nt_vita==1 | nt_frtveg==1 | nt_root==1 | nt_nuts==1 | nt_meatfish==1 | nt_eggs==1 | nt_dairy==1 | V414S==1
label values nt_solids yesno
label var nt_solids "Child given any solid or semisolid food in day/night before survey- last-born under 2 years"
*
//Fed milk or milk products
gen totmilkf = 0
replace totmilkf=totmilkf + V469E if V469E<8
replace totmilkf=totmilkf + V469F if V469F<8
replace totmilkf=totmilkf + V469X if V469X<8
gen nt_fed_milk= ( totmilkf>=2 | M4==95) if inrange(age,6,23)
label values nt_fed_milk yesno
label var nt_fed_milk "Child given milk or milk products- last-born 6-23 months"
*
//Min dietary diversity
* 8 food groups
*1. breastmilk
gen group1= M4==95
*2. infant formula, milk other than breast milk, cheese or yogurt or other milk products
gen group2= nt_formula==1 | nt_milk==1 | nt_dairy==1
*3. foods made from grains, roots, tubers, and bananas/plantains, including porridge and fortified baby food from grains
gen group3= nt_grains==1 | nt_root==1 | nt_bbyfood==1

*4. vitamin A-rich fruits and vegetables
gen group4= nt_vita==1
*5. other fruits and vegetables
gen group5= nt_frtveg==1
*6. eggs
gen group6= nt_eggs==1
*7. meat, poultry, fish, and shellfish (and organ meats)
gen group7= nt_meatfish==1
*8. legumes and nuts
gen group8= nt_nuts==1
*
* add the food groups
egen foodsum = rsum(group1 group2 group3 group4 group5 group6 group7 group8)
recode foodsum (1/4 .=0 "No") (5/8=1 "Yes"), gen(nt_mdd)
replace nt_mdd=. if age<6
label values nt_mdd yesno
label var nt_mdd "Child with minimum dietary diversity, 5 out of 8 food groups- last-born 6-23 months"
*
//Min meal frequency
gen feedings=totmilkf
replace feedings= feedings + M39 if M39>0 & M39<8
gen nt_mmf = (M4==95 & inrange(M39,2,7) & inrange(age,6,8)) | (M4==95 & inrange(M39,3,7) & inrange(age,9,23)) | (M4!=95 & feedings>=4 & inrange(age,6,23))
replace nt_mmf=. if age<6
label values nt_mmf yesno
label var nt_mmf "Child with minimum meal frequency- last-born 6-23 months"
*
//Min acceptable diet
egen foodsum2 = rsum(nt_grains nt_root nt_nuts nt_meatfish nt_vita nt_frtveg nt_eggs)
gen nt_mad = (M4==95 & nt_mdd==1 & nt_mmf==1) | (M4!=95 & foodsum2>=4 & nt_mmf==1 & totmilkf>=2)
replace nt_mad=. if age<6
label values nt_mad yesno
label var nt_mad "Child with minimum acceptable diet- last-born 6-23 months"
*
//Consumed Vit A rich food
gen nt_ch_micro_vaf= 0
foreach i in g h i j k m n {
replace nt_ch_micro_vaf=1 if V414I==1
}
replace nt_ch_micro_vaf=. if !inrange(age,6,23)
label values nt_ch_micro_vaf yesno
label var nt_ch_micro_vaf "Youngest children age 6-23 mos living with mother given Vit A rich food"
*
//Consumed iron rich food
gen nt_ch_micro_irf=0
foreach i in g h m n {
replace nt_ch_micro_irf=1 if V414I==1
}
replace nt_ch_micro_irf=. if !inrange(age,6,23)
label values nt_ch_micro_irf yesno
label var nt_ch_micro_irf "Youngest children age 6-23 mos living with mother given iron rich food"
Re: IYCF indicators [message #23944 is a reply to message #23940] Tue, 18 January 2022 14:06
 Bridgette-DHS Messages: 3000Registered: February 2013 Senior Member
Following is a response from DHS Lead Nutrition Research Associate, Rukundo Benedict:

For the IYCF indicators, it is important to first select the appropriate age group. You will find the code to use to do this in the on DHS Program GitHub.

Use the !NTmain.do file, lines 98-100 to select the appropriate age group for the IYCF indicators. After you have done this, then you can run the NT_IYCF.do.

 Previous Topic: Under-5 Children data file Creation Next Topic: Stunting Discrepancies with SL Reports
Goto Forum:

Current Time: Sun Mar 3 15:03:38 Coordinated Universal Time 2024