Announcement

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

  • Different common supports in pscore and psmatch2 commands

    Hi everyone,

    I want to estimate the effect of a training on a group of persons. I have a treated and a control group, and I would like to calculate a propensity score, first to decide if I keep everyone or only those in the common support, and then to introduce inverse probability weighting based on the propensity score.

    My first step is to estimate the pscore and get the common support.
    I did it using the "pscore" command and the "psmatch2" command.
    Both commands provide the same propensity score, but the common supports produced by the two commands are different.

    Here are my commands:

    psmatch2 treatedgroup x1 x2 x3, com

    pscore treatedgroup x1 x2 x3, pscore (pscore2) comsup

    I got those propensity scores:

    sum pscore2

    Variable | Obs Mean Std. Dev. Min Max
    -------------+--------------------------------------------------------
    pscore2 | 613 .128659 .137982 2.88e-57 .8803939

    . sum _pscore

    Variable | Obs Mean Std. Dev. Min Max
    -------------+--------------------------------------------------------
    _pscore | 613 .128659 .137982 2.88e-57 .8803939




    And those common support:


    tab _support

    psmatch2: |
    Common |
    support | Freq. Percent Cum.
    ------------+-----------------------------------
    Off support | 5 0.82 0.82
    On support | 608 99.18 100.00
    ------------+-----------------------------------
    Total | 613 100.00

    tab comsup if pscore2!=.

    Dummy for |
    obs. in |
    common |
    support | Freq. Percent Cum.
    ------------+-----------------------------------
    0 | 125 20.39 20.39
    1 | 488 79.61 100.00
    ------------+-----------------------------------
    Total | 613 100.00



    Why are the two common supports different and which one am I supposed to "trust" ?
    Are they calculated in a different way ?

    Thank you for your help.
    Last edited by Mathilde Bauwin; 16 Feb 2017, 07:29.

  • #2
    Hi Mathilde Bauwin

    I am also looking for an answer to this issue, off support sample difference is stark for me (8 in psmatch2 vs 996 in pscore).

    I believe the pscore comsup option trims the controls that are out of support, i.e. replicates below:
    Code:
    summ ps if source
    replace ps = . if ps < r(min) | ps > r(max)
    But for psmatch there seems to be a discrepancy between what the help file says and what it really does.
    Help file:
    "common imposes a common support by dropping treatment observations whose pscore is higher than the maximum or less than the minimum pscore of the controls."
    However the cross tab seems to show that it has inflated my treated sample in _treated and found only 8 off support in the control group (i.e. did not drop treatment obs):
    Code:
          . tab source _support
                    |   psmatch2: Common
       Dataset |        support
        source | Off suppo  On suppor |     Total
    -----------+----------------------+----------
         HILDA |         8      8,106 |     8,114
            ND |         0        187 |       187
    -----------+----------------------+----------
         Total |         8      8,293 |     8,301
    
    . tab _treated _support
    
     psmatch2: |   psmatch2: Common
     Treatment |        support
    assignment | Off suppo  On suppor |     Total
    -----------+----------------------+----------
     Untreated |         8      7,523 |     7,531
       Treated |         0        770 |       770
    -----------+----------------------+----------
         Total |         8      8,293 |     8,301
    I found it was acknowledged previously in an archived post here:
    HTML Code:
    https://www.stata.com/statalist/archive/2009-03/msg00429.html
    But unfortunately no guidance as to which one to "trust" or how the calculations differ.

    Did you manage to find an answer?

    Kind regards
    Hannah
    Last edited by Hannah Beilby; 12 Jun 2024, 22:02.

    Comment


    • #3
      Hi again,

      Believe my error was because I had misinterpreted the psmatch2 syntax and had:
      Code:
      psmatch2 ovar tvar xlist
      instead of:
      Code:
      psmatch2 tvar xlist, outcome(ovar)
      I get the same off support at pscore using the second syntax. Hope that helps someone!

      Hannah

      Comment

      Working...
      X