BookmarkSubscribeRSS Feed
Bob291032
Calcite | Level 5
I am using PROC ASSIGN to perform optimal matching on a set of cases and a set of controls using a simple distance measure between cases and controls. I am unwilling to accept a match if the distance is greater than X, where X is between 0 and 1. Thus, if a cell in the distance matrix I am sending to PROC ASSIGN has a node with a distance greater than X, I set that node to missing (.). This prevents PROC ASSIGN from matching that case/control combination thereby ensuring no matches with a distance greater than X. If I set X very high, PROC ASSIGN succeeds in matching all of my cases to their optimal controls. If I set X a bit lower, PROC ASSSIGN succeeds in matching most of my cases to their optimal control and some cases just don't get matched (which is what I want). However, If I set X too low, PROC ASSIGN fails with the error, "The problem is infeasible. The output data set shows the assignments made before the infeasibility was found."

I've reviewed the relevant SAS docs and the only information they have about infeasibility is for a given case-control where with a missing distance. But in my case, that's not what's triggering the error (I don't think) as having a missing distance for some cases and controls only gives off the infeasibility error when the ratio of missing cases is beyond some threshold (or something like that).

So what does "The problem is infeasible. The output data set shows the assignments made before the infeasibility was found." mean? Is the resulting match non-optimal? Is the resulting match valid? I can accept if it is less than optimal, but does SAS just error out and stop trying at the point of the error, and if so, how early is this triggered? If it's after most of the good matches have been made, again, I can accept that.

Please advise.

Thanks!
-Bob
2 REPLIES 2
Doc_Duke
Rhodochrosite | Level 12
Perhaps you should update your program to the newer procedures, per this note on support.sas.com. "You can find documentation about the ASSIGN procedure (SAS/OR software) in the SAS/OR User's Guide (online or hard copy) through SAS 8. Beginning in SAS 9, use PROC LP or PROC OPTLP instead of PROC ASSIGN. "

In SAS 9.2, the OPTLP procedure includes an option called IIS that will help you identify the problem. See
http://support.sas.com/documentation/cdl/en/ormpug/63352/HTML/default/viewer.htm#ormpug_optlp_sect01...

I've not used either procedure, so you'll need to take it from there.

Doc Muhlbaier
Duke

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

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
  • 2 replies
  • 1508 views
  • 0 likes
  • 2 in conversation