Hello everyone!
I have a 6-year panel data at the firm-year level. I use 1:4 propensity score matching (PSM) to construct the sample before DID regression. The following is my code for PSM:
After PSM, there are 3 methods to construct the sample for DID estimation. But I do not know which one is correct.
Method 1: directly use the _weight variable as the weight in DID estimation
If method 1 should be used, shall I use fweight, aweight, pweight, or iweight?
At the same time, I notice that the _weight variable generated by psmatch2 is not always an integer. For example, the _weight could be 2.35 for a certain control firm. Can I directly use this non-integer _weight as the weight in the DID estimation?
Method 2:
Suppose that
Treatment firm: T1 → Matched control firms: B C D E
Treatment firm: T2 → Matched control firms: B D M X
As firms B and E are used twice in matching, then the final sample for the DID estimation should contain one T1 firm, one T2 firm, 2 B firms, 1 C firms, 2 D firms, 1 E firm, 1 M firm, and 1 X firm. In other words, I need to include the 6-year values for firms B and D twice in the final panel data used for DID estimation. And there is no weight in DID estimation:
Method 3:
Suppose that
Treatment firm: T1 → Matched control firms: B C D E
Treatment firm: T2 → Matched control firms: B D M X
As firms B and E are used twice in matching, and T1 and T2 are matched with 4 control firms, respectively, then the final sample for the DID estimation should contain 4 T1 firm, 4 T2 firm, 2 B firms, 1 C firms, 2 D firms, 1 E firm, 1 M firm, and 1 X firm. In other words, I need to include the 6-year values for firms B and D twice, 6-year values for firms T1 and T2 four times in the final panel data used for DID estimation. And there is no weight in DID estimation:
May I ask which method is correct? Thanks for the help.
I have a 6-year panel data at the firm-year level. I use 1:4 propensity score matching (PSM) to construct the sample before DID regression. The following is my code for PSM:
Code:
probit treat $psm_ctrl predict pscore if e(sample), pr keep if e(sample) psmatch2 treat, pscore(pscore) neighbor(4) caliper(0.01) drop if missing(_weight)
Method 1: directly use the _weight variable as the weight in DID estimation
Code:
gen treat_post=treat*post reghdfe y treat_post [fweight=_weight], vce(cluster id) absorb(id year)
At the same time, I notice that the _weight variable generated by psmatch2 is not always an integer. For example, the _weight could be 2.35 for a certain control firm. Can I directly use this non-integer _weight as the weight in the DID estimation?
Method 2:
Suppose that
Treatment firm: T1 → Matched control firms: B C D E
Treatment firm: T2 → Matched control firms: B D M X
As firms B and E are used twice in matching, then the final sample for the DID estimation should contain one T1 firm, one T2 firm, 2 B firms, 1 C firms, 2 D firms, 1 E firm, 1 M firm, and 1 X firm. In other words, I need to include the 6-year values for firms B and D twice in the final panel data used for DID estimation. And there is no weight in DID estimation:
Code:
reghdfe y treat_post, vce(cluster id) absorb(id year)
Suppose that
Treatment firm: T1 → Matched control firms: B C D E
Treatment firm: T2 → Matched control firms: B D M X
As firms B and E are used twice in matching, and T1 and T2 are matched with 4 control firms, respectively, then the final sample for the DID estimation should contain 4 T1 firm, 4 T2 firm, 2 B firms, 1 C firms, 2 D firms, 1 E firm, 1 M firm, and 1 X firm. In other words, I need to include the 6-year values for firms B and D twice, 6-year values for firms T1 and T2 four times in the final panel data used for DID estimation. And there is no weight in DID estimation:
Code:
reghdfe y treat_post, vce(cluster id) absorb(id year)
