SAS PSMATCH

 

https://support.sas.com/documentation/onlinedoc/stat/142/psmatch.pdf

p. 7679 about three options.

The PSMATCH procedure optionally matches observations in the treated and control groups. The procedure
provides three strategies for propensity score matching.
 Greedy nearest neighbor matching selects the control unit nearest to each treated unit. Greedy nearest
neighbor matching is done sequentially for treated units and without replacement.
 Optimal matching selects all control units that match each treated unit by minimizing the total absolute
difference in propensity score across all matches. Optimal matching selects all matches simultaneously
and without replacement. Three methods for optimal matching are available: fixed ratio matching,
variable ratio matching, and full matching.
 Matching with replacement selects the control unit that best matches each treated unit. Each control
unit can be matched to more than one treated unit, but it can only be matched to the same treated unit
once.

SAS Propensity Score Matching

 

The results will be different every time you run this syntax.

proc psmatch data=psm1new2 region=cs;
class FLAG common_district SCHOOL_NAME white;
psmodel FLAG(Treated="Y")=pre_15 common_district gpa
black hispanic asian other
male ;
match method=greedy(order=random) exact=common_district stat=lps caliper=0.25;
output out(obs=match)=outgs2 lps=_Lps matchid=_matchID;
run;

The results are the same/constant.

proc psmatch data=psm1new2 region=cs;
class FLAG common_district SCHOOL_NAME white;
psmodel FLAG(Treated="Y")=pre_15 common_district gpa
black hispanic asian other
male ;
match method=greedy(k=1) exact=common_district stat=lps caliper=0.25;
output out(obs=match)=outgs2 lps=_Lps matchid=_matchID;
run;