The DHS Program User Forum
Discussions regarding The DHS Program data and results
Home » Topics » Nutrition and Anthropometry » Minimum Meal frequency in BDHS 2014
Minimum Meal frequency in BDHS 2014 [message #11864] Wed, 22 February 2017 02:15 Go to next message
Md. Nurnabi Sheikh is currently offline  Md. Nurnabi Sheikh
Messages: 4
Registered: May 2016
Location: Bangladesh
Member
I am working IYCF practice on BDHS child datasets for my MPH thesis,and trying to replicate Minimum meal frequency in table 11.6. But I am not able to get same percentages among breastfed children, non-breastfed children and all children age 6-23 months. I am working in stata and my algorithm as follows;

* Last child in the last 2 years living with mother
* age in months
gen age = v008-b3
* drop if too old or not alive
keep if age<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 age<6

*Minimum meal frequency
tab m39, m

*Minimum meal frequency for breastfeed child age 6-8 months, 9-23 months
recode m39 (2/7=1 "2-7"), gen(mm1)
recode m39 (3/7=1 "3-7"), gen(mm2)

*Minimum meal frequency for non-breastfeed child age 6-23 months
recode m39 (4/7=1 "4-7"), gen(mm3)

*Age group
recode age (6/8=1 "6-8")(9/23=2 "9-23"), gen (age_g)

*Breastfeeding status
gen still_feeding=1 if m4==95
replace still_feeding=0 if still_feeding==.

*Minimum meal frequency applying all conditions
gen mmf1=1 if mm1==1 & age_g==1 & still_feeding==1

gen mmf2=1 if mm2==1 & age_g==2 & still_feeding==1

gen mmf3=1 if mm3==1 & still_feeding==0

It would be very much helpful for me if any one help me with stata command.


Regards,
Nurnabi


Nurnabi
Re: Minimum Meal frequency in BDHS 2014 [message #12384 is a reply to message #11864] Mon, 08 May 2017 15:10 Go to previous messageGo to next message
Trevor-DHS is currently offline  Trevor-DHS
Messages: 802
Registered: January 2013
Senior Member
I think your problem is that when you generate mm1, mm2, and mm3 you are not handling the values outside of the range you specify. For example,

recode m39 (2/7=1 "2-7"), gen(mm1)
should read
recode m39 (2/7=1 "2-7")(else=0), gen(mm1)

Without the else condition, values of m39 that you don't specifically recode are copied over, and thus m39==1 is transferred to mm1 and sets mm1 equal to 1!
Adding the (else=0) will handle these cases.
Re: Minimum Meal frequency in BDHS 2014 [message #14175 is a reply to message #12384] Thu, 01 March 2018 09:01 Go to previous messageGo to next message
Louis is currently offline  Louis
Messages: 3
Registered: February 2018
Location: Ghana
Member
hello,

i am working on the MMF for non breastfed children.
i am a little stack at creating the milk and milk products. i would be glad to receive help.
Thanks
Re: Minimum Meal frequency in BDHS 2014 [message #14176 is a reply to message #14175] Thu, 01 March 2018 11:15 Go to previous messageGo to next message
Louis is currently offline  Louis
Messages: 3
Registered: February 2018
Location: Ghana
Member
actually this is the little i have been able to do.

clonevar age= v222
codebook b9_01
keep if age<24
keep if b9_01==0
tab b9_01
drop if _n > 0 & caseid == caseid[_n-1]
drop if age <6
tab m4_1
codebook m4_1
*Weighting
gen v005_wgt= v005/1000000

*Age group recoding
*NB; clonevar age already deifned @ 26
recode age (6/8=1 "6-8")(9/11=2 "9-11") (12/17=3 "12-17") (18/23=4 "18-23"), gen (age_g)

*recode of m4_1 as number of breastfed and number of nonbreastfed children 6-23months
recode m4_1 (93/94=0 "Number of non-breastfed children 6-23 months") (95=1 "Number of breastfed children 6-23 months"), gen (still_feeding)
replace still_feeding=0 if still_feeding==.


*****MINIMUM DIETARY DIVERSITY MMD*****
*** MDD 7 food groups**
capture drop grpa
gen grpa=1 if v411a==1| v411==1|v414p==1|v414v==1
label value grpa grpa
tab grpa
capture drop grpb
gen grpb=1 if v414e==1| v414f==1| v412a==1
label value grpb grpb
tab grpb
capture drop grpc
gen grpc=1 if v414k==1| v414i==1| v414j==1
label value grpc grpc
tab grpc
capture drop grpd
gen grpd=1 if v414l==1
label value grpd grpd
tab grpd
capture drop grpe
gen grpe=1 if v414g==1
label value grpe grpe
tab grpe
capture drop grpf
gen grpf=1 if v414h==1| v414m==1|v414n==1
label value grpf grpf
tab grpf
capture drop grpg
gen grpg=1 if v414o==1
label value grpg grpg
tab grpg
** 7 Food groups***
egen dietd = rsum(grpa grpb grpc grpd grpe grpf grpg) if grpa~=.| grpb~=.| grpc~=.| grpd~=.| grpe~=.| grpf~=.| grpg~=.
** 4+ Foods FOR ALL CHILDREN***
recode dietd (1/3 .=0 "Not diverse") (4/7=1 "Diverse"), gen(diet4)
ta diet4 [iw=v005/1000000]
label value diet4 diet4
label var diet4 " Minimum dietary diversity"
tab diet4

**MDD for breastfed children**
gen mdd1=.
replace mdd1=1 if diet4==1& still_feeding==1
replace mdd1=0 if diet4==0 & still_feeding==1
label define mdd1 0"Not Diverse" 1"Diverse"
label values mdd1 mdd1
label var mdd1 " Minimum dietary diversity for Breastfed children"
tab mdd1
***MDD for nonbreastfed children***
gen mdd0=.
replace mdd0=1 if diet4==1& still_feeding==0
replace mdd0=0 if diet4==0 & still_feeding==0
label define mdd0 0"Not Diverse" 1"Diverse"
label values mdd0 mdd0
label var mdd0 " Minimum dietary diversity for nonbreastfed children"
tab mdd0

tab age_g diet4 [iw=v005/1000000], r
tab age_g mdd1 [iw=v005/1000000], r
tab age_g mdd0 [iw=v005/1000000], r


******* MINIMUM MEAL FREQUENCY MMF *******
*Minimum meal freq for group1*
capture drop mm1
gen byte mm1=.
replace mm1=1 if m39_1>=2 & still_feeding==1
replace mm1= 0 if m39_1<2 & still_feeding==1
tab mm1
label define mm1 0 "Not Freq" 1"Freq"
label values mm1 mm1
tab mm1
*Minimum meal freq for breastfed children aged 6-8months*
gen byte mmf1=.
replace mmf1=1 if mm1==1& age_g==1
replace mmf1=0 if mm1==0 & age_g==1
label define mmf1 0 "Not Freq" 1 "Freq"
label values mmf1 mmf1
tab mmf1
tab age_g mmf1,r
*Minimum meal freq for group2*
capture drop mm2
gen byte mm2=.
replace mm2=1 if m39_1>=3 & still_feeding==1
replace mm2= 0 if m39_1<3 & still_feeding==1
label define mm2 0 "Not Freq" 1"Freq"
label values mm2 mm2
tab mm2
*Minimum meal freq for breastfed children aged 9-11months*
capture drop mmf2
gen byte mmf2=.
replace mmf2=1 if mm2==1& age_g==2
replace mmf2=0 if mm2==0 & age_g==2
label define mmf2 0 "Not Freq" 1 "Freq"
label values mmf2 mmf2
tab mmf2
tab age_g mmf2,r
*Minimum meal freq for breastfed children aged 12-17months*
capture drop mmf3
gen byte mmf3=.
replace mmf3=1 if mm2==1& age_g==3
replace mmf3=0 if mm2==0 & age_g==3
label define mmf3 0 "Not Freq" 1 "Freq"
label values mmf3 mmf3
tab mmf3
tab age_g mmf3,r
*Minimum meal freq for breastfed children aged 18-23months*
capture drop mmf4
gen byte mmf4=.
replace mmf4=1 if mm2==1& age_g==4
replace mmf4=0 if mm2==0 & age_g==4
label define mmf4 0 "Not Freq" 1 "Freq"
label values mmf4 mmf4
tab mmf4
tab age_g mmf4,r
**Minimum meal freq for breastfed children aged 6-23months combined*
capture drop mmfb
egen byte mmfb= rowtotal (mmf1 mmf2 mmf3 mmf4), missing
label define mmfb 0 "Not Freq" 1 "Freq"
label values mmfb mmfb
tab mmfb
tab age_g mmfb,r
tab age_g mmfb [iweight=v005_wgt], r


****MMF FOR NON-BREASTFED CHILDREN***

** GENERATING MILK OR MILK PRODUCTS**
tab1 v411 v411a v414v, m
capture drop milk
gen byte milk= v411+ v411a +v414v
label var milk "Milk or milk products"
tab milk

** Non breastfed MMF proper**
egen sm= rowtotal (m39_1 milk), missing
tab sm
capture drop mmfn
gen byte mmfn=.
replace mmfn=1 if sm>=4 & still_feeding==0
replace mmfn=0 if sm<4 & still_feeding==0
label define mmfn 0 "Not Freq" 1 "Freq"
label values mmfn mmfn
tab mmfn
tab age_g mmfn [iweight=v005_wgt], r
label var mmfn " Minimum meal frequency for non-breastfed children 6-23 months"


**Total minimum meal frequency for all children 6-23 months**
egen MMF= rowtotal (mmfb mmfn), missing
label var MMF " Minimum meal frequency for all children 6-23 months"
label values MMF MMF
label define MMF 0" Not Freq" 1" Freq"
tab MMF
tab age_g MMF [iweight=v005_wgt], r


my problem now is how to generate the breast milk, milk or milk products to match the values in the report.

Sincerely,
Louis
Indonesian : child age in month [message #14285 is a reply to message #11864] Mon, 19 March 2018 01:17 Go to previous messageGo to next message
Hai R is currently offline  Hai R
Messages: 15
Registered: March 2018
Location: Brisbane
Member
Hello,

I am working for IYCF indicators for Indonesia DHS 2012, how to generated child age in month (using stata)? I could not find this variable yet in the data set. Which file is the best to use, if I want to work on IYCF practice among children aged 0-23 months.

many thanks for your help,

warm regards
Ha'i
Re: Indonesian : child age in month [message #14286 is a reply to message #14285] Mon, 19 March 2018 01:46 Go to previous messageGo to next message
Hai R is currently offline  Hai R
Messages: 15
Registered: March 2018
Location: Brisbane
Member
Got the age in month, and I learn from the forum is using KR file is the best for IYCF. please your advice,

warm regards
Ha'i
Re: Indonesian : child age in month [message #14290 is a reply to message #14286] Mon, 19 March 2018 09:52 Go to previous messageGo to next message
Trevor-DHS is currently offline  Trevor-DHS
Messages: 802
Registered: January 2013
Senior Member
Yes, use the KR file for IYCF indicators. for age in months, if b19 exists in the dataset (only datasets since about 2016) use that, if not calculate age in months as v008 - b3. See Calculating the age of children for more information.
Re: Indonesian : child age in month [message #14294 is a reply to message #14290] Mon, 19 March 2018 20:57 Go to previous messageGo to next message
Hai R is currently offline  Hai R
Messages: 15
Registered: March 2018
Location: Brisbane
Member
Many thanks Trevor,

warm regards, Ha'i
Re: Indonesian : child age in month [message #14639 is a reply to message #14294] Wed, 25 April 2018 10:54 Go to previous messageGo to next message
Hassen
Messages: 121
Registered: April 2018
Location: Ethiopia,Africa
Senior Member
Dear All, As a biginner of using DHS Data It is not clear to creat IYCF Index from KR file for me. Thus I need your genuine support how to creat IYCF Index? What are the variables in KR file? I didn't get them.
Thank you for your assistance and guidance.


Hassen Ali(Chief Public Health Professional Specialist)
Re: Indonesian : child age in month [message #14651 is a reply to message #14639] Thu, 26 April 2018 03:55 Go to previous messageGo to next message
Hassen
Messages: 121
Registered: April 2018
Location: Ethiopia,Africa
Senior Member
Dear Our Hero,How Can I Construct IYCF Index,Women's Impowerment Index? I didn't get the variables from KR file? All DHS forum users, Please help me My Respected members!!

Hassen Ali(Chief Public Health Professional Specialist)
Indonesia IYCF DHS 2012 [message #17597 is a reply to message #14285] Mon, 22 April 2019 03:14 Go to previous messageGo to next message
Hai R is currently offline  Hai R
Messages: 15
Registered: March 2018
Location: Brisbane
Member
Dear DHS team,

I would like to confirm my STATA analysis on 8 IYCF core indicators for Indonesian DHS 2012. I found slightly different rates for most indicators. I have followed the discussion in DHS forum and applied the syntaxes.
Here are my findings and the differences with the DHS report:

My analysis DHS report Differences
Indicator Rate (%) Rate (%)
Early Initiation of breastfeeding (0-23mo) 50.02 49.30 0.72
Exclusive Breastfeeding (0-5mo) 42.61 41.50 1.11
Continued Breastfeeding at 1 year (12-15mo) 77.21 77.00 0.21
Introduction to Soft and Semi Solid Food (6-8mo) 90.37 91.00 -0.63
Minimum Dietary Diversity (6-23mo) 58.20 58.20 -
Minimum Meal Frequency (6-23mo) 65.80 66.10 -0.30
Minimum Acceptable Diet (6-23mo) 36.14 37.00 -0.86
Consumption of Iron-rich or iron-fortified foods (6-23mo) 54.21 n/a

I am sending you my syntaxes in attachment, I have checked several times, but could not figure out the reason for such discrepancy.
many thanks for your help
warm regards
Ha'i
Re: Indonesia IYCF DHS 2012 [message #17607 is a reply to message #17597] Fri, 26 April 2019 08:53 Go to previous messageGo to next message
dnameispaone is currently offline  dnameispaone
Messages: 19
Registered: February 2019
Member
Hi there,

Could you briefly describe how can we create a variable for exclusive breastfeeding?
Re: Indonesia IYCF DHS 2012 [message #17619 is a reply to message #17607] Sun, 28 April 2019 23:44 Go to previous messageGo to next message
Hai R is currently offline  Hai R
Messages: 15
Registered: March 2018
Location: Brisbane
Member
Hi,

here is my commands, however, I got slightly different result compared to DHS report:
*2. Exclusive Breastfeeding (EBF)*
*child age (0-5 months for EBF)
recode age (0/5 = 1 "0-5")(6/8 = 2 "6-8")(9/11 = 3 "9-11")(12/17 = 4 "12-17")(18/23 = 5 "18-23"), gen(child_age1)
tab child_age1 [iw=rweight]

//Breastfeeding status.
gen water=0
gen liquids=0
gen milk=0
gen solids=0
gen breast=0

//Water
replace water=1 if (v409>=1 & v409<=7)

//Other non-milk liquids
//check for country specific liquids
foreach xvar of varlist v410 v411 v411a v412a v412c v413* {
replace liquids=1 if `xvar'>=1 & `xvar'<=7
}

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

* Solid food
* check for country specific foods
foreach xvar of varlist v412a v412c v413* {
replace solids=1 if `xvar'>=1 & `xvar'<=7
}


*Still breastfeeding
replace breast=1 if m4==95

tab1 water liquids milk solids breast

* Generate column variable used in table 11.3
gen feeding=1
replace feeding=2 if water==1
replace feeding=3 if liquids==1
replace feeding=4 if milk==1
replace feeding=5 if solids==1
replace feeding=0 if breast==0
tab feeding

label define feeding ///
0 "Not breastfeeding" 1 "Exclusive breastfeeding" ///
2 "+Water" 3 "+Liquids" ///
4 "+Other Milk" 5 "+Solids"
label val feeding breastfeeding

tab child_age feeding [iw=rweight], row
tab child_age1 feeding [iw=rweight], row

replace feeding=1 if feeding==1
replace feeding=0 if feeding==0
replace feeding=0 if feeding==2
replace feeding=0 if feeding==3
replace feeding=0 if feeding==4
replace feeding=0 if feeding==5
recode feeding (1=1 "Yes") (0=0 "No") if child_age1==1, gen (EBF)
label variable EBF "Exclusive Breast Feeding"
tab EBF [iw=rweight]


Re: Minimum Meal frequency in BDHS 2014 [message #17658 is a reply to message #11864] Thu, 02 May 2019 15:03 Go to previous messageGo to next message
Trevor-DHS is currently offline  Trevor-DHS
Messages: 802
Registered: January 2013
Senior Member
See the Guide to DHS Statistics and search for Exclusive Breastfeeding to find the following page: https://www.dhsprogram.com/Data/Guide-to-DHS-Statistics/Brea stfeeding_and_Complementary_Feeding.htm
Re: Minimum Meal frequency in BDHS 2014 [message #17731 is a reply to message #12384] Thu, 16 May 2019 16:19 Go to previous messageGo to next message
rayhangog@gmail.com is currently offline  rayhangog@gmail.com
Messages: 4
Registered: January 2018
Location: New Delhi
Member
Hello,

I am trying to compute the Minimum Meal Frequency from the Indian DHS 2015-16, following the commands given by Nurnabi and Trevor's instructions. My computed percentage (28.66%) is not matching with the reported percentage (35.9%) in the DHS-4 report. However, the sample size (69,690) is matching,
Could you anyone point out my mistake in the commands (below)? Or if possible, share the correct syntax for Minimum Meal Frequency and Minimum Acceptable diet, please.

I am using the following commands:

* Last child in the last 2 years living with mother
* age in months
gen age = v008-b3
* drop if too old or not alive
keep if age<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 age<6

*Minimum meal frequency
tab m39, m

*Minimum meal frequency for breastfeed child age 6-8 months, 9-23 months
recode m39 (2/7=1 "2-7")(else=0), gen(mm1)
recode m39 (3/7=1 "3-7")(else=0), gen(mm2)

*Minimum meal frequency for non-breastfeed child age 6-23 months
recode m39 (4/7=1 "4-7")(else=0), gen(mm3)

*Age group
recode age (6/8=1 "6-8")(9/23=2 "9-23"), gen (age_g)

*Breastfeeding status
gen still_feeding=1 if m4==95
replace still_feeding=0 if still_feeding==.

*Minimum meal frequency applying all conditions
gen mmf1=1 if mm1==1 & age_g==1 & still_feeding==1

gen mmf2=1 if mm2==1 & age_g==2 & still_feeding==1

gen mmf3=1 if mm3==1 & still_feeding==0

*Weight varible
gen wgt=v005/1000000

* Minimum meal frequency for all children (6=23 months)
gen MMF=0
replace MMF=1 if mmf1==1 | mmf2==1 | mmf3==1

tab MMF [iw=wgt]


Thank you,
Sk

[Updated on: Fri, 17 May 2019 14:14]

Report message to a moderator

Re: Minimum Meal frequency in BDHS 2014 [message #18337 is a reply to message #17731] Tue, 12 November 2019 10:32 Go to previous messageGo to next message
Bridgette-DHS is currently offline  Bridgette-DHS
Messages: 3185
Registered: February 2013
Senior Member

Following is a response from DHS Senior Analysis & Research Manager, Shireen Assaf:

The code below will match table 10.10 in the India 2015-16 final report. The problem may be that you had to take into consideration the breastfeeding status of the child using v404. Please see below. The first part of the code is the same as yours to select the youngest child under 2 years living with the mother.


**** Minimum Meal Frequency Code ****

* Last child in the last 2 years living with mother
* age in months
gen age = v008-b3
* drop if too old or not alive
keep if age<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 age<6

gen wt= v005/1000000

* among breastfed children 6-23 months, minimum meal frequency
* defined as receiving solid or semisolid food at least twice a day for 
* infants age 6-8 months and at least 3 times a day for children age 9-23 months
gen minfreq1 = 0 
replace minfreq1 =1 if (m39>1 & m39<8 & age>=6 & age<=8) | (m39>2 & m39<8 & age>=9 & age<=23)

*this is for breastfed children
ta minfreq1 if v404==1 [iw=wt]

* For nonbreastfed children age 6-23 months, minimum meal frequency is receiving 
* solid or semisolid food or milk feeds at least 4 times a day. 
* milk feeds
gen totmilkf = 0
replace totmilkf=totmilkf + v469e if v469e<8
replace totmilkf=totmilkf + v469f if v469f<8
replace totmilkf=totmilkf + v469x if v469x<8

* adding solid or semisolds      
gen feedings=totmilkf
replace feedings= feedings + m39 if m39>0 & m39<8

gen minfreq2 =0
replace minfreq2 = 1 if feedings>=4 

*this is for non-breastfed children
ta minfreq2 if v404==0 [iw=wt]

****

* Now we combine these variable to get the minimum meal frequency among all children
gen minfreq3=0
replace minfreq3=1 if minfreq1==1 & v404==1 
replace minfreq3=1 if minfreq2==1 & v404==0
ta minfreq3  [iw=wt]

*this gives 35.9% and 69,690 children as in the final report
Re: Minimum Meal frequency in BDHS 2014 [message #18343 is a reply to message #18337] Wed, 13 November 2019 04:23 Go to previous messageGo to next message
rayhangog@gmail.com is currently offline  rayhangog@gmail.com
Messages: 4
Registered: January 2018
Location: New Delhi
Member
Thank you. Now, it is matched.
Re: Minimum Meal frequency in BDHS 2014 [message #27685 is a reply to message #18337] Tue, 19 September 2023 07:13 Go to previous messageGo to next message
shobhit is currently offline  shobhit
Messages: 1
Registered: September 2023
Member
Dear Sir/Madam,

Can get a Stata syntax for Minimum Acceptable Diet (MAD) for DHS India. Moreover, the MDD and MMF do not match the Indian DHS 201921 report. Please clarify.

Thanks
Re: Minimum Meal frequency in BDHS 2014 [message #27688 is a reply to message #27685] Tue, 19 September 2023 10:02 Go to previous message
Bridgette-DHS is currently offline  Bridgette-DHS
Messages: 3185
Registered: February 2013
Senior Member

Following is a response from Senior DHS staff member, Tom Pullum:

The Stata syntax for the child nutrition tables is given on our GitHub site: https://github.com/DHSProgram/DHS-Indicators-Stata/tree/mast er/Chap11_NT.

You should be able to find what you need there, but if you want to run the do file(s), be sure to read the setup instructions.

The standard code will often not match the NFHS reports exactly, but you should get close. If you have trouble, let us know but please be specific about which table(s) and numbers you cannot match.


Previous Topic: Turkey 2008 child weight and height
Next Topic: Merge two data set
Goto Forum:
  


Current Time: Sun Nov 3 14:02:11 Coordinated Universal Time 2024