0

I am working on Propenstiy Score Matching with Stata 17.

I use userwritten command kmatch to automatically estimate the bandwith for kernel matching, but I prefer the balancing outputs of psmatch2.

Hence, I estimate the optimal bandwith with kmatch, copy paste it into psmatch2 and run the command. However, they don't match the same number of observations although (as far as I see) the specifications are the same. I guess one command has some default setting that I don't see that makes the results different.

For example the following commands produce a similar ATT but the former only uses half as many control observations.

kmatch ps D (Y), pscore(PSD) kernel(epan) bwidth(0.05) att

psmatch2 D, outcome(Y) pscore(PSD) kernel bwidth(0.05) 

kmatch ends up using less control observations than psmatch2. Epan. is the default kernel for psmatch2 hence it is not specified. ATT is also the default. D and Y do not have any missings.

I want to understand where the difference comes from.

Anis
  • 5
  • 3
  • Cross-posted at https://www.statalist.org/forums/forum/general-stata-discussion/general/1499320-kmatch-bandwidth – Nick Cox Mar 12 '23 at 16:05
  • I think that psmatch2 when ATT is specified just puts all controls on support. There is no need to exclude any controls so they are all "on support" but this does not mean that they are in fact matched! (_weight stores a value for each unit that is used, so here one can see which control unit was matched). This could explain why the number of units "used" differs, but not why the results are different. – Anis Mar 18 '23 at 14:57

0 Answers0