Announcement

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

  • Combining exact and propensity score matching

    Hi all,

    Would appreciate help with matching on propensity score within bins.

    I have either:

    Code:
    teffects psmatch (wage) (treatment i.year i.industry var1 var2 var3, logit), nn(1)
    or

    Code:
    psmatch2 treatment i.year i.industry var1 var2 var3, outcome(wage) n(1) noreplacement logit
    But I would like the matching to occur at the year X industry level. So that each treated observation in year t industry i is matched to 1 observation in year t industry i.


    Thanks!!!

  • #2
    I am just a student so I can't give you any solid advice, but how I've been taught this is by creating a grouping variable over year and industry, and then "scale" the propensity scores such that each group has it's own designated interval with propensity scores. Then you can use a caliper width such that an observation in group 1 is not matched to an observation in group 5 for example.

    Code:
    egen groupyrind = group(year industry)
    probit treatment i.year i.industry var1 var2 var3
    predict double pscore if e(sample)
    generate double pscore2 = groupyrind*10+pscore
    rsort
    psmatch2 treatment, outcome(wage) n(1) noreplacement caliper(2) pscore(pscore2)

    Comment


    • #3
      Oh! That's clever. Thanks a lot for your help [=

      Comment


      • #4
        Another option is using kmatch, like

        Code:
        kmatch ps treatment var1 var2 var3 (wage), wor nn(1) exact(year industry)
        However, I suggest using kernel matching with (potential) multiple controls, like:

        Code:
        kmatch ps treatment var1 var2 var3 (wage), exact(year industry)
        Best wishes

        (Stata 16.1 MP)

        Comment


        • #5
          Hello, I tried to use "exact function", but it says "option exact() not allowed" any hint what may be wrong?

          Originally posted by Felix Bittmann View Post
          Another option is using kmatch, like

          Code:
          kmatch ps treatment var1 var2 var3 (wage), wor nn(1) exact(year industry)
          However, I suggest using kernel matching with (potential) multiple controls, like:

          Code:
          kmatch ps treatment var1 var2 var3 (wage), exact(year industry)

          Comment


          • #6
            Ondrej Dvoulety

            I believe the option is –ematch– instead of –exact–

            Comment


            • #7
              Indeed, Sandra is correct. It is ematch(varlist). My apologies.
              Best wishes

              (Stata 16.1 MP)

              Comment


              • #8
                Thanks a lot for your help, both of you!

                Comment


                • #9
                  Hi Sandra & Felix

                  Can you advise to subset the matched cohort after Kernel matching?

                  Thanks
                  Phyu

                  Comment

                  Working...
                  X