Responses rate are fairly good; we don’t seem to have a lot of missing data. Note that data collection started in wave 2 of period 3 so we are missing wave 1 data for period 3.
Code
```{stata}do "$code/setup_p3_legacy.do"qui use "$data_gen_p3/Pilot_3_Beliefs.dta", clearqui drop if wave == 1 & period == 3// Generate dummies for period 3/4 and period 5// to determine expected number of responsesqui gen period_3_4 = 1 if period == 3 | period == 4qui gen period_5 = 1 if period == 5qui gen one = 1qui collapse (count) belief_high_envelope belief_last_high belief_prop_high_remaining period_3_4 period_5 one, by(period)qui gen belief_high_envelope_rr = belief_high_envelope / onequi gen belief_last_high_rr = belief_last_high / period_5qui gen belief_prop_high_remaining_rr = belief_prop_high_remaining / period_3_4qui keep *_rr periodqui rename belief_high_envelope_rr high_envqui rename belief_last_high_rr last_hqui rename belief_prop_high_remaining_rr high_remlist```
. /*******
> Author: Simon Taye
> Date: Dec 8, 2025
> Purpose: Add paths for old pilot 3 paths for compatibility
> *******/
. ************************************************
. *****************START: Configs
. ************************************************
.
.
. **** Path for Pilot 3 generated data (for quarto)
. global data_gen_p3 "$pilot3/data/generated/p3"
. global data_gen $data_gen_p3
.
. * Location of calorie data which changes in other places this code is used
. global cal "$data/raw/pilot_3/calories_database.dta"
. * Structure for raw data - Pilot 3
. global ps "$data/raw/pilot_3/04_Phone_surveys"
. global bl "$data/raw/pilot_3/02_Baseline"
. global el "$data/raw/pilot_3/08_Endline_data"
. global fcm "$data/raw/pilot_3/07_Food_Consumption_Measure"
. global census "$data/raw/pilot_3/01_Census"
. global referral "$data/raw/pilot_3/11_Refferals/"
. * Nested structure for intervention data
. global intervention "$data/raw/pilot_3/03_Intervention_data"
. global training "$intervention/03_Treatment dissemination"
. global dropoff "$intervention/02_Drop_off"
. global pickup "$intervention/01_pick_up"
.
.
.
end of do-file
+-----------------------------------------+
| period high_env last_h high_rem |
|-----------------------------------------|
1. | 3 1 . 1 |
2. | 4 .9448276 . .9241379 |
3. | 5 .9520548 .9726027 . |
4. | 6 .9722222 . . |
+-----------------------------------------+
Comprehension Questions
Wave 1 Enumerators do much worse than their wave 2 counterparts. We likely need to check how well enumerators understood the module during the training phase. The figure I included below is meant illustrate this difference. Note: the scoring for the comprehension is a lot more leiniet; I had the intention of isolating responses that show a clear misunderstand of the question or the interface.
For example: - Pick the point that represents equal chance of rain and no rain - The correct answer is 0. The breakdown of comprehension question scores below show how many participants got this right or wrong - For my flags of poor comprehension, I only mark those who response was far from the middle (< -5 or > 5) to exclude potential misclicks and only identify those who “clearly” didn’t understand the question or the interface
Participants are flagged for the figures below if they gave very wrong answers (as described above) to 2/3 comprehension questions
Code
```{stata}use "$data_gen_p3/Pilot_3_Beliefs.dta", clear// Calculate means by period and wavecollapse (mean) flag_poor_comprehension, by(period wave)// Create the bar graphgraph bar flag_poor_comprehension, over(wave) over(period) /// asyvars /// bar(1, fcolor(eltblue)) bar(2, fcolor(red%70)) /// ylabel(0(.1)1) /// title("Poor Comprehension by Period and Wave") /// ytitle("Proportion with Poor Comprehension") /// legend(order(1 "Wave 1" 2 "Wave 2")) /// blabel(bar, format(%9.2f))```
Comprehension Score Breakdown - By Wave
Wave 1 - comprehension success rate:
Code
```{stata}use "$data_gen_p3/Pilot_3_Beliefs.dta" if wave == 1, cleartable period if period != 3, statistic(mean rain_equal_chance_correct rain_more_chance_correct rain_sure_correct)```