BookmarkSubscribeRSS Feed
rjz970
Calcite | Level 5

Hello!

 

I am running a PROC PSMATCH, where I have specified that I want two control subjects for each treated subject. The variable _matchwgt_ in the returned dataset should to my understanding take the value 1 for the treated subjects, and 0.5 for the non-treated subjects. However this turns out not to be the case. 

 

Have i misunderstood? Or have I specified something wrong in my code:

 

Thank you in advance 🙂 

 

 

ods graphics on;
proc psmatch data=ud.psmatch;
class f_bolge koen branche_grup udda;
psmodel f_bolge(Treated='1')= branche_grup ajo_bredt_loenbeloeb udda alder koen;
match method=greedy(k=2) exact=(koen branche_grup udda) stat=lps caliper=0.25;
assess lps var=(branche_grup ajo_bredt_loenbeloeb udda alder koen) / weight=none plots=(boxplot barchart);
output out(obs=match)=Outgs lps=_Lps matchid=_MatchID;
run;
1 REPLY 1
MichaelL_SAS
SAS Employee

My guess would be that there are some treated units that are only being matched to one control unit and as a result those control units have a matching ATT weight of 1. I believe when this occurs there should be a warning message printed to the log about some treated units having less than the specified number of controls. This can occur because the number of control units might be less than two times the number of treated units, or given the constraints on the problem (the EXACT= variables and caliper) it might not be feasible to find two unique matches for each treated subject. 

 

 

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

What is ANOVA?

ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 1 reply
  • 539 views
  • 1 like
  • 2 in conversation