Home » Data » Dataset use in SPSS » Calculating cases for IYCF
Calculating cases for IYCF [message #11097] |
Wed, 26 October 2016 14:05 ![Go to next message Go to next message](/theme/default/images/down.png) |
anuth
Messages: 10 Registered: November 2015 Location: Finland
|
Member |
|
|
Hello DHS team,
I am working on PDHS 2012-13 and calculating some IYCF variables. My cases should be the youngest child living with respondent who are less than 24 months. To calculate this i performed following steps in Under 5 years child file:
1. Select- Age of child <24 months
2. Select- Living with whom=0
3. Select- BIDX=1
But the number of child differ in my calculation and what is given in PDHS 2012-13 report.
My calculation is
Age group of child under 2 years
Frequency Percent Valid Percent Cumulative Percent
Valid Less than 6 months 1075 27,4 27,4 27,4
6 to 8 months 493 12,5 12,5 39,9
9 to 11 months 535 13,6 13,6 53,5
12 to 17 months 1123 28,6 28,6 82,1
18 to 23 months 703 17,9 17,9 100,0
Total 3929 100,0 100,0
But in PDHS 2012-13 report the total number of under 2 years child eligible for IYCF questionnaire is 3,206 ( from table 11.5, page 200)
Grateful if you could help me to find where i am wrong or what i am missing)
Thank you,
Anupa
A
|
|
|
|
|
|
|
|
Re: Calculating cases for IYCF [message #11522 is a reply to message #11516] |
Sun, 08 January 2017 09:34 ![Go to previous message Go to previous message](/theme/default/images/up.png) ![Go to next message Go to next message](/theme/default/images/down.png) |
Roselync
Messages: 19 Registered: December 2016 Location: Taiwan
|
Member |
|
|
Dear DHS team and colleagues,
I managed to find the exclusive breastfeeding rate of 71.4% which is similar to that of the 2010 Malawi DHS REPORT but surprisingly the denominator(0-5 months) is 1656 instead of 1698,i tried key in the codes that I was given previously several times using Stata but I keep getting the same denominator(1656) .Iam also still finding challenges to find the correct predominant feeding and complementary feeding rate estimate.my predominant feeding rate(0-5 months) was 75.64% and Malawi demographic health survey report rate is 77.5%.my complementary feeding rate (0-23months) is 22.15% and the rate in the report is 19%.I used every step of the code that I was previously given to get the EXCLUSIVE BREASTFEEDING rate(please find it below).I have also indicated how I got the predominant and complementary feeding rate.
** Exclusive breast feeding
use MWKR61FL.dta, clear
gen age=v008-b3
keep if b9==0
* finding the youngest child living with the mother for each mother
bysort v001 v002 v003: egen minbidx=min(bidx)
* keep only children less than 2 years
keep if age<24
* need to drop those that are bidx==2 and minbidx==1
drop if bidx>minbidx
gen water=0
gen liquids=0
gen milk=0
gen solids=0
gen breast=0
gen bottle=0
*TO DETERMINE IF CHILD IS GIVEN WATER, SUGAR WATER, JUICE, TEA OR OTHER.
replace water=1 if (v409>=1 & v409<=7)
* IF GIVEN OTHER LIQUIDS
foreach xvar of varlist v409a v410 v410* v413* {
replace liquids=1 if `xvar'>=1 & `xvar'<=7
}
cap replace liquids=1 if v412c>=1 & v412c<=7
* IF GIVEN POWDER/TINNED milk, FORMULA OR FRESH milk
foreach xvar of varlist v411 v411a v412 v414p {
replace milk=1 if `xvar'>=1 & `xvar'<=7
}
* IF STILL BREASTFEEDING
replace breast=1 if m4==95
* IF WAS EVER BOTTLE FED
replace bottle=1 if m38==1
*IF 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
gen diet=7
replace diet=0 if water==0 & liquids==0 & milk==0 & solids==0
replace diet=1 if water==1 & liquids==0 & milk==0 & solids==0
replace diet=2 if liquids==1 & milk==0 & solids==0
replace diet=3 if milk==1 & solids==0
replace diet=4 if milk==0 & solids==1
replace diet=5 if milk==1 & solids==1
replace diet=6 if breast==0
*diet=0: given only water (full bf)
*diet=1: given only liquids (bf & liquids)
*diet=2: given only milks (bf & milk)
*diet=3: given only solids (bf & solids)
*diet=4: given only milk and solids (bf & milk & solids)
*diet=5: not still breastfeeding (weaned)
*diet=6: not now being breastfed (m4~=95)
** Matching Table 11.3 for exclusive breast feeding in 0-5 month children **
gen ebf=0
replace ebf=1 if diet==0
ta ebf if age<6 [iw=v005/1000000]
*To calculate predominant breastfeeding rate I used this code
gen pred=0
replace pred=1 if diet==1
replace pred=1 if diet==0
*To calculate complementary feeding
gen comp=0
replace comp=1 if diet==2
replace comp=1 if diet==3
replace comp=1 if diet==4
Could anyone please advise me on the above percentages, if the differences I have found are acceptable or not;also if I missed any step to calculate the variables for exclusive breastfeeding, predominant feeding and complementary feeding. Your assistance will be highly appreciated.
Regards,
Rose
|
|
|
|
|
|
|
|
Re: Calculating cases for IYCF [message #12190 is a reply to message #12184] |
Thu, 06 April 2017 14:33 ![Go to previous message Go to previous message](/theme/default/images/up.png) ![Go to next message Go to next message](/theme/default/images/down.png) |
Bridgette-DHS
Messages: 3151 Registered: February 2013
|
Senior Member |
|
|
Following is a response from DHS Senior Research Associate, Shireen Assaf:
From what I understand from your question you would like to recode the feeding variable in a way that contains a category that is bottle feeding. However, none of the variables used to construct the feeding variable include the variable on whether the child was bottle fed or not. The feeding variable is only concerned with the types of food and not the mechanism the food was delivered. The closest thing I could think of was to recode it as follows:
recode feeding (0=0 "not breastfed") (1=1 ebf) (2/3=2 "liquid+water") (4=3 "other milk") (5=4 "complimentary feeding"), gen(feed2)
This would give you the categories of not-breastfed, exclusive breastfeeding, liquid+water, other milk, and complimentary feeding. Predominate feeding is the combination of ebf and liquid+water, so you could combine the categories 1 and 2 above if you are interested in having that category. Of course you could not have ebf and predominate breastfeeding as two separate categories since predominate breastfeeding includes the exclusive breastfeeding category. The "other milk" category can be the closest thing to bottle feeding perhaps, but I'm not sure about this. Here I am making the assumption that the children that are given other types of milk are given this milk through a bottle. However, really if you want to know about whether the child was bottle fed you need m38 but this would not be part of the feeding variable.
I guess my confusion is why you need this to total to 100, because the categories you mention are not mutually exclusive. For instance, bottle-feeding and predominant feeding may not separate as you could bottle feed the child with liquids other than milk.
|
|
|
|
Re: Calculating cases for IYCF [message #12603 is a reply to message #11555] |
Wed, 21 June 2017 05:58 ![Go to previous message Go to previous message](/theme/default/images/up.png) ![Go to next message Go to next message](/theme/default/images/down.png) |
adenikedegun
Messages: 10 Registered: June 2017 Location: nigeria
|
Member |
|
|
good day, i have read all the messages in the thread, but i still need some help please. i am working on exclusive and predominant breastfeeding using the 2003, 2008 and 2013 Nigerian DHS dataset.
firstly, i would like to clarify if it is alright to use the birth recode file, because i have seen that most people have been using the kids recode file.
secondly, i would like directions in SPSS as that is the software i know how to use. what i have done is not matching with the result in the NDHS report and i would be grateful if clarifications can be made.
using the 2013 birth recode file, I selected cases if b8 < 6 (because the population I am working with is babies less than 6 months)
next, I recoded into a different variable all the feeds given, for example if child was given plain water 0 = no, 1 and 8 = yes. original label in the dataset is 0= no, 1 = yes, 8 = dont know.
for EBF, I added those who were currently breastfeeding and had 0 in all the foods listed, I have a list of 21 foods (v409, v410, v411, v411A, v412A, v412C, v413, v414E, v414F, v414G, v414H, v414I, v414J, v414K, v414L, v414M, v414N, v414O, v414P, v414S, v414V)
I did not get the same result as in the report. I would like to know how to go about this.
Thanks so much
|
|
|
|
|
|
|
|
|
|
|
|
Re: Calculating cases for IYCF [message #12632 is a reply to message #12611] |
Tue, 27 June 2017 08:09 ![Go to previous message Go to previous message](/theme/default/images/up.png) ![Go to next message Go to next message](/theme/default/images/down.png) |
adenikedegun
Messages: 10 Registered: June 2017 Location: nigeria
|
Member |
|
|
Good day Sir/Ma,
I am extremely grateful for all the help. I was able to use the syntax sent to compute EBF and Predominant breastfeding (PBF) rates for the three years 2003, 2008 and 2013. I had to adjust the syntax to compute EBF and PBF for 2008 and 2003, as the variables were different for the two other years. I am using the Nigerian DHS dataset (birth recode files) and I got the following rates:
2003 - EBF 17.1%, PBF 52.9%
2008 - EBF 13%, PBF 43.1%
2013 - EBF 17.2%, PBF 69.9%
from the NDHS reports, the prevalences reported were:
2003 - EBF -17.2%, PBF 53%
2008 - EBF - 13.1%, PBF 43.6%
2013 - EBF - 17.4%, PBF - 69%
I would like to confirm again, that all these are taken as matches when compared to the reports.
My next dilemma now is can I merge all the 3 years (2003, 2008 and 2013) before commencing on further analysis? I ask these because the variables are different especially in 2003, where the variables regarding foods given to children less than 6 months are v469A, v46B....v469Y, whilst for 2008 and 2013, the variables are v409 ...v14
Lastly, I am a little confused with the Recode files. Please I would like to know if there is a specific recode file for each year. I have downloaded Recode2, Recode3, Recode4, Recode5 and Reecode6. I would like to be sure which recode is for which dataset.
Thanks again,
Adenike
|
|
|
Re: Calculating cases for IYCF [message #12634 is a reply to message #12632] |
Tue, 27 June 2017 10:20 ![Go to previous message Go to previous message](/theme/default/images/up.png) ![Go to next message Go to next message](/theme/default/images/down.png) |
Bridgette-DHS
Messages: 3151 Registered: February 2013
|
Senior Member |
|
|
Following is a response from Senior DHS Stata Specialist, Tom Pullum:
Yes, we would agree that you have satisfactorily matched the reports. You are thinking of appending the files, not merging them. Apparently you want to combine the three surveys into a single file. I would not recommend that you combine into a single file unless you have a really good reason for doing that. As you note, if you do that, you have to switch to a common set of codes for all three surveys. If you proceed, there will be no alternative to doing your best to construct a common set of codes. This could be difficult or even impossible if the questionnaires were too different.
The names of the IR files for the 2003, 2008, and 2013 surveys are NGIR4B, NGIR53, and NGIR6A, respectively. You should only be using the 4B, 53, and 6A files.
Recoden refers to the recode structure that was used in the survey. If you look at column 4: Recode on the available datasets listing, you will see the "recode" that was used for each survey.
[Updated on: Tue, 27 June 2017 10:24] Report message to a moderator
|
|
|
|
Re: Calculating cases for IYCF [message #13341 is a reply to message #11421] |
Wed, 25 October 2017 14:14 ![Go to previous message Go to previous message](/theme/default/images/up.png) ![Go to next message Go to next message](/theme/default/images/down.png) |
Sajhama
Messages: 28 Registered: July 2017
|
Member |
|
|
Hello there,
I am able to get the right number of result as in result for table 11.2 of Nepal DHS 2011 for the categories, percentage ever breastfed, number of last born children and number of last born ever breastfed crosstab by sex. However, for table 11.3, result are same for "not breastfeeding", "Number of youngest children under two years living with their mother", "Number of all children under two years" but percentage currently breastfeeding is slightly different, mine is 98.5 for 0-1 months instead of 98.2 . When value for "Number of youngest children under two years living with their mother" and "Number of all children under two years" are same, how can the percentage vary for currently breastfeeding??
Another main problem is with exclusive breastfeeding and breastfeeding along with water and so on, the percentages different by few numbers (SPSS output file is attached) when I followed the codes attached . I am somewhere making error in selecting youngest children rather than last born, I think.
I am looking for creating matching table 11.3 of Nepal DHS.
Here are the codes I used.
COMPUTE age=V008 - B3.
EXECUTE.
* Select children living with the mother.
FILTER OFF.
USE ALL.
SELECT IF (B9=0).
EXECUTE.
AGGREGATE (I AM SO CONFUSED WITH THIS, SINCE WE HAVE TO GO FOR YOUNGEST CHILDREN, RATHER THAN LAST BORN, IS THE CODE CORRECT? BECAUSE SOMETIME spss SHOWED ERROR WHEN I RUN IT IN SYNTAX.
/OUTFILE=* MODE=ADDVARIABLES
/BREAK=V001 V002 V003
/BIDX_min=MIN(BIDX).
SELECT IF (BIDX_min = BIDX) .
EXECUTE.
* Select children age below 24.
FILTER OFF.
USE ALL.
SELECT IF ( age < 24).
EXECUTE.
* Create age gropus.
RECODE age (0 thru 1=1) (2 thru 3=2) (4 thru 5=3) (6 thru 8=4) (9 thru 11=5) (12 thru 17=6) (18
thru 23=7) INTO age_grp.
VARIABLE LABELS age_grp 'age group'.
EXECUTE.
VALUE LABELS age_grp 1 " 0-1 month" 2 "2-3 months" 3 "4-5 months" 4 "6-8 months" 5 "9-11 months" 6 "12-17 months" 7 "18-23 months".
*23-06-2017.
COMPUTE water = 0.
EXECUTE.
COMPUTE liquids = 0.
EXECUTE.
COMPUTE milk= 0.
EXECUTE.
COMPUTE solid= 0.
EXECUTE.
COMPUTE bottle= 0.
EXECUTE.
COMPUTE breast= 0.
EXECUTE.
* to determine if child is given water.
DO IF (V409 >= 1 & V409 <= 7).
RECODE water (0=1).
END IF.
EXECUTE.
*To determine if Child is given liquids.
DO IF ((V410 >= 1 & V410 <= 7) | (V412c >= 1 & V412c <= 7) | (V413 >= 1 & V413 <= 7)) .
RECODE liquids (0=1).
END IF.
EXECUTE.
* to determine if child is given milk.
DO IF ((V411 >= 1 & V411 <= 7) | (V411a >= 1 & V411a <= 7)).
RECODE milk (0=1).
END IF.
EXECUTE.
*To determine if child drank from bottle with nipple.
DO IF (M38= 1 ).
RECODE bottle (0=1).
END IF.
EXECUTE.
*To determine if Child is given Solid.
DO IF ((V412A >=1 & V412A<=7) | (V414E >= 1 & V414E <= 7) | (V414F >=1 & V414F <=7) | (V414G >=1 & V414G <=7) | (V414H >=1 & V414H <=7) |
(V414I >=1 & V414I <=7) | (V414J >=1 & V414J <=7) | (V414K >=1 & V414K <=7) | (V414L >=1 & V414L<=7) | (V414M>=1 & V414M<=7) |
(V414N >=1 & V414N <=7) | (V414O >=1 & V414O <=7) | (V414P >=1 & V414P <=7) | (V414S >=1 & V414S <=7) | (V414V >=1 & V414V <=7)).
RECODE Solid (0=1).
END IF.
EXECUTE.
*To determine if child is still breastfeeding.
DO IF (M4= 95).
RECODE breast (0=1).
END IF.
EXECUTE.
VALUE LABELS breast 0 "Not breastfeeding" 1 " Still breastfeeding".
*Matching Table 11.3 for exclusive breast feeding in 0-5 month children.
COMPUTE feeding=7.
EXECUTE.
* exclusive breastfeeding.
DO IF (water = 0 & liquids = 0 & Milk = 0 & Solid = 0).
RECODE feeding (7=1).
END IF.
EXECUTE.
* breastfeeding + water.
DO IF (water = 1 & liquids = 0 & Milk = 0 & Solid = 0).
RECODE feeding (7=2).
END IF.
EXECUTE.
* breastfeeding + liquids.
DO IF ( liquids = 1 & milk = 0 & solid = 0).
RECODE feeding (7=3).
END IF.
EXECUTE.
* breastfeeding + milk.
DO IF (milk = 1 & solid = 0).
RECODE feeding (7=4).
END IF.
EXECUTE.
* breastfeeding + solid.
DO IF (solid = 1).
RECODE feeding (7=5).
END IF.
EXECUTE.
* Not breastfeeding.
DO IF (breast= 0).
RECODE feeding (7=0).
END IF.
EXECUTE.
VALUE LABELS feeding 0 "Not breastfeeding" 1 "exclusive breastfeeding" 2 "+Water" 3 "+Liquids" 4 "+Other Milk" 5 "+Solids".
COMPUTE wt=v005/1000000.
EXECUTE.
I am really in need of your help, struggling too with calculation of exclusive breast feeding for Nepal.
Thanking you in advance again.
Sajama
-
Attachment: Output1.spv
(Size: 26.97KB, Downloaded 796 times)
|
|
|
|
|
|
|
|
|
|
|
Re: Calculating cases for IYCF [message #14985 is a reply to message #14981] |
Wed, 23 May 2018 19:48 ![Go to previous message Go to previous message](/theme/default/images/up.png) ![Go to next message Go to next message](/theme/default/images/down.png) |
Roselync
Messages: 19 Registered: December 2016 Location: Taiwan
|
Member |
|
|
Dear Bridgette,
Thank you so much for your kind help. I tried to replace the variable for age using the syntax you gave me. However, the age seems not to match with that of the report. For instance, the total sample for children aged 0-5 months who practiced exclusive breastfeeding is 1715; for 9-11 months it is 888. Kindly enlighten me on where I might have gone wrong. Below is the SYNTAX that I used to create the age variable and breastfeeding practices (early initiation of breastfeeding, exclusive breastfeeding, predominant breastfeeding and bottle feeding:
gen age=b19
keep if age<24
. keep if bidx==1
ta age [iw=v005/1000000]
. gen water=0
.
. gen liquids=0
.
. gen milk=0
.
. gen solids=0
.
. gen breast=0
.
. gen bottle=0
. replace water=1 if (v409>=1 & v409<=7)
. replace liquids=1 if v409a>=1 & v409a<=7
.
. replace liquids=1 if v410>=1 & v410<=7
.
. replace liquids=1 if v410>=1 & v410<=7
. replace liquids=1 if v410a>=1 & v410a<=7
. replace liquids=1 if v413>=1 & v413<=7
. replace liquids=1 if v413a>=1 & v413a<=7
. replace liquids=1 if v413b>=1 & v413b<=7
. replace liquids=1 if v413c>=1 & v413c<=7
. replace liquids=1 if v413d>=1 & v413d<=7
. capture replace liquids=1 if v412c>=1 & v412c<=7
. replace milk=1 if v411>=1 & v411<=7
.
. replace milk=1 if v411a>=1 & v411a<=7
.
. replace milk=1 if v412>=1 & v412<=7
.
. replace milk=1 if v414p>=1 & v414p<=7
. replace breast=1 if m4==95
. replace bottle=1 if m38==1
. replace solids=1 if v414a>=1 & v414a<=7
. replace solids=1 if v414b>=1 & v414b<=7
. replace solids=1 if v414c>=1 & v414c<=7
. replace solids=1 if v414d>=1 & v414d<=7
. replace solids=1 if v414e>=1 & v414e<=7
. replace solids=1 if v414f>=1 & v414f<=7
. replace solids=1 if v414h>=1 & v414h<=7
. replace solids=1 if v414g>=1 & v414g<=7
. replace solids=1 if v414i>=1 & v414i<=7
. replace solids=1 if v414j>=1 & v414j<=7
. replace solids=1 if v414k>=1 & v414k<=7
. replace solids=1 if v414l>=1 & v414l<=7
. replace solids=1 if v414m>=1 & v414m<=7
. replace solids=1 if v414n>=1 & v414n<=7
. replace solids=1 if v414o>=1 & v414o<=7
. replace solids=1 if v414p>=1 & v414p<=7
. replace solids=1 if v414q>=1 & v414q<=7
. replace solids=1 if v414r>=1 & v414r<=7
. replace solids=1 if v414s>=1 & v414s<=7
. replace solids=1 if v414t>=1 & v414t<=7
. replace solids=1 if v414u>=1 & v414u<=7
. replace solids=1 if v412a==1 | v412b==1
. gen diet=7
. replace diet=0 if water==0 & liquids==0 & milk==0 & solids==0
.
. replace diet=1 if water==1 & liquids==0 & milk==0 & solids==0
.
. replace diet=2 if liquids==1 & milk==0 & solids==0
.
. replace diet=3 if milk==1 & solids==0
.
. replace diet=4 if milk==0 & solids==1
.
. replace diet=5 if milk==1 & solids==1
.
. replace diet=6 if breast==0
ta diet if age<6 [iw=v005/1000000]
. gen ebf=0
. replace ebf=1 if diet==0
. ta ebf if age<6 [iw=v005/1000000]
. * generate age groupings
recode age (0/5 = 0 "0-5")(6/8 = 1 "6-8")(9/11 = 2 "9-11")(12/17 = 3 "12-17")(18/23 = 4 "18-23"), gen(ageg2)
lab var ageg2 "Age groups"
tab ageg2
generate age groupings
recode age (0/1 = 0 "0-1")(2/3 = 1 "2-3")(4/5 = 2 "4-5")(6/11 = 3 "6-11")(12/23 = 4 "12-23"), gen(ageg5)
lab var ageg5 "Age groups2"
tab ageg5
tabulate exclusive breastfeeding status by age group
tab ageg2 ebf [iw=v005/1000000]
tab ageg2 ebf
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
label define feeding 0 "Not breastfeeding" 1 "exclusive breastfeeding" 2 "+Water" 3 "+Liquids" 4 "+Other Milk" 5 "+complementary"
label var feeding feeding
ta feeding if age<6 [iw=v005/1000000]
/*complimentary feeding is category #5 (+solids) and this matches the report for this age group which is 19.1%*/
ta feeding if age<6 [iw=v005/1000000]
tab ageg2 feeding [iw=v005/1000000]
/*creating the complementary feeding variable*/
recode feeding (0 1 2 3 4=0) (5=1), gen(comp)
tab ageg2 comp [iw=v005/1000000]
/*creating the missing variable*/
recode feeding (1 2 3 4 5=0) (0=1), gen(miss)
tab ageg2 miss [iw=v005/1000000]
ta miss if age<6 [iw=v005/1000000]
/*creating the predominant breastfeeding variable*/
recode feeding (0 4 5=0) (1/3=1), gen(predom)
/*this matches the report of 77.5% for predominant breastfeeding*/
ta predom if age<6 [iw=v005/1000000]
tab ageg2 predom [iw=v005/1000000]
*creating the predominant breastfeeding variable.
recode feeding (0 1 4 5=0) (2 3=1), gen(predom2)
tab ageg2 predom2 [iw=v005/1000000]
ta predom2 if age<6 [iw=v005/1000000]
/*bottlefeeding*/
ta bottle if age<6 [iw=v005/1000000]
tab ageg2 bottle [iw=v005/1000000]
ta bottle if age<24 [iw=v005/1000000]
/*Early initiation of breastfeeding within an hour 0-23 months*/
ta m34 if age<24 [iw=v005/1000000]
or
ta v426 if age<24 [iw=v005/1000000]
* generate age groupings
recode age (0/11 = 0 "0-11")(12/23 = 1 "12-23"), gen(ageg3)
lab var ageg3 "Age groups"
tabulate early initiation of breastfeeding status by age group
recode m34 (100= 1 "immediately")(1 199 200= 2 "hours")(1 999 .= 3 "days"), gen(earlyinit)
lab var earlyinit "EIBF"
tab earlyinit
tab ageg3 earlyinit [iw=v005/1000000]
tab ageg5 initiat [iw=v005/1000000]
recode earlyinit (1=1 "yes") (2 3 101 201=0 "No"),gen(initiat)
lab var initiat "EIBF"
tab initiat
tab ageg3 initiat [iw=v005/1000000]
Regards,
Rose
|
|
|
Re: Calculating cases for IYCF [message #14987 is a reply to message #14985] |
Thu, 24 May 2018 04:48 ![Go to previous message Go to previous message](/theme/default/images/up.png) ![Go to next message Go to next message](/theme/default/images/down.png) |
Mlue
Messages: 92 Registered: February 2017 Location: North West
|
Senior Member |
|
|
Hi Roselync,
Try this one, maybe it may help you replicate tables 11.2 and 11.3
FOR TABLE 11.2
/*
USE THE CHILDREN'S RECODE: MWKR7HFL
Malawi: Standard DHS, 2015-16
BY: Mluleki Tsawe
{University of the Western Cape, South Africa}
TO REPLICATE TABLE 11.2 - INITIAL BREASTFEEDING
*/
clear all
set matsize 800
set maxvar 10000
set mem 1g
cd "..." /*your path here...*/
use "MWKR7HFL", clear
set more off
********************************************************************************
** WEIGHT VARIABLE
gen weight = v005/1000000
********************************************************************************
** SURVEY SET
gen psu = v021
gen strata = v023
svyset psu [pw = weight], strata(strata) vce(linearized)
*svydes
********************************************************************************
// RENAME
rename v013 age_woman
rename v106 education
rename v190 wealth
rename v025 residence
rename v024 region
*rename sdist district
////////////////////////////////////////////////////////////////////////////////
// GENERATING DEPENDENT VARIABLES
gen child_age=b19
recode child_age (0/1=1 "0-1") (2/3=2 "2-3") (4/5=3 "4-5") (6/8=4 "6-8") ///
(9/11=5 "9-11") (12/17=6 "12-17") (18/23=7 "18-23") (else=.), gen(child_age_grp)
svy: tab child_age_grp, count format(%4.0f)
* keep only children less than 2 years
keep if child_age<24
*keep if b9==0* /* not needed for this table*/
* finding the youngest child living with the mother for each mother
bysort v001 v002 v003: egen minbidx=min(bidx)
* need to drop those that are bidx==2 and minbidx==1
drop if bidx>minbidx
/*keep if bidx <= minbidx*/
gen water=0
gen liquids=0
gen milk=0
gen solids=0
gen breast=0
gen bottle=0
*TO DETERMINE IF CHILD IS GIVEN WATER, SUGAR WATER, JUICE, TEA OR OTHER.
replace water=1 if (v409>=1 & v409<=7)
* IF GIVEN OTHER LIQUIDS
foreach xvar of varlist v409a v410 v410* v413* {
replace liquids=1 if `xvar'>=1 & `xvar'<=7
}
*
cap replace liquids=1 if v412c>=1 & v412c<=7
* IF GIVEN POWDER/TINNED milk, FORMULA OR FRESH milk
foreach xvar of varlist v411 v411a v412 v414p {
replace milk=1 if `xvar'>=1 & `xvar'<=7
}
*
* IF STILL BREASTFEEDING
replace breast=1 if m4==95
* IF WAS EVER BOTTLE FED
replace bottle=1 if m38==1
gen bottle2=0
replace bottle2 = 1 if m38==1 & inrange(m4,93,99)
replace bottle2 = 0 if (m38==0 & m38==9) & inrange(m4,93,99)
*IF 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
cap drop diet
gen diet=.
replace diet=0 if water==0 & liquids==0 & milk==0 & solids==0
replace diet=1 if water==1 & liquids==0 & milk==0 & solids==0
replace diet=2 if liquids==1 & milk==0 & solids==0
replace diet=3 if milk==1 & solids==0
replace diet=4 if milk==0 & solids==1
replace diet=5 if milk==1 & solids==1
replace diet=6 if breast==0
label define diet 0"given only water" 1"given only liquids" 2"given only milks" ///
3"given only solids" 4"given only milk and solids" 5"not still breastfeeding" ///
6"not now being breastfed" 7"What"
label var diet "Breastfeeding status1"
label val diet diet
*diet=0: given only water (full bf)
*diet=1: given only liquids (bf & liquids)
*diet=2: given only milks (bf & milk)
*diet=3: given only solids (bf & solids)
*diet=4: given only milk and solids (bf & milk & solids)
*diet=5: not still breastfeeding (weaned)
*diet=6: not now being breastfed (m4~=95)
gen ebf=0
replace ebf=1 if diet==0
******************************************
** FEEDING
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
label define feeding 0 "Not breastfeeding" 1 "exclusive breastfeeding" 2 "+Water" 3 "+Liquids" 4 "+Other Milk" 5 "+Solids"
label val feeding feeding
*creating the predominant breastfeeding variable.
recode feeding (0 4 5=0) (1/3=1), gen(predom)
**********************************************
recode m4 (93 95=1 "Yes") (else=0 "No"), gen(ever_breastfed)
label var ever_breastfed "Ever breastfed"
label var ever_breastfed "Child ever breastfed?"
label val ever_breastfed ever_breastfed
svy: tab ever_breastfed, count format(%4.0f)
svy: tab ever_breastfed, percent format(%4.1f)
**********************************************
/** CHILD BREASTFED WITHIN ONE HOUR **/
recode m34 (0/100=1 "Yes") (else=0 "No"), gen(within_hour)
label var within_hour "Child put to breast within an hour?"
label val within_hour within_hour
svy: tab b4 within_hour, percent format(%4.1f) row
/** CHILD BREASTFED WITHIN ONE DAY **/
recode m34 (0/200=1 "Yes") (else=0 "No"), gen(within_one_day)
label var within_one_day "Child put to breast within one day?"
label val within_one_day within_one_day
svy: tab b4 within_one_day, percent format(%4.1f) row
**********************************************
*** DELIVERY
cap drop place_delivery
recode m15 (21/36=1 "Health facility") (11/12=2 "At home") ///
(else=3 "Other/Missing"), gen(place_delivery)
label var place_delivery "Place of delivery"
label val place_delivery place_delivery
svy: tab place_delivery within_one_day, percent format(%4.1f) row
** SKILLED BIRTH ATTENDANT
cap drop skilled_birth
gen skilled_birth = 3
replace skilled_birth = 1 if (m3a==1 | m3b==1)
replace skilled_birth = 2 if m3g==1 & (m3b!=1)
replace skilled_birth = 4 if m3n==1
label define skilled_birth 1"Health professional" 2"Traditional birth attendant" ///
3"Other" 4"No one"
label var skilled_birth "Birth delivered by skilled birth attendant"
label val skilled_birth skilled_birth
*tab skilled_birth [iw=weight], m
svy: tab skilled_birth ever_breastfed, percent format(%4.1f) row
*==============================================================================*
** DROP IF NOT WITHIN SAMPLE
qui regr ever_breastfed if v208 !=0 [pw=weight]
drop if e(sample)!=1
********************************************************************************
** CHECK:
// Table 11.2 Percentage ever breastfed //
svy: tab b4 ever_breastfed, percent format(%4.1f) row
svy: tab skilled_birth ever_breastfed, percent format(%4.1f) row
svy: tab place_delivery ever_breastfed, percent format(%4.1f) row
svy: tab residence ever_breastfed, percent format(%4.1f) row
svy: tab region ever_breastfed, percent format(%4.1f) row
svy: tab education ever_breastfed, percent format(%4.1f) row
svy: tab wealth ever_breastfed, percent format(%4.1f) row
/*
svy: tab b4 ever_breastfed, count format(%4.0f)
svy: tab skilled_birth ever_breastfed, count format(%4.0f)
svy: tab place_delivery ever_breastfed, count format(%4.0f)
svy: tab residence ever_breastfed, count format(%4.0f)
svy: tab region ever_breastfed, count format(%4.0f)
svy: tab education ever_breastfed, count format(%4.0f)
svy: tab wealth ever_breastfed, count format(%4.0f)
*/
*==============================================================================*
// Table 11.2 Percentage who started breastfeeding within 1 hour of birth //
svy: tab b4 within_hour, percent format(%4.1f) row
svy: tab skilled_birth within_hour, percent format(%4.1f) row
svy: tab place_delivery within_hour, percent format(%4.1f) row
svy: tab residence within_hour, percent format(%4.1f) row
svy: tab region within_hour, percent format(%4.1f) row
svy: tab education within_hour, percent format(%4.1f) row
svy: tab wealth within_hour, percent format(%4.1f) row
/*
svy: tab b4 within_hour, count format(%4.0f)
svy: tab skilled_birth within_hour, count format(%4.0f)
svy: tab place_delivery within_hour, count format(%4.0f)
svy: tab residence within_hour, count format(%4.0f)
svy: tab region within_hour, count format(%4.0f)
svy: tab education within_hour, count format(%4.0f)
svy: tab wealth within_hour, count format(%4.0f)
*/
*==============================================================================*
// Table 11.2 Percentage who started breastfeeding within 1 day of birth //
svy: tab b4 within_one_day, percent format(%4.1f) row
svy: tab skilled_birth within_one_day, percent format(%4.1f) row
svy: tab place_delivery within_one_day, percent format(%4.1f) row
svy: tab residence within_one_day, percent format(%4.1f) row
svy: tab region within_one_day, percent format(%4.1f) row
svy: tab education within_one_day, percent format(%4.1f) row
svy: tab wealth within_one_day, percent format(%4.1f) row
/*
svy: tab b4 within_one_day, count format(%4.0f)
svy: tab skilled_birth within_one_day, count format(%4.0f)
svy: tab place_delivery within_one_day, count format(%4.0f)
svy: tab residence within_one_day, count format(%4.0f)
svy: tab region within_one_day, count format(%4.0f)
svy: tab education within_one_day, count format(%4.0f)
svy: tab wealth within_one_day, count format(%4.0f)
*/
exit
************************************************************ ***
FOR TABLE 11.3
clear all
set matsize 800
set maxvar 10000
set mem 1g
cd "..."
use "MWKR7HFL", clear
set more off
********************************************************************************
** WEIGHT VARIABLE
gen weight = v005/1000000
********************************************************************************
** SURVEY SET
gen psu = v021
gen strata = v023
svyset psu [pw = weight], strata(strata) vce(linearized)
*svydes
********************************************************************************
// RENAME
rename v013 age_woman
rename v106 education
rename v190 wealth
rename v025 residence
rename v024 region
*rename sdist district
////////////////////////////////////////////////////////////////////////////////
// GENERATING DEPENDENT VARIABLES
gen child_age=b19
recode child_age (0/1=1 "0-1") (2/3=2 "2-3") (4/5=3 "4-5") (6/8=4 "6-8") ///
(9/11=5 "9-11") (12/17=6 "12-17") (18/23=7 "18-23") (else=.), gen(child_age_grp)
svy: tab child_age_grp, count format(%4.0f)
*keep if child_age_grp !=.
* keep only children less than 2 years
keep if child_age<24
keep if b9==0
* finding the youngest child living with the mother for each mother
bysort v001 v002 v003: egen minbidx=min(bidx)
* need to drop those that are bidx==2 and minbidx==1
drop if bidx>minbidx
/*keep if bidx <= minbidx*/
gen water=0
gen liquids=0
gen milk=0
gen solids=0
gen breast=0
gen bottle=0
*TO DETERMINE IF CHILD IS GIVEN WATER, SUGAR WATER, JUICE, TEA OR OTHER.
replace water=1 if (v409>=1 & v409<=7)
* IF GIVEN OTHER LIQUIDS
foreach xvar of varlist v409a v410 v410* v413* {
replace liquids=1 if `xvar'>=1 & `xvar'<=7
}
*
cap replace liquids=1 if v412c>=1 & v412c<=7
* IF GIVEN POWDER/TINNED milk, FORMULA OR FRESH milk
foreach xvar of varlist v411 v411a v412 v414p {
replace milk=1 if `xvar'>=1 & `xvar'<=7
}
*
* IF STILL BREASTFEEDING
replace breast=1 if m4==95
* IF WAS EVER BOTTLE FED
replace bottle=1 if m38==1
gen bottle2=0
replace bottle2 = 1 if m38==1 & inrange(m4,93,99)
replace bottle2 = 0 if (m38==0 & m38==9) & inrange(m4,93,99)
*IF 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
cap drop diet
gen diet=.
replace diet=0 if water==0 & liquids==0 & milk==0 & solids==0
replace diet=1 if water==1 & liquids==0 & milk==0 & solids==0
replace diet=2 if liquids==1 & milk==0 & solids==0
replace diet=3 if milk==1 & solids==0
replace diet=4 if milk==0 & solids==1
replace diet=5 if milk==1 & solids==1
replace diet=6 if breast==0
label define diet 0"given only water" 1"given only liquids" 2"given only milks" ///
3"given only solids" 4"given only milk and solids" 5"not still breastfeeding" ///
6"not now being breastfed" 7"What"
label var diet "Breastfeeding status1"
*diet=0: given only water (full bf)
*diet=1: given only liquids (bf & liquids)
*diet=2: given only milks (bf & milk)
*diet=3: given only solids (bf & solids)
*diet=4: given only milk and solids (bf & milk & solids)
*diet=5: not still breastfeeding (weaned)
*diet=6: not now being breastfed (m4~=95)
gen ebf=0
replace ebf=1 if diet==0
******************************************
** FEEDING
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
label define feeding 0 "Not breastfeeding" 1 "exclusive breastfeeding" 2 "+Water" 3 "+Liquids" 4 "+Other Milk" 5 "+Solids"
label val feeding feeding
*creating the predominant breastfeeding variable.
recode feeding (0 4 5=0) (1/3=1), gen(predom)
svy: tab predom if age<6, count percent format(%4.0f) col
**********************************************
/*recode m4 (93 95=1) (else=0), gen(ever_breastfed)
label var ever_breastfed "Ever breastfed"
label val ever_breastfed ever_breastfed*/
**********************************************
/** CHILD BREASTFED WITHIN ONE HOUR **/
*recode m34 (0/100=1 "Yes") (else=0 "No"), gen(within_hour)
*label var within_hour "Child put to breast within an hour?"
*label val within_hour within_hour
*svy: tab b4 within_hour, percent format(%4.1f) row
/** CHILD BREASTFED WITHIN ONE DAY **/
*recode m34 (0/200=1 "Yes") (else=0 "No"), gen(within_one_day)
*label var within_one_day "Child put to breast within one day?"
*label val within_one_day within_one_day
*svy: tab b4 within_one_day, percent format(%4.1f) row
**********************************************
*** DELIVERY
cap drop place_delivery
recode m15 (21/36=1 "Health facility") (11/12=2 "At home") ///
(else=3 "Other/Missing"), gen(place_delivery)
label var place_delivery "Place of delivery"
label val place_delivery place_delivery
** SKILLED BIRTH ATTENDANT
cap drop skilled_birth
gen skilled_birth = 3
replace skilled_birth = 1 if (m3a==1 | m3b==1)
replace skilled_birth = 2 if m3g==1 & (m3b!=1)
replace skilled_birth = 4 if m3n==1
label define skilled_birth 1"Health professional" 2"Traditional birth attendant" ///
3"Other" 4"No one"
label var skilled_birth "Birth delivered by skilled birth attendant"
label val skilled_birth skilled_birth
*==============================================================================*
** DROP IF NOT WITHIN SAMPLE
qui regr feeding if v208 !=0 [pw=weight]
drop if e(sample)!=1
********************************************************************************
** CHECK: Table 11.3 Breastfeeding status by age as in the report
svy: tab child_age_grp feeding, count format(%4.0f)
svy: tab child_age_grp feeding, percent format(%4.1f) row
*==============================================================================*
exit
|
|
|
|
|
Goto Forum:
Current Time: Sat Aug 31 23:39:48 Coordinated Universal Time 2024
|