BookmarkSubscribeRSS Feed
ms2370
Calcite | Level 5

Hello,

I was creating propensity scores to compare a treatment (variable- 'obs,' treatment - 'case', no treatment- 'control') with several demographic variables to create the scores. I had success with the following code.

ods graphics on;
proc psmatch data=ribs.casecontrols region=cs;
	class obs gender race ethnicity copd asthma smoker flail side;
	psmodel obs(Treated='case')= gender race ethnicity copd asthma smoker 
			flail side age bmi charlson num_rib chest_ais ISS;
	match method=greedy(k=3) stat=lps caliper=0.25;
	assess lps var=(gender race ethnicity copd asthma smoker flail side age
			bmi charlson num_rib chest_ais ISS) / weight=none plots=(boxplot 
			barchart);
	output out(obs=match)=ribs.final lps=_Lps matchid=_MatchID;
run;

However, I realized that I forgot 4 continuous variables and added them to the above code.

ods graphics on;
proc psmatch data=ribs.casecontrols region=cs;
	class obs gender race ethnicity copd asthma smoker flail side;
	psmodel obs(Treated='case')= gender race ethnicity copd asthma smoker 
			flail side age bmi charlson num_rib chest_ais ISS prbc ffp plt 
			cryo;
	match method=greedy(k=3) stat=lps caliper=0.25;
	assess lps var=(gender race ethnicity copd asthma smoker flail side age 
			bmi charlson num_rib chest_ais ISS prbc ffp plt cryo) / 
			weight=none plots=(boxplot barchart);
	output out(obs=match)=ribs.final1 lps=_Lps matchid=_MatchID;
run;

I suddenly get the following error: ERROR: The support region does not exist.

 

I don't understand. The variables I added are actually not significantly different between cases and controls, so I assumed the change would result in very little change. I tried eliminating the CALIPER constraint and it didn't help. Can someone shed light? Any recommendations moving forward?

 

Thank you (I run SAS v9.4)

6 REPLIES 6
SteveDenham
Jade | Level 19

This is only a guess, but since you limit the support region to the controls, it might be a situation where the measurements for at least one of your continuous variables in the treated group are wholly outside the region for the control group.  I'm sorry I don't have a work-around, but you might try REGION=ALLOBS and at least see if you get the same error message.

 

SteveDenham

MichaelL_SAS
SAS Employee

@SteveDenham has the right idea, that error message indicates that there is no overlap in propensity score values for the two treatment conditions so the common support region does not exist.

 

You might try adding the four variables only to the ASSESS statement and not the PSMODEL statement. You can use the ASSESS statement to assess the balance achieved for any continuous or binary variable in the input data set, not just the variables used in the propensity score model. It might (hopefully) be the case that even if those variables are not included in the propensity score model good balance is still achieved in the matched data. 

ms2370
Calcite | Level 5

Thank you so much for spelling that out for me, that helped. I re-ran the code with adding those four variables in just the ASSESS statement, but oddly enough it gave me the same error code. I double checked and there weren't any errors in data entry for those variables.

MichaelL_SAS
SAS Employee

Hmm, not what I would have expected. If this issue persists, I'd recommend possibly reaching out to SAS Technical Support to see if they can help resolve the issue. For this type of problem I suspect they'd likely ask if you can share the data with them since it is tricky problem to diagnose. 

 

That said I would also second @SteveDenham suggestion of trying to match on precomputed propensity scores as demonstrated in Example 98.8 of the PROC PSMATCH documentation. You can see if PROC LOGISTIC provides any additional information about possible issues with fitting the model or maybe if it helps resolve the issue. 

 

I believe there was a bug  in PROC PSMATCH fixed in SAS/STAT 15.1 where observations that had missing values for variables listed in the ASSESS statement but not the PSMODEL statement were not used to fit the propensity score model. This is grasping at straws, but if there are missing values in any of those four continuous variables, this bug (assuming you're using a version of SAS before it was fixed) could lead to different propensity score models and explain why you see the error message when you only add the variables to the ASSESS statement. Matching on the precomputed propensity score values predicted by PROC LOGISTIC would be one workaround for this issue (if it is the issue). 

 

 

 

 

ms2370
Calcite | Level 5

hey, i forgot to say that I had tried REGION=allobs as well and got the same error message. thank you for explaining, though, that makes sense

SteveDenham
Jade | Level 19

It is starting to sound like a complete or quasi-complete separation issue when the continuous variables are included.  I am not familiar enough with PSMATCH to know if there are alternative algorithms (like Firth) for fitting the logistic part.  The last example in the online documentation does present how to use PROC LOGISTIC first to generate a data set, and then use the PSDATA statement to import the logits.  You might consider this approach and see what happens (no guarantees at all on this, though).

 

SteveDenham

Ready to join fellow brilliant minds for the SAS Hackathon?

Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.

Register today!
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
  • 6 replies
  • 1967 views
  • 1 like
  • 3 in conversation