As @Rick_SAS pointed out, the PSMATCH procedure only supports binary treatment variables, and all the balance diagnostics it produces are informed by this condition. Namely, all the balance diagnostics are for comparing two groups, a treatment level to a control level.
For inverse probability weighting, you in theory could try to use multiple runs of PROC PSMATCH to generate separate high-low and high-no comparisons. You would have to subset the data for each call, but the real trick to doing so would be appropriately modifying the input “propensity score” values so they result in the appropriate weight. This would require being familiar with 1) what those appropriate weights are 2) how PROC PSMATCH computes inverse probability weights from the input propensity scores, as described in the documentation, and 3) being aware of the fact that PROC PSMATCH assumes the value of the variable listed in the PS= option is always the predicted probability of receiving the designated treatment level (the TREATED= level). What the appropriate modification would be then depends on if you’re interested in estimating the ATE or ATT (note by default PROC PSMATCH uses IPTW ATT weights). One issue you might run into with this approach is if the modified propensity score values don’t result in any overlap between the treatment conditions, in which case PROC PSMATCH will return an error. You would also want to make sure ALLOBS support region is used (which is the default PROC PSMATCH uses for inverse probability weighting) so you don’t end up excluding data unexpectedly.
All that said, what is probably easier is to just compute the appropriate IPW weights directly in a bit of data step code and then produce your own weighted diagnostics using PROC SGPLOT and PROC FREQ. Would probably be much less error prone.
... View more