- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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)
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
@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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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).
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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