Hi all,
I am trying to evaluate the effect of a university teaching reform on the wage outcome of its students using PSM-DiD via the methodology proposed by Stuart et al. 2014 - Using propensity scores in difference-in-differences models to estimate the effects of a policy change. (https://pubmed.ncbi.nlm.nih.gov/25530705/)
Considering four groups:
1 - Treated in pre-treatment period
2 - Control in pre-tratment period
3 - Treated in post-treatment period
4 - Control in post-treratment period
...they suggest to "fit a multinomial logistic regression predicting Group as a function of a set of observed covariates X. Each individual will have four resulting propensity scores, ek(Xi): the probability of being in Group k, for k = 1–4. (Note that these four will sum to one for each individual). The weights are then created in such a way that each of the four groups is weighted to be similar to Group 1, the treatment group in the pre period. This is accomplished using the following weight for individual i:
wi = e1 / eg (Xi)
where g refers to the group that individual i was actually in."
I try to do this by writing
My problem is that psa1=psa2=psa3=psa4!=1, where I instead want psa`x' to be the probability of the individual to be in group x. Apparently, I can solve it by instead estimating four "single"logistic regression for each of the four groups, but I am not sure if that is econometrically correct, since Stuart et al. suggest to estimate the probability via multinomial logistic regression.
I cannot show you my real data, as it is confidential, but using the example hospital data from the helpfile to 'didregress' this is what I try:
So my question is how I can correctly estimate the probability of being in each of the four groups defined above using multinomial logistic regression?
I am aware that there is a user written package 'diff' which accomplishes PSM-DiD but this comes with the restriction of only being allowed to match via kernel-matching, which I am not interested in.
I am trying to evaluate the effect of a university teaching reform on the wage outcome of its students using PSM-DiD via the methodology proposed by Stuart et al. 2014 - Using propensity scores in difference-in-differences models to estimate the effects of a policy change. (https://pubmed.ncbi.nlm.nih.gov/25530705/)
Considering four groups:
1 - Treated in pre-treatment period
2 - Control in pre-tratment period
3 - Treated in post-treatment period
4 - Control in post-treratment period
...they suggest to "fit a multinomial logistic regression predicting Group as a function of a set of observed covariates X. Each individual will have four resulting propensity scores, ek(Xi): the probability of being in Group k, for k = 1–4. (Note that these four will sum to one for each individual). The weights are then created in such a way that each of the four groups is weighted to be similar to Group 1, the treatment group in the pre period. This is accomplished using the following weight for individual i:
wi = e1 / eg (Xi)
where g refers to the group that individual i was actually in."
I try to do this by writing
Code:
forval x = 1/4{
mlogit group "list of covariates", baseoutcome(`x')
predict psa`x'
I cannot show you my real data, as it is confidential, but using the example hospital data from the helpfile to 'didregress' this is what I try:
Code:
use https://www.stata-press.com/data/r17/hospdd, clear
gen group= 1 if inrange(month, 1, 3) & inrange(hospital, 1, 18)
replace group=2 if inrange(month, 1, 3) & inrange(hospital, 19, 46)
replace group=3 if inrange(month, 4, 7) & inrange(hospital, 1, 18)
replace group=4 if inrange(month, 4, 7) & inrange(hospital, 19, 46)
label define group 1 "pre-treated" 2 "pre-control" 3 "post-treated" 4 "post-control"
label values group group
*multiple logit
forval x = 1/4{
mlogit group i.frequency, baseoutcome(`x')
predict psa`x'
}
gen psa = psa1+psa2+psa3+psa4
tab psa
*single logit
gen pretreated=0
replace pretreated=1 if group==1
gen precontrol=0
replace precontrol=1 if group==2
gen posttreated=0
replace posttreated=1 if group==3
gen postcontrol=0
replace postcontrol=1 if group==4
logit pretreated i.frequency
predict psb1
logit precontrol i.frequency
predict psb2
logit posttreated i.frequency
predict psb3
logit postcontrol i.frequency
predict psb4
gen psb = psb1+psb2+psb3+psb4
tab psb
I am aware that there is a user written package 'diff' which accomplishes PSM-DiD but this comes with the restriction of only being allowed to match via kernel-matching, which I am not interested in.

Comment