Announcement

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

  • Missing values for pscore after running psmatch2

    I am conducting psmatch2 to predict a treatment variable which has 1901 control and 375 treatment cases. After I run the psmatch2 to predict this variable from the covariates there are now 374 treatment to 374 control after I weight it using the _weight variable. I have several cases in the data that do not have values for the newly created variables such as _pscore, _treated, and _support, and one of these cases is in the treatment group.

    I am trying to understand, why would there be cases without a pscore?

    Thanks.
    Last edited by Gary Zhang; 18 Nov 2019, 11:41.

  • #2
    You would need to show some of your code and results, or a lot more explanation, for me to provide a complete diagnosis (if that is possible), but the following is my guess.

    First, the one treatment case may be outside of common support; that is, its pscore is higher than the highest pscore of the control group or lower than the lowest pscore of the control group. Or that one pscore may not be matched because it is outside the caliper or radius that you specified.

    Second, I suspect the other control cases don't have pscores because you specified 1-to-1 matching without replacement, which by design yields exactly the same number of control cases as treatment cases.
    David Radwin
    Senior Researcher, California Competes
    californiacompetes.org
    Pronouns: He/Him

    Comment


    • #3
      Thank you for your reply.

      I specified 1 to 1 matching but with replacement. I didn't specify any radius or caliper before, but when I do specify one I can no longer use an fweight. See below for a text file.

      I am trying to get the total numbers in the last table to be 375, not 374. There is the one treatment case without a p score after matching.
      Attached Files
      Last edited by Gary Zhang; 19 Nov 2019, 09:59.

      Comment


      • #4
        Thank you for sharing your output. I have a hunch as to why that one treatment case is not matched. Lines 22-26 of your output (see below) show that 18 cases are dropped from the logistic regression. If one of those 18 cases is a treatment case, it won't have a pscore calculated for it, and without a pscore, it cannot be matched.

        Code:
        note: native_1516 != 0 predicts success perfectly
              native_1516 dropped and 1 obs not used
        
        note: hawpi_1516 != 0 predicts failure perfectly
              hawpi_1516 dropped and 17 obs not used
        You can check whether my hunch is correct with
        Code:
        . tabulate participation native_1516, missing
        . tabulate participation hawpi_1516, missing
        David Radwin
        Senior Researcher, California Competes
        californiacompetes.org
        Pronouns: He/Him

        Comment


        • #5
          Yes, so one of the cases was the treatment case and so it got dropped.

          Is there anyway to prevent the one treatment case from getting dropped? I recoded some variables, but that is still the only case that predicts failure perfectly and gets dropped.

          Thank you.


          Attached Files

          Comment


          • #6
            Sorry, probably not. You can try changing the logistic model, but that might be worse than dropping one case.
            David Radwin
            Senior Researcher, California Competes
            californiacompetes.org
            Pronouns: He/Him

            Comment

            Working...
            X