/***************************************************************************** This do file replicates Table 2 in the impact evaluation of SPOON Guatemala Updated on 6/17/2024 *****************************************************************************/ *---------------------------------------------------------------------* * TABLE 2, Panel 1. Study Characteristics * *---------------------------------------------------------------------* /*TARGET CHILD*/ use "${processed}/child_target_analysis.dta", clear duplicates tag idunico, gen(dup_hogar) // identify households with more than one elegible child * Re-label variables lab var child_sex "Male, %" lab var child_age "Age, months" lab var alive_bl "Born at baseline, %" lab var child_age_bl "Age at baseline, months" lab var child_order "First born, %" lab var _zlen "Height-for-age z-score (HAZ), SD" lab var hfa_2sd "Stunting (HAZ < -2 SD)" lab var hfa_3sd "Stunting (HAZ < -3 SD)" lab var _zwei "Weight-for-age z-score (WAZ), SD" lab var wfa_2sd "Underweight (WAZ < -2 SD)" lab var _zbmi "BMI-for-age z-score (BAZ), SD" lab var bmi_2sd "Overweight or obese (BAZ > 2 SD)" lab var adj_haemoglobin "Altitude-adjusted hemoglobin, g/L" lab var anemia_d "Anemia, %" lab var practice_index "Practice index, 0-1" lab var practice_index_bf "Practices subscale: breastfeeding, 0-1" lab var practice_index_food "Practices subscale: solid foods, 0-1" lab var practice_index_sup "Practices subscale: supplementation, 0-1" * Panel title and sample size gen child_lab=. label var child_lab "Target child" gen sample_size=. label var sample_size "n" * Output to Excel putexcel set "${tables}/table2.xls", sheet("Panel 1") replace local row=4 sum idunico local n =string(r(N), "%9.0f") sum idunico if T1==1 local n_t1 =string(r(N), "%9.0f") sum idunico if T2==1 local n_t2 =string(r(N), "%9.0f") sum idunico if Control==1 local nc =string(r(N), "%9.0f") quietly putexcel C5 =("`n'") quietly putexcel D5 =("`n_t1'") quietly putexcel E5 =("`n_t2'") quietly putexcel F5 =("`nc'") foreach depvar of varlist child_lab sample_size child_sex child_age alive_bl child_age_bl child_order _zlen hfa_2sd hfa_3sd _zwei wfa_2sd _zbmi bmi_2sd adj_haemoglobin anemia_d practice_index practice_index_bf practice_index_food practice_index_sup { local dep_varl : variable label `depvar' if (`depvar'==child_sex) | (`depvar'==child_order) | (`depvar'== anemia_d) { ** DESCRIPTIVES ** *TOTAL sum `depvar' local mean = string(r(sum), "%12.0f")+" ("+(string(r(mean)*100),"%12.1f")+")" local n =string(r(N), "%9.0f") *T1 sum `depvar' if T1==1 local mean_t1 = string(r(sum), "%12.0f")+" ("+(string(r(mean)*100),"%12.1f")+")" *T2 sum `depvar' if T2==1 local mean_t2 = string(r(sum), "%12.0f")+" ("+(string(r(mean)*100),"%9.1f")+")" *CONTROL sum `depvar' if Control==1 local meanc = string(r(sum), "%9.0f")+" ("+(string(r(mean)*100),"%9.1f")+")" } else{ ** DESCRIPTIVES ** *TOTAL sum `depvar' local mean = string(r(mean), "%12.2f")+" ("+string(r(sd),"%12.2f")+")" local n =string(r(N), "%9.0f") *T1 sum `depvar' if T1==1 local mean_t1 = string(r(mean), "%12.2f")+" ("+string(r(sd),"%12.2f")+")" *T2 sum `depvar' if T2==1 local mean_t2 = string(r(mean), "%12.2f")+" ("+string(r(sd),"%9.2f")+")" *CONTROL sum `depvar' if Control==1 local meanc = string(r(mean), "%9.2f")+" ("+string(r(sd),"%9.2f")+")" } if `n' >0 { quietly putexcel B`row'=("`dep_varl'") quietly putexcel C`row' =("`mean'") quietly putexcel D`row' =("`mean_t1'") quietly putexcel E`row' =("`mean_t2'") quietly putexcel F`row' =("`meanc'") local ++row } else{ quietly putexcel B`row'=("`dep_varl'") local ++row } } /*HOUSEHOLD*/ duplicates drop idunico, force // collapse to household level * Re-label variables lab var dup_hogar "More than one target child, %" lab var wealth "Wealth index (baseline)" lab var prop_males0_5_bl "Proportion of males 0-5 (baseline)" lab var prop_males6_18_bl "Proportion of males 6-18 (baseline)" lab var prop_males19_49_bl "Proportion of males 19-49 (baseline)" lab var prop_males50_bl "Proportion of males 50+ (baseline)" lab var prop_females0_5_bl "Proportion of females 0-5 (baseline)" lab var prop_females6_18_bl "Proportion of females 6-18 (baseline)" lab var prop_females19_49_bl "Proportion of females 19-49 (baseline)" lab var prop_females50_bl "Proportion of females 50+ (baseline)" * Panel title and sample size gen hh_lab=. lab var hh_lab "Household" drop sample_size gen sample_size=. label var sample_size "n" * Output to Excel putexcel set "${tables}/table2.xls", sheet("Panel 1") modify local row=38 sum idunico local n =string(r(N), "%9.0f") sum idunico if T1==1 local n_t1 =string(r(N), "%9.0f") sum idunico if T2==1 local n_t2 =string(r(N), "%9.0f") sum idunico if Control==1 local nc =string(r(N), "%9.0f") quietly putexcel C39 =("`n'") quietly putexcel D39 =("`n_t1'") quietly putexcel E39 =("`n_t2'") quietly putexcel F39 =("`nc'") foreach depvar of varlist hh_lab sample_size dup_hogar wealth prop_males0_5_bl prop_males6_18_bl prop_males19_49_bl prop_males50_bl prop_females0_5_bl prop_females6_18_bl prop_females19_49_bl prop_females50_bl { local dep_varl : variable label `depvar' if (`depvar'==dup_hogar) { ** DESCRIPTIVES ** *TOTAL sum `depvar' local mean = string(r(sum), "%12.0f")+" ("+(string(r(mean)*100),"%12.1f")+")" local n =string(r(N), "%9.0f") *T1 sum `depvar' if T1==1 local mean_t1 = string(r(sum), "%12.0f")+" ("+(string(r(mean)*100),"%12.1f")+")" *T2 sum `depvar' if T2==1 local mean_t2 = string(r(sum), "%12.0f")+" ("+(string(r(mean)*100),"%9.1f")+")" *CONTROL sum `depvar' if Control==1 local meanc = string(r(sum), "%9.0f")+" ("+(string(r(mean)*100),"%9.1f")+")" } else{ ** DESCRIPTIVES ** *TOTAL sum `depvar' local mean = string(r(mean), "%12.2f")+" ("+string(r(sd),"%12.2f")+")" local n =string(r(N), "%9.0f") *T1 sum `depvar' if T1==1 local mean_t1 = string(r(mean), "%12.2f")+" ("+string(r(sd),"%12.2f")+")" *T2 sum `depvar' if T2==1 local mean_t2 = string(r(mean), "%12.2f")+" ("+string(r(sd),"%9.2f")+")" *CONTROL sum `depvar' if Control==1 local meanc = string(r(mean), "%9.2f")+" ("+string(r(sd),"%9.2f")+")" } if `n' >0 { quietly putexcel B`row'=("`dep_varl'") quietly putexcel C`row' =("`mean'") quietly putexcel D`row' =("`mean_t1'") quietly putexcel E`row' =("`mean_t2'") quietly putexcel F`row' =("`meanc'") local ++row } else{ quietly putexcel B`row'=("`dep_varl'") local ++row } } /*CAREGIVER*/ use "${processed}/caregiver_target_analysis.dta", clear * Re-label variables lab var cg_age "Age, years" lab var cg_educ "Primary education, %" lab var knowledge_indexV1 "Knowledge index, 0-1" lab var knowledge_indexV1_bf "Knowledge subscale: breastfeeding, 0-1" lab var knowledge_indexV1_food "Knowledge subscale: solid foods, 0-1" lab var knowledge_indexV1_health "Knowledge subscale: health/health care, 0-1" lab var decisiones_bl "Decision-making power (baseline), 0-1" lab var grit_bl "Grit score (baseline), 0-5" lab var rosenberg_bl "Rosenberg score (baseline), 0-30" lab var conocimiento_bl "Knowledge index (baseline), 0-1" * Panel title and sample size gen mom_lab=. lab var mom_lab "Caregiver" gen sample_size=. lab var sample_size "n" * Output to Excel putexcel set "${tables}/table2.xls", sheet("Panel 1") modify putexcel C3=("Total") putexcel D3=("T1") putexcel E3=("T2") putexcel F3=("Control") local row=25 sum idunico local n =string(r(N), "%9.0f") sum idunico if T1==1 local n_t1 =string(r(N), "%9.0f") sum idunico if T2==1 local n_t2 =string(r(N), "%9.0f") sum idunico if Control==1 local nc =string(r(N), "%9.0f") quietly putexcel C26 =("`n'") quietly putexcel D26 =("`n_t1'") quietly putexcel E26 =("`n_t2'") quietly putexcel F26 =("`nc'") foreach depvar of varlist mom_lab sample_size cg_age cg_educ knowledge_indexV1 knowledge_indexV1_bf knowledge_indexV1_food knowledge_indexV1_health decisiones_bl grit_bl rosenberg_bl conocimiento_bl{ local dep_varl : variable label `depvar' if (`depvar'==cg_educ) { ** DESCRIPTIVES ** *TOTAL sum `depvar' local mean = string(r(sum), "%12.0f")+" ("+(string(r(mean)*100),"%12.1f")+")" local n =string(r(N), "%9.0f") *T1 sum `depvar' if T1==1 local mean_t1 = string(r(sum), "%12.0f")+" ("+(string(r(mean)*100),"%12.1f")+")" *T2 sum `depvar' if T2==1 local mean_t2 = string(r(sum), "%12.0f")+" ("+(string(r(mean)*100),"%9.1f")+")" *CONTROL sum `depvar' if Control==1 local meanc = string(r(sum), "%9.0f")+" ("+(string(r(mean)*100),"%9.1f")+")" } else{ ** DESCRIPTIVES ** *TOTAL sum `depvar' local mean = string(r(mean), "%12.2f")+" ("+string(r(sd),"%12.2f")+")" local n =string(r(N), "%9.0f") *T1 sum `depvar' if T1==1 local mean_t1 = string(r(mean), "%12.2f")+" ("+string(r(sd),"%12.2f")+")" *T2 sum `depvar' if T2==1 local mean_t2 = string(r(mean), "%12.2f")+" ("+string(r(sd),"%9.2f")+")" *CONTROL sum `depvar' if Control==1 local meanc = string(r(mean), "%9.2f")+" ("+string(r(sd),"%9.2f")+")" } if `n' >0 { quietly putexcel B`row'=("`dep_varl'") quietly putexcel C`row' =("`mean'") quietly putexcel D`row' =("`mean_t1'") quietly putexcel E`row' =("`mean_t2'") quietly putexcel F`row' =("`meanc'") local ++row } else{ quietly putexcel B`row'=("`dep_varl'") local ++row } } *---------------------------------------------------------------------* * TABLE 2, Panel 2. Program Implementation Fidelity * *---------------------------------------------------------------------* use "$admin_processed/admin_data.dta", clear * merge child data to get analytic sample rename folio idunico merge m:m idunico using "${processed}/child_target_analysis.dta", keepusing(idunico) duplicates drop idunico, force // collapse to household level keep if _merge==3 rename idunico folio * Output to Excel putexcel set "${tables}/table2.xls", sheet("Panel 2") modify putexcel C3=("Total") putexcel D3=("T1") putexcel E3=("T2") local row=4 sum folio local n =string(r(N), "%9.0f") sum folio if tratamiento==1 local n_t1 =string(r(N), "%9.0f") sum folio if tratamiento==2 local n_t2 =string(r(N), "%9.0f") quietly putexcel B4=("n") quietly putexcel C4 =("`n'") quietly putexcel D4 =("`n_t1'") quietly putexcel E4 =("`n_t2'") * Generate variables gen entregas_1 = (n_entregas>0) tab tratamiento tratamiento_hogar gen treat_match =(tratamiento==tratamiento_hogar) * Label variables lab var n_entregas "Number of deliveries" lab var entregas_1 "At least one delivery, %" lab var treat_match "Adherence to original random assignment, %" * Number of deliveries local dep_varl : variable label n_entregas *TOTAL sum n_entregas local mean = string(r(mean), "%12.2f")+" ("+string(r(sd),"%12.2f")+")" local n =string(r(N), "%9.0f") *T1 sum n_entregas if tratamiento==1 local mean_t1 = string(r(mean), "%12.2f")+" ("+string(r(sd),"%12.2f")+")" *T2 sum n_entregas if tratamiento==2 local mean_t2 = string(r(mean), "%12.2f")+" ("+string(r(sd),"%9.2f")+")" quietly putexcel B5=("`dep_varl'") quietly putexcel C5 =("`mean'") quietly putexcel D5 =("`mean_t1'") quietly putexcel E5 =("`mean_t2'") * At least one delivery local dep_varl : variable label entregas_1 *TOTAL sum entregas_1 local mean = string(r(sum), "%12.0f")+" ("+(string(r(mean)*100),"%12.1f")+")" local n =string(r(N), "%9.0f") *T1 sum entregas_1 if tratamiento==1 local mean_t1 = string(r(sum), "%12.0f")+" ("+(string(r(mean)*100),"%12.1f")+")" *T2 sum entregas_1 if tratamiento==2 local mean_t2 = string(r(sum), "%12.0f")+" ("+(string(r(mean)*100),"%9.1f")+")" quietly putexcel B6=("`dep_varl'") quietly putexcel C6 =("`mean'") quietly putexcel D6 =("`mean_t1'") quietly putexcel E6 =("`mean_t2'") * Adherence to original random assignment local dep_varl : variable label treat_match *TOTAL sum treat_match local mean = string(r(sum), "%12.0f")+" ("+(string(r(mean)*100),"%12.1f")+")" local n =string(r(N), "%9.0f") *T1 sum treat_match if tratamiento==1 local mean_t1 = string(r(sum), "%12.0f")+" ("+(string(r(mean)*100),"%12.1f")+")" *T2 sum treat_match if tratamiento==2 local mean_t2 = string(r(sum), "%12.0f")+" ("+(string(r(mean)*100),"%9.1f")+")" quietly putexcel B7=("`dep_varl'") quietly putexcel C7 =("`mean'") quietly putexcel D7 =("`mean_t1'") quietly putexcel E7 =("`mean_t2'")