The DHS Program User Forum
Discussions regarding The DHS Program data and results
Home » Topics » Nutrition and Anthropometry » MINIMUM ACCEPTABLE DIET_MINIMUM DIETARY DIVERSITY (NOT MATCHING WITH TABLE 11.7 IN DHS6 RWANDA REPORT)
MINIMUM ACCEPTABLE DIET_MINIMUM DIETARY DIVERSITY [message #24034] Mon, 07 February 2022 10:16 Go to next message
Francois is currently offline  Francois
Messages: 9
Registered: February 2017
Location: KIGALI
Member
Hello,
I tried to match my results with the ones reported in Rwanda DHS6 and failed by all means. I used the codes from Github and not matched, also I tried the codes posted here about Minimum Meal Frequency and also not matched and i don't know why? Assit plz
Thank you
Here the codes used:

clear all
set more off
global nuts"C:\Users\ICF Rwanda\Desktop\RBC_Request\DHS6"
global nuts_out "C:\Users\ICF Rwanda\Desktop\RBC_Request\DHS6\nuts "

use "$nuts\RWKR81FL", clear
numlabel, add

gen age=v008-b3
*keep if b9==0
d bidx
//bidx byte %8.0g birth column number
bysort v001 v002 v003: egen minbidx=min(bidx)
fre bidx
fre minbidx

keep if age>=6 & age<=23
ta bidx minbidx
* need to drop those that are bidx==2 and minbidx==1
drop if bidx>minbidx
*=========================================================== ===================
*=========================================================== ===================
*** Breastfeeding and complemenatry feeding ***
//currently breastfed
gen nt_bf_curr= m4==95
label values nt_bf_curr yesno
label var nt_bf_curr "Currently breastfeeding - last-born under 2 years"

//breastfeeding status
gen water=0
gen liquids=0
gen milk=0
gen solids=0

*Child is given water
replace water=1 if (v409>=1 & v409<=7)

*Child given liquids
foreach xvar of varlist v409a v410 v410a v412c v413*{
replace liquids=1 if `xvar'>=1 & `xvar'<=7
}

*Given powder/tinned milk, formula, or fresh milk
foreach xvar of varlist v411 v411a {
replace milk=1 if `xvar'>=1 & `xvar'<=7
}

*Given any solid food
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"

//exclusively breastfed
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"

//predominantly breastfeeding
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"

//age appropriate breastfeeding
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"

//introduced to food
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 v414`i'==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"


//continuing breastfeeding at 1 year
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"

//continuing breastfeeding at 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"

*** Foods consumed ***

*country specific foods. These can be added to the foods below based on the survey.
*see examples in lines 186 and 200
gen food1= v414a==1
gen food2= v414b==1
gen food3= v414c==1
gen food4= v414d==1

//Given formula
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"

//Given other milk
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"

//Given other liquids
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"

//Give fortified baby food
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"

//Given grains
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"

//Given Vit A rich foods
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"

//Given other fruits or vegetables
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"

//Given roots and tubers
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"
* country specific for Uganda 2016 DHS
if v000=="UG7" {
replace nt_root=1 if food1==1
}

//Given nuts or legumes
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"

//Given meat, fish, shellfish, or poultry
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"
* country specific for Uganda 2016 DHS
if v000=="UG7" {
replace nt_meatfish=1 if food2==1
}

//Given eggs
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"


*** Minimum feeding indicators ***

//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"
/*older surveys are 4 out of 7 food groups, can use code below
egen foodsum = rsum(group2 group3 group4 group5 group6 group7 group8)
recode foodsum (1/3 .=0 "No") (4/7=1 "Yes"), gen(nt_mdd)
*/

//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"
ta nt_mmf[iw=w]

//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 v414`i'==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 v414`i'==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"



AF
Re: MINIMUM ACCEPTABLE DIET_MINIMUM DIETARY DIVERSITY [message #24037 is a reply to message #24034] Tue, 08 February 2022 08:25 Go to previous messageGo to next message
Shireen-DHS is currently offline  Shireen-DHS
Messages: 131
Registered: August 2020
Location: USA
Senior Member
Hello Francois,

I am getting a match for mmf using the code share code on GitHub with 45.6% of children 6-23 months with mmf in the Rwanda 2019-20 DHS (page 190 of the final report).

I believe the problem is with how you select the correct children for the denominator. Please refer to the NT_main.do file: https://github.com/DHSProgram/DHS-Indicators-Stata/blob/mast er/Chap11_NT/!NTmain.do . You need to run the code below before you run the NT_IYCF.do file to have the correct denominator. One problem for instance is that you should be using b19 for age in this survey and you used v008-b3 in your code. Please read the notes in the NT_main.do file.

Hope this helps you match the report.

Best,
Shireen Assaf
The DHS Program

**** child's age ****
gen age = v008 - b3

* to check if survey has b19, which should be used instead to compute age.
scalar b19_included=1
capture confirm numeric variable b19, exact
if _rc>0 {
* b19 is not present
scalar b19_included=0
}
if _rc==0 {
* b19 is present; check for values
summarize b19
if r(sd)==0 | r(sd)==. {
scalar b19_included=0
}
}

if b19_included==1 {
drop age
gen age=b19
}


* Note: The following do files select for the youngest child under 2 years living with the mother. Therefore some cases will be dropped.
* Selecting for youngest child under 24 months and living with mother
keep if age < 24 & b9 == 0
* if caseid is the same as the prior case, then not the last born
keep if _n == 1 | caseid != caseid[_n-1]

Re: MINIMUM ACCEPTABLE DIET_MINIMUM DIETARY DIVERSITY [message #24292 is a reply to message #24037] Wed, 13 April 2022 07:37 Go to previous messageGo to next message
Francois is currently offline  Francois
Messages: 9
Registered: February 2017
Location: KIGALI
Member
Dear Shireen,
Thank you very much for the codes, finally all goes well and find the same results!

Much respected


AF
Re: MINIMUM ACCEPTABLE DIET_MINIMUM DIETARY DIVERSITY (DHS India, 2019-2021) [message #24702 is a reply to message #24034] Thu, 23 June 2022 16:04 Go to previous messageGo to next message
bikikhura98@gmail.com is currently offline  bikikhura98@gmail.com
Messages: 1
Registered: June 2022
Member
Dear all

I am calculating IYCF indicator for India with DHS 2019-2021 data. I don't know why but my results are not matching with the national report of India. can anyone please assist me on this?

please find the code which I am using below:

* Last child in the last 2 years living with mother

* drop if too old or not alive
keep if b19<24 & b5==1

* keep only those children living with mother ...
keep if b9==0
* ... and keep the last born of those
drop if _n > 0 & caseid == caseid[_n-1]

drop if b19<6

gen wt= v005/1000000

ge GRT=0
replace GRT= 1 if (v412a==1 | v414e==1 | v414f==1 | v412c==1)
replace GRT= . if (v412a==.& v414e==.& v414f==. &v412c==.)
label var GRT "child had grains roots or tubers"
ge legumes_nuts=0
replace legumes_nuts=1 if v414o==1
replace legumes_nuts=. if v414o==.
label var legumes_nuts "child had legumes and or nuts"
ge dairy=0
replace dairy=1 if (v411==1 | v411a==1 | v414v==1 | v414p==1)
replace dairy=. if (v411==.& v411a==.& v414v==. &v414p==.)
label var dairy "child had dairy products"
ge flesh=0
replace flesh=1 if (v414t==1 | v414m==1 | v414n==1 | v414a==1)
replace flesh=. if (v414t==.& v414m==.& v414n==. & v414a==.)
label var flesh "child had meat or poultry"
ge eggs=0
replace eggs=1 if v414g==1
replace eggs=. if v414g==.
label var eggs "child had eggs"
ge vitA_fruitsveg=0
replace vitA_fruitsveg=1 if (v414i==1| v414j ==1 |v414k==1)
replace vitA_fruitsveg=. if (v414i==.& v414j ==.&v414k==.)
label var vitA_fruitsveg "child had fruits and vegetablesrich in vitamin A"
ge other_fruitsveg=0
replace other_fruitsveg=1 if v414l==1
replace other_fruitsveg=. if v414l==.
label var other_fruitsveg "child had other fruits and vegetables"

egen diversity= rsum(GRT legumes_nuts dairy flesh eggs vitA_fruitsveg other_fruitsveg)
label var diversity "dietary diversity for 6-23 children"
ge mdd=0 if (GRT!=. | legumes_nuts!=. | dairy!=. | flesh!=. | eggs!=. | vitA_fruitsveg!=. | other_fruitsveg!=.)
replace mdd=1 if diversity>=5

ta mdd [iw=wt]

for breastfed children

ta mdd [iw=wt] if m4==95

thank you

[Updated on: Mon, 27 June 2022 09:09]

Report message to a moderator

Re: MINIMUM ACCEPTABLE DIET_MINIMUM DIETARY DIVERSITY (DHS India, 2019-2021) [message #24709 is a reply to message #24702] Mon, 27 June 2022 09:59 Go to previous message
fred.arnold@icf.com is currently offline  fred.arnold@icf.com
Messages: 28
Registered: May 2021
Member
NFHS-5 used a non-standard calculation for the minimum acceptable dietary diversity questions, which does not follow the standard DHS calculation or the international IYCF definition. If you strictly follow the detailed notes in Tables 10.10 and 10.11 in the India national report, you should be able to match the results in the report. You may also need to check the Woman's Questionnaire to see how the questions were asked.
Previous Topic: Sierra Leone 2019
Next Topic: Men BMI NFHS5 INDIA
Goto Forum:
  


Current Time: Tue Nov 29 03:43:16 Coordinated Universal Time 2022