Announcement

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

  • PSM matching procedure using -psmatch2-

    Hello all, I am using PSM to analyze a data. Now I've come to the phase of matching and I want to use -psmatch2-. My question is what if I want to do a one-to-many matching process? Which option I should use? Below is my syntax

    Code:
    psmatch2 retain_k Gender age w1_dis12 w1_eth6 ELL FRL INCLUSION SUSPENSION, outcome(sa3lw_w) caliper(0.025) logit
    in which retain_k is the treatment variable, the rest of them are predictors. The outcome is sa3lw_w. Since sample size is a concern to me, so I want to match one treated unit with multiple contrast units. Any help please? Thanks!

  • #2
    The help file of -psmatch2- shows that there is an option for "k-Nearest neighbors matching". As such, say, matching 1 treated unit with 3 controls can be done by:
    Code:
    psmatch2 retain_k Gender age w1_dis12 w1_eth6 ELL FRL INCLUSION SUSPENSION, outcome(sa3lw_w) n(3) logit
    Ho-Chuan (River) Huang
    Stata 19.0, MP(4)

    Comment


    • #3
      Hi Dr. Huang, thanks for your response. May I ask another follow-up question? What if I want to match the treated unit according to the range of propensity score? For instance, I found my propensity score ranges from 0.04 to 0.6 and for propensity score that ranges from 0 to 0.25, there are 148 treated units and 597 control units; for propensity score that ranges from 0.25 to 0.6, there are 399 treated units and 770 control units. So, I am thinking to match one treated units with up to 4 control units when propensity score is from 0 to 0.25 while matching one treated units with 2 control units when propensity score ranges from 0.25 to 0.6. Is it possible to achieve this using -psmatch2-? Thanks!

      Comment


      • #4
        I don't know whether -psmach2- can be tailored to your "uncommon" purpose.

        Ho-Chuan (River) Huang
        Stata 19.0, MP(4)

        Comment


        • #5
          Hi Dr. Huang, that's okay. By the way, I tried to added the option -n(4)- to the syntax but the output shows there is no change of the number of treated and control groups. Any clue of why this is happening? Below is my output and if you scroll down to the very last, the total number of treated and controls stays the same to the syntax without the option -n(4)-.

          Code:
           psmatch2 retain_k Gender age w1_dis12 w1_eth6 ELL FRL INCLUSION SUSPENSION, outcome(sa3lw_w) n(4) caliper
          > (0.025) logit
          
          Logistic regression                               Number of obs   =       1010
                                                            LR chi2(8)      =      48.05
                                                            Prob > chi2     =     0.0000
          Log likelihood = -595.46786                       Pseudo R2       =     0.0388
          
          ------------------------------------------------------------------------------
              retain_k |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
          -------------+----------------------------------------------------------------
                Gender |   .0462147    .154232     0.30   0.764    -.2560745     .348504
                   age |  -.1861221   .0421003    -4.42   0.000    -.2686372   -.1036071
              w1_dis12 |   .0753312   .0235864     3.19   0.001     .0291026    .1215597
               w1_eth6 |  -.2750331    .099367    -2.77   0.006    -.4697889   -.0802774
                   ELL |  -.2043375   .2332559    -0.88   0.381    -.6615108    .2528358
                   FRL |  -.1452465   .1492246    -0.97   0.330    -.4377213    .1472282
             INCLUSION |    .155596   .2483997     0.63   0.531    -.3312584    .6424505
            SUSPENSION |   .2665506   .1657102     1.61   0.108    -.0582355    .5913367
                 _cons |   .9555144   .5634468     1.70   0.090    -.1488212     2.05985
          ------------------------------------------------------------------------------
          There are observations with identical propensity score values.
          The sort order of the data could affect your results.
          Make sure that the sort order is random before calling psmatch2.
          ----------------------------------------------------------------------------------------
                  Variable     Sample |    Treated     Controls   Difference         S.E.   T-stat
          ----------------------------+-----------------------------------------------------------
                   sa3lw_w  Unmatched | 484.271242   487.538352  -3.26711044   2.62925164    -1.24
                                  ATT | 484.271242   488.145153  -3.87391068   3.05803601    -1.27
          ----------------------------+-----------------------------------------------------------
          Note: S.E. does not take into account that the propensity score is estimated.
          
                     | psmatch2:
           psmatch2: |   Common
           Treatment |  support
          assignment | On suppor |     Total
          -----------+-----------+----------
           Untreated |       704 |       704 
             Treated |       306 |       306 
          -----------+-----------+----------
               Total |     1,010 |     1,010

          Comment


          • #6
            Could someone help me?

            I have been having problems with STATA 15.1. I think the update has caused problems. I applied the NSW - PSID database, article by Becker and Ichino (2002) with Stata syntax. The Stata Journal (2002) 2, Number 4, pp. 358-377

            STATA 13.1

            psmatch2 t age black hisp marr re74 re75 re78 u74 u75 age2 educ2 re742 re752 blacku74, outcome (educ) common

            NO PROBLEM


            STATA 15.1
            psmatch2 t age black hisp marr re74 re75 re78 u74 u75 age2 educ2 re742 re752 blacku74, outcome (educ) common

            WITH PROBLEMS

            match_pscore (): 3200 conformability error
            <istmt>: - function returned error

            WHY DOES IT HAPPEN? DOES ANYONE HAVE A SOLUTION?

            Thanks for your help

            Comment


            • #7
              Hi Dr Huang

              If i have 2 different outcomes (grad) and (income) in the same study cohort, do I have to do separate matching process for each outcome measure? "grad" is binary and "income" is continuous.

              psmatch2 $treatment $dlist, outcome(grad) caliper (0.4) ate logit common
              psmatch2 $treatment $dlist, outcome(income) caliper (0.4) ate logit common

              I tried 2 different matching process and got different number of treatment and control for each (48 sample size for grad and 68 for income).

              Did I do the matching correctly?

              Thank you so much in advance.

              Comment

              Working...
              X