Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Implementing radius matching using teffects psmatch

    Hi Stata list,

    I would like some help understanding the 'radius' option in psmatch2, and whether it is possible to replicate this option using teffects psmatch2. My goal is to use teffects psmatch to implement a radius matching approach for an ATET estimator (with replacement), in which all observations in the comparison group falling within the specified caliper are matched to each treatment observation. So far I have not managed to replicate the same ATET in teffects psmatch as I get in psmatch2 using the 'radius' option, and I am not sure of the reasons for the difference.

    I can replicate the same ATET using teffects psmatch and psmatch2 for a nearest neighbour matching approach within a maximum caliper, as follows:

    webuse cattaneo2.dta, cl

    teffects psmatch (bweight) (mbsmoke mmarried mhisp fhisp foreign alcohol deadkids ///
    mage medu fage, logit), atet caliper(0.3)

    psmatch2 mbsmoke mmarried mhisp fhisp foreign alcohol deadkids mage medu fage, ///
    out(bweight) ties logit cal(0.3)


    These commands produce an identical ATET of-238.834, with up to 16 nearest neighbours selected. However, I cannot replicate in teffects psmatch what I get from the following call of psmatch2 (adding the 'radius') option:

    psmatch2 mbsmoke mmarried mhisp fhisp foreign alcohol deadkids mage medu fage, ///
    out(bweight) ties logit cal(0.3) radius


    Is it possible to replicate the output from the psmatch2 'radius' option in teffects psmatch, and can anyone guide me on how this version of psmatch2 differs in practice from the k-1 matching performed by the previous version of the command (which matched each treatment observation with up to 16 controls).

    Thank you!
    Molly
    Last edited by Molly Scott; 28 Oct 2022, 05:22.
Working...
X