Announcement

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

  • PSMATCH2: one to one matching

    I would like to get a matched sample by running the code below
    Code:
    psmatch2 y x1 x2, logit common
    Is this the correct code to do a one to one matching using logit regression on common support?

    If so, why do I get the below results.
    Code:
    count if _nn == 1
    This gives more than 2000 observations.

    Code:
    count if _nn == 0
    This gives more than 7000 observations.

    Shouldn't they output the same number of observations if it is a one to one matching?

  • #2
    psmatch2 treatvar x1 x2, out(y) common noreplacement

    Comment


    • #3
      Originally posted by George Ford View Post
      psmatch2 treatvar x1 x2, out(y) common noreplacement
      I do not include out(y), is this a must? I added the option of noreplacement, but it still did not give one-to-one matching.

      Comment


      • #4
        that's the way psmatch2 works. the help file is incorrect, but you see it in the examples.

        Comment


        • #5
          I see. Is there any other command that can give me just the matched sample based on propensity score without testing the effect on the final outcome y?

          Comment


          • #6
            Try estimating a propensity score (probit) and then using nnmatch (not teffects nnmatch, but nnmatch). You may need to ssc install nnmatch. You can set the neighbors to 1.

            Or just using nnmatch on the x's may suffice.

            Comment


            • #7
              Thanks for the suggestion George. After I get propensity score, shall I use the propensity score as the depvar in the syntax described below?


              nnmatch depvar treatvar varlist_nnmatch [if exp] [in range] [pw] [, tc(ate |att |atc) m(#) metric(maha |matname) exact(varlist_ex) biasadj(bias |varlist_adj) robust(#_v) population level(#) keep(filename) replace]

              Comment


              • #8
                give it a try. varlist will be the propensity score, and m(1).

                If you just want the matched sample, I suppose you could run psmatch and mark e(sample).

                Or, you could use Coarsened Exact Matching and Xs. A k2k match gives you 1:1 (and you can loop it to get more then 1:1).

                Comment

                Working...
                X