Hello, I am a student and would greatly appreciate your expert guidance. I plan to perform my analysis using both commands, and have two questions:
1. Matching with replacement
I have conducted decent research and would like to verify this one final time. Do both teffects psmatch and psmatch2 apply matching with replacement? Based on the number of observations and the pattern of covariate matches (as shown in the figure below), it appears that both use replacement. If I want to run the analysis using the same criteria, I need to match with replacement, correct?
(psmatch2)
psmatch2 treat22 lemp ldebt w_roa2 lmarket intan tan a5 if industry_limit==1 & ct==7, outcome(wtfp) logit neighbor(1) caliper(0.2) common
(teffects psmatch)
teffects psmatch (wtfp) (treat22 lemp ldebt w_roa2 lmarket intan tan a5) if industry_limit == 1 & ct == 7, ate nn(1) caliper(0.2)

2. Discrepant regression results
Although the matching appears to be very well balanced, why do the subsequent regression results differ? The teffects psmatch results are statistically significant, whereas those from psmatch2 are not. I have read in several papers that this discrepancy arises from different weighting methods for the controls or common support option, am I right? Which part of the code below should I modify to achieve similar results? I still find it hard to understand why psmatch2 would yield insignificant estimates.
Below are the regression codes for both commands after matching.
(psmatch2)
reghdfe wtfp c.post5##i.treat22 r_ex r_intim r_im lsize intan hhi l.linventory l.lquick if _weight>0 & _weight!=. [aw=_weight] , a(mindustry region year) cl(id) -> insignificant (0.000919, p=0.692, obs=5,654)
reghdfe wtfp c.post5##i.treat22 r_ex r_intim r_im lsize intan hhi l.linventory l.lquick if _weight==1 & _weight!=. [aw=_weight] , a(mindustry region year) cl(id) -> insignificant (-0.0022032, p=0.373, obs=4,379)
(teffects psmatch)
reghdfe wtfp c.post5##i.treat22 r_ex r_intim r_im lsize hhi l.linventory l.lquick if matched==1 & matched!=., a(mindustry region year) cl(id) -> significant (-0.0037801, p=0.024, obs=8,581)
I have studied for four months but have been unable to find an answer, so I am reaching out for your assistance. Please help me. Thank you!
1. Matching with replacement
I have conducted decent research and would like to verify this one final time. Do both teffects psmatch and psmatch2 apply matching with replacement? Based on the number of observations and the pattern of covariate matches (as shown in the figure below), it appears that both use replacement. If I want to run the analysis using the same criteria, I need to match with replacement, correct?
(psmatch2)
psmatch2 treat22 lemp ldebt w_roa2 lmarket intan tan a5 if industry_limit==1 & ct==7, outcome(wtfp) logit neighbor(1) caliper(0.2) common
(teffects psmatch)
teffects psmatch (wtfp) (treat22 lemp ldebt w_roa2 lmarket intan tan a5) if industry_limit == 1 & ct == 7, ate nn(1) caliper(0.2)
2. Discrepant regression results
Although the matching appears to be very well balanced, why do the subsequent regression results differ? The teffects psmatch results are statistically significant, whereas those from psmatch2 are not. I have read in several papers that this discrepancy arises from different weighting methods for the controls or common support option, am I right? Which part of the code below should I modify to achieve similar results? I still find it hard to understand why psmatch2 would yield insignificant estimates.
Below are the regression codes for both commands after matching.
(psmatch2)
reghdfe wtfp c.post5##i.treat22 r_ex r_intim r_im lsize intan hhi l.linventory l.lquick if _weight>0 & _weight!=. [aw=_weight] , a(mindustry region year) cl(id) -> insignificant (0.000919, p=0.692, obs=5,654)
reghdfe wtfp c.post5##i.treat22 r_ex r_intim r_im lsize intan hhi l.linventory l.lquick if _weight==1 & _weight!=. [aw=_weight] , a(mindustry region year) cl(id) -> insignificant (-0.0022032, p=0.373, obs=4,379)
(teffects psmatch)
reghdfe wtfp c.post5##i.treat22 r_ex r_intim r_im lsize hhi l.linventory l.lquick if matched==1 & matched!=., a(mindustry region year) cl(id) -> significant (-0.0037801, p=0.024, obs=8,581)
I have studied for four months but have been unable to find an answer, so I am reaching out for your assistance. Please help me. Thank you!