The DHS Program User Forum
Discussions regarding The DHS Program data and results
Home » Topics » Child Health » Child Vaccination_Ethiopia (2016 Ethiopian Demographic and Health Survey)
Child Vaccination_Ethiopia [message #16180] Sun, 18 November 2018 23:40 Go to next message
nasser.ebrahim9@gmail.com is currently offline  nasser.ebrahim9@gmail.com
Messages: 3
Registered: November 2018
Member
Dear DHS Forum,
We are analyzing vaccination data from Child Recode of 2016 Ethiopian Demographic and Health Survey. We used B19 (current age of child in months). We selected the age group from 12 to 23 months, and we found a total of 2036 children in this group. However, the Final Report of Ethiopian Demographic and Health Survey showed that there were 2004 children in 12-23-month group (Page 171). We wanted to know why is the discrepancy in the total number of children or are we using the wrong variable? We appreciate your response.
Re: Child Vaccination_Ethiopia [message #16182 is a reply to message #16180] Mon, 19 November 2018 02:48 Go to previous messageGo to next message
Mlue
Messages: 92
Registered: February 2017
Location: North West
Senior Member
Hello

Try this one.

/*
	Ethiopia Demographic and Health Survey, 2016
	BIRTHS RECODE
*/

clear all
set matsize 800
set mem 1g
set maxvar 9000
*cd "..."
use "ETBR70FL", 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
rename v106 education
rename v190 wealth
rename v025 residence
rename v024 region
*rename sdist district

////////////////////////////////////////////////////////////////////////////////

** Child_age = 12-23 months old
gen months = b19
keep if b5 == 1 & months >= 12 & months <=23

gen child_age = months
replace child_age = 1 if b5 == 1 & months >= 12 & months <=13
replace child_age = 2 if b5 == 1 & months >= 14 & months <=15
replace child_age = 3 if b5 == 1 & months >= 16 & months <=17
replace child_age = 4 if b5 == 1 & months >= 18 & months <=19
replace child_age = 5 if b5 == 1 & months >= 20 & months <=21
replace child_age = 6 if b5 == 1 & months >= 22 & months <=23
label define child_age 1"12-13" 2"14-15" 3"16-17" 4"18-19" 5"20-21" 6"22-23"
label var child_age "Child age in months"
label val child_age child_age

svy: tab months, count format(%4.0f) miss
svy: tab child_age, count format(%4.0f) miss

** Recode of vaccination variables

gen	BCG		=	inrange(h2,1,3)

gen Polio0	=	inrange(h0,1,3)

gen DPT		=	inrange(h3,1,3)+inrange(h5,1,3)+inrange(h7,1,3)

gen Polio	=	inrange(h4,1,3)+inrange(h6,1,3)+inrange(h8,1,3)

**gen pv		=	inrange(pv1,1,3)+inrange(pv2,1,3)+inrange(pv3,1,3)

gen ms		=	inrange(h9,1,3)

********************************************************************************

forvalues x = 1/3 {
gen Polio`x'	=	(Polio>=`x')
gen DPT`x'		=	(DPT>=`x')
/*gen Penta`c'	=	(pv>=`x')*/
}
**

** ========================================================================== **
** DEPENDENT VARIABLE
gen vaccination	=	(BCG==1 & Polio==3 & DPT==3 & ms==1) 
label var vaccination "Received all vaccinations"
label define vaccination 0"No" 1"Yes"
label values vaccination vaccination

/*
recode h1 (1=1 "Has card") (else=0 " No card"), gen(vaccine_card)
label var vaccine_card "Vaccination card seen"
label values vaccine_card vaccine_card
*/

** ========================================================================== **
* Mother's age at birth
cap drop agebirth
gen agebirth=(b3-v011)/12
*tab agebirth

cap drop age_at_birth
recode agebirth (min/19.91667=1 "<20") (20/34.91667=2 "20-34") ///
(35/max=3 "35-49"), gen(age_at_birth)
label var age_at_birth "Mother's age at birth"
label val age_at_birth age_at_birth

*****************************************
* Birth order
gen birth_order1		= 	bord
replace birth_order1	=	bord-1 if b0 == 2
replace birth_order1	=	bord-2 if b0 == 3

recode birth_order1 (1=1 "1") (2/3=2 "2-3") (4/5=3 "4-5") ///
(6/20=4 "6+"), gen(birth_order)
label var birth_order "Birth order"
label values birth_order birth_order

*==============================================================================*
** DROP IF NOT WITHIN SAMPLE
keep if vaccination !=.

*==============================================================================*

** CHECK
svy: tab vaccination, count percent format(%4.1f) col
svy: tab vaccination, count format(%4.0f)
svy: tab vaccination, percent format(%4.1f)

********************************************************************************
********************************************************************************

** Table 10.3 Vaccinations by background characteristics **

svy: tab b4 vaccination, count format(%4.0f) miss
svy: tab birth_order vaccination, count format(%4.0f) miss
svy: tab residence vaccination, count format(%4.0f) miss
svy: tab region vaccination, count format(%4.0f) miss
svy: tab education vaccination, count format(%4.0f) miss
svy: tab wealth vaccination, count format(%4.0f) miss

*******************

svy: tab b4 vaccination, percent format(%4.1f) row miss
svy: tab birth_order vaccination, percent format(%4.1f) row miss
svy: tab residence vaccination, percent format(%4.1f) row miss
svy: tab region vaccination, percent format(%4.1f) row miss
svy: tab education vaccination, percent format(%4.1f) row miss
svy: tab wealth vaccination, percent format(%4.1f) row miss

********************************************************************************

exit

tabstat months [aw=weight], by(b4) stat(mean median sd min max) format(%4.1f) long

tabstat months [aw=weight], by(vaccination) stat(mean median sd min max) format(%4.1f) long

Re: Child Vaccination_Ethiopia [message #16191 is a reply to message #16182] Mon, 19 November 2018 20:33 Go to previous messageGo to next message
nasser.ebrahim9@gmail.com is currently offline  nasser.ebrahim9@gmail.com
Messages: 3
Registered: November 2018
Member
Thank you for the feedback. I am using SPSS, so I am not sure if the syntax is for SPSS. What I really want to know is that if the variable B19 (children age in months) is the right variable to extract a population of children whose age is 12-23 months. If the answer is yes then we have 2036 children not 2004 as reported in the DHS Final Report 2016 (Page 171). I want to make sure I am using the right population size before proceeding with the analysis. I appreciate your response.
Re: Child Vaccination_Ethiopia [message #16193 is a reply to message #16191] Tue, 20 November 2018 03:45 Go to previous message
Mlue
Messages: 92
Registered: February 2017
Location: North West
Senior Member
Hello,

Try this one. SPSS

*****************************************

*// [ OPEN THE DATA - PERSON RECODE ] **.
** ETHIOPIA 2016 DHS **.
** **.
GET
  FILE='C:\Users\...\ETBR70FL.SAV'.
DATASET NAME DataSet1 WINDOW=FRONT.

************************************************************************************************************************************.

** WEIGHT VARIABLE.
COMPUTE weight = v005/1000000.

WEIGHT BY weight.

** COMPLEX SURVEY VARIABLES.
COMPUTE psu = v021.
COMPUTE strata = v023.

************************************************************************************************************************************.

RENAME VARIABLES (v013=age) (v106=education) (v025=residence) (v024 = region) (v190=wealth).

************************************************************************************************************************************.

** CHILD AGE IN MONTHS (12-23 months old).
COMPUTE months = b19.
SELECT IF b5 EQ 1 AND (months GE 12 AND months LE 23).

RECODE months (12 THRU 13 = 1) (14 THRU 15 = 2) (16 THRU 17 = 3) 
(18 THRU 19 = 4) (20 THRU 21 = 5) (22 THRU 23 = 6) INTO child_age.
VARIABLE LABELS child_age 'Child age (months)'.
EXECUTE.
VALUE LABELS child_age 1 "12-13 months" 2 "14-15 months" 3 "16-17 months" 4 "18-19 months" 5 "20-21 months" 6 "22-23 months".

************************************************************************************************************************************.

** RECODE VACCINATION VARIABLES.
COMPUTE BCG = RANGE(h2,1,3).
EXECUTE.

COMPUTE Polio0 = RANGE(h0,1,3).
EXECUTE.

COMPUTE DPT = RANGE(h3,1,3)+RANGE(h5,1,3)+RANGE(h7,1,3).
EXECUTE.

COMPUTE Polio = RANGE(h4,1,3)+RANGE(h6,1,3)+RANGE(h8,1,3).
EXECUTE.

*COMPUTE pv = RANGE(pv1,1,3)+RANGE(pv2,1,3)+RANGE(pv3,1,3).
*EXECUTE.

COMPUTE ms = RANGE(h9,1,3).
EXECUTE.

*********************************************************************************.

** DEPENDENT VARIABLE.
COMPUTE vaccination = (BCG=1 & Polio=3 & DPT=3 & ms=1) .
VARIABLE LABELS vaccination 'Received all basic vaccinations'.
EXECUTE.
VALUE LABELS vaccination 0"No" 1"Yes".

*********************************************************************************.

* MOTHER'S AGE AT BIRTH.
COMPUTE agebirth = (b3-v011)/12.
EXECUTE.

RECODE agebirth (LO THRU 19.91667 = 1) (20 THRU 34.91667 = 2) (35 THRU HI = 3) INTO age_at_birth.
VARIABLE LABELS age_at_birth "Mother's age at birth".
EXECUTE.
VALUE LABELS age_at_birth 1 "<20" 2 "20-34" 3 "35-49".

* BIRTH ORDER.
COMPUTE birth_order1 = bord.
   IF (b0 EQ 2) birth_order1 = bord - 1.
   IF (b0 EQ 3) birth_order1 = bord - 2.
EXECUTE.

RECODE birth_order1 (1 = 1) (2 THRU 3 = 2) (4 THRU 5 = 3) (6 THRU HI = 4)  INTO birth_order.
VARIABLE LABELS birth_order "Birth order".
EXECUTE.
VALUE LABELS birth_order 1 "1" 2 "2-3" 3 "4-5" 4 "6+".

*==============================================================================*

** CHECK **.
FREQUENCIES VARIABLES=B4 birth_order residence region education wealth age_at_birth
  /ORDER=ANALYSIS.

CROSSTABS
  /TABLES=B4 birth_order residence region education wealth age_at_birth BY vaccination
  /FORMAT=AVALUE TABLES
  /CELLS=ROW
  /COUNT ROUND CELL.
Previous Topic: diarrhea with blood
Next Topic: Immunization [Vaccination in First Year of Life]
Goto Forum:
  


Current Time: Fri Mar 29 06:48:12 Coordinated Universal Time 2024