The DHS Program User Forum
Discussions regarding The DHS Program data and results
Home » Topics » Child Health » Dominican Republic 2007 child immunization
Dominican Republic 2007 child immunization Wed, 05 August 2015 18:34
 ghasbun Messages: 1Registered: August 2015 Member
I'm trying to replicate the child immunization results from the 2007 DR report but continue to overestimate my variable. I successfully replicated this for DR 2013 but cannot figure it our for 2007. I've read all the manuals and posts and can't figure out what's going on.

According to the sample full immunization for children in the DR (months 18-29) is for children that received, BCG, three doses of DPT OR Pentavalente, 3 of polio (excluding polio at birth) and measles or triple viral vaccine. I would highly appreciate any help that can be provided for this. I'm using the birth recode file with the following code:

generate wgt = v005/1000000

gen ms=. //measels
replace ms=1 if inrange(h9,1,3)

gen sr=. //SRP
replace sr=1 if inrange(srt,1,3)

ge ms_sr=.
replace ms_sr=1 if ms==1 | sr == 1

gen dpt=. //DPT1 or PV1
replace dpt=1 if inrange(h3,1,3) | inrange(pv1,1,3)

gen dpt2=. //DPT2 or PV2
replace dpt2=1 if inrange(h5,1,3) | inrange(pv2,1,3)

gen dpt3=. //DPT3 or PV3
replace dpt3=1 if inrange(h7,1,3) | inrange(pv3,1,3)

ge dpt_pv=.
replace dpt_pv=1 if dpt==1 & dpt2 == 1 & dpt3==1

gen vac=.
replace vac=1 if inrange(h2,1,3) & inrange(h4,1,3) & inrange(h6,1,3) & inrange(h8,1,3) & ms_sr==1 & dpt_pv==1

replace vac=0 if h2==0 & h3==0 & h4==0 & h5==0 & h6==0 & h7==0 & h8==0 & h9==0 & pv1==0 & pv2==0 & pv3==0 & srt==0

label var vac "Received all vaccinations"
label define vac 1"Yes" 0"No", replace
label values vac vac

ta vac if inrange(hw1,18,29) [iw=wgt], m
Re: Dominican Republic 2007 child immunization [message #8435 is a reply to message #6943] Tue, 27 October 2015 19:41
 Trevor-DHS Messages: 737Registered: January 2013 Senior Member
Try the following code:

```use "drkr52fl.dta", clear

generate wgt = v005/1000000

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`x' = (pv>=`x')
}

gen vac = (bcg==1 & polio==3 & dpt==3 & ms==1)
label var vac "Received all vaccinations"
label define vac 1 "Yes" 0 "No", replace
label values vac vac

gen novac = (bcg==0 & polio==0 & dpt==0 & ms==0)
label var novac "Received no vaccinations"
label values novac vac

gen age = v008-b3

svyset v021 [pw=wgt], strata(v024)
svy:mean bcg dpt1 dpt2 dpt3 penta1 penta2 penta3 polio0 polio1 polio2 polio3 ms vac novac if b5 == 1 & inrange(age,18,29)```

In this code, there are a few things to note:
1) If you tabulate DPT and pentavalent you will see that all cases with pentavalent also have DPT, so you can ignore the pentavalent. Similarly all cases that are recorded on the SRT variable also have the measles vaccinaiton, so you can ignore the SRT variable.
2) We do not tabulate vaccines according to the individual vaccines, but according to the count of vaccines for DPT 1-3 and Polio 1-3
3) When I checked the report results, the results shown in the report for Sarampion/Tripe viral and for "Todas las vacunas" do not match the results in the final tabulations in our records. Instead we show Sarampion/Triple = 78.8% and Todas las vacunas = 57.9. When I run the code above, I match these latter results.
 Previous Topic: Low Birth Weight Next Topic: Age in months: Missing values
Goto Forum:

Current Time: Sun Jan 24 01:26:16 Coordinated Universal Time 2021