I used PROC PSMATCH to run a greedy 1:3 matching with caliper of 0.1 of std of logit of ps and get the matched output with lps, ps attached. I also ran a logistic regression model using exactly the same set of covariates to obtain ps and lps, but then found the PS calculated from PROC PSMATCH is slightly different from the PS estimated from logistic regression model. For example, obs A from PROC PSMATCH got PS=0.0843553047 and got PS= 0.0843554561 from PROC LOGISTIC. I thought PROC PSMATCH uses logistic regression model as well. Then it should be the same as what I got from PROC LOGISTIC, unless PROC PSMATCH has some particular settings in the mode part. Does anyone come across the same issue? Can you tell what is the cause of the difference? The codes I used are as below proc psmatch data=ps_dat region=allobs;
class treatment age_cat pre_med_01;
psmodel treatment (Treated='1')= age_cat pre_med_01;
match method =greedy(k=1) caliper=.;
assess lps allcov /* plots=all*/;
output out(obs=all)=cdtvnas.sas_match_test lps=_Lps matchid=_MatchID;
run;
proc logistic data=ds;
class age_cat pre_med_01;
model treatment (event='1') = age_cat pre_med_01;
output out=test1 prob=ps xbeta=logit;
run;
... View more