Propensity score matching in a longitudinal setting

I am using Stata 13 to investigate a local programm aimed at reducing obesity amoung teenagers and adolescents in a school. I have a balanced panel over twelve years and a couple of covariates (like age and gender and a few more) over time. Some participants get some treatment/support if their school-id is odd. Indications are however strong that some participants are prefered. Let me illustrate with some fictive generated data:

*Gen sample data
set obs 120
egen year = seq(), from(1) to(12)
bysort year: egen id = seq(), from(1) to(10)
xtset id year

*Gen y- and x-list, only odd ids get treatment in odd years if x1>2
gen odd = mod(id, 2)

gen x1 = runiform()*10
gen x2 = runiform()*10

gen age = round(runiform()*20) if year==1
replace age = L1.age+1 if year>1

gen gender = round(runiform()) if year ==1
replace gender = L1.gender if year>1

gen treat = 0
replace treat = 1 if odd==1 & x1>=2
drop odd

gen y = L1.y - gender + age + x1 + x2 - treat + runiform()

*Gen difference
gen d_y = y-L1.y


The data provides us with 12 years of data for 10 participants. The participants get the treatment if their id is odd and if x1 is larger or equal to two. Their weight y is path dependend and further defined by their age, their gender, x1, x2, and of course the treatment.

I decided to use propensity score matching. Here is what I did:

*Propensity score matching
pscore treat gender age x1 x2, pscore(score) blockid(block) comsup

*match
*e.g. nearest neigbour
attnd d_y treat gender age x1 x2 ,  pscore(score) boot reps(5) comsup


I first calculated the propensity to get a treatment based ont the participants covariates. I then used the nearest-neighbour approach to pair treatment and controls. However, I used the yearly difference in y (d_y) as a dependent variable to take account of the panel structure.

I have the following questions:

1. Is the procedure correct? Particularly, is it enough to take the the yearly difference to make use of the panel structure?
2. Given time varying and constant covariates over time, is it possible to combine PSM with random/fixed effect estimators? Such as using xtprobit to calculate the propensity score for each year?
3. Are their nice ways to graph the region of common support?
• For (3), if you use Leuven and Sianesi's psmatch2, you can use the bundled psgraph command. Similarly, Stata's own teeffects psmatch has a teffects overlap and teffects balance commands. On the modelling side, how long to do you expect of the effects from the treatment to last? Can people become treated at any point or are they all treated in the initial period? Does your actual data have more than 12 observations? – Dimitriy V. Masterov Dec 22 '15 at 16:48
• Thanks! I will try it out. The true data features abount 100 student over 11 years. Students are always treated at the same point in time in the initial period - though sometimes a few more times... – Rachel Jan 6 '16 at 12:26