For some data sets, PROC PSMATCH fails to generate propensity scores and PROC LOGISTIC is able to generate them using the same model. The PSMATCH procedure issues the following warning, or stops processing and issues these errors in addition to the warning:
WARNING: The maximum likelihood estimates for the logistic regression model might not exist. The maximum likelihood estimates are based on the last maximum likelihood iteration.
ERROR: Floating Point Overflow.
ERROR: Termination due to Floating Point Exception
To work around the problem, you can use propensity scores computed by PROC LOGISTIC in the PSDATA statement in PROC PSMATCH. For example, suppose this is your PROC PSMATCH code:
proc psmatch data=dset;
class y A B;
psmodel y(treated='1')=A B C;
run;
Run the same model in PROC LOGISTIC, and save the propensity scores to a data set using an OUTPUT statement:
proc logistic data=dset;
class A B;
model y(event='1')=A B C;
output out=LogisticOutput p=ps;
run;
Then read the propensity score data set and specify a PSDATA statement as follows:
proc psmatch data=LogisticOutput;
class y A B;
psdata ps=ps treatvar=y(treated='1');
run;