We are trying to do an individual level impact evaluation using experiments. The intervention who's impact we are studying was at the town level. Unfortunately, we do not have a baseline control group (town or individual). To identify a control group we are conducting a PSM at the town level to identify a control group of towns using nearest neighbor matching. Once we have pairs of control-treatment towns, we will randomly select pairs to conduct the individual-level experiment in.
This is a simplified version of the code we are using to identify the pairs.
pscore treated $pscore_controls, pscore (mypscore) comsup numblo(5) level(0.01) blockid(myblockid) psmatch2 treated, pscore( mypscore ) caliper (.001) noreplace neighbor(1) **//nearest neighbor matching//** gen pair = _id if _treated==0 replace pair = _n1 if _treated==1 **//identifies the matched treated neighbor //** bysort pair: egen paircount =count(pair) tab paircount **//drop if !=2, if not 2 means no nearest neighbor was found in given caliper width- 119 of 157 treated towns matched//**
I have two questions:
- Given that the intervention was at the village level but our outcome of interest is at the individual level- is the above-mentioned method a sound way to identify a control group?
- The matching controls we are using are for 2010, the intervention was in 2015, the experiment will be in 2017/2018. We are assuming that since 2010 levels are informing our matching, they are pre-intervention and hence a sound way to identify a control group. Is there another way to identify a sound-control group?