BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.

Hello!

 

My question is about SAS MIP 2.4. 

 

I have a test portfolio with 2 dates for 3 loans (01JUL and 01AUG), so I have 6 records in portfolio DS. I have economics scenario data set with only one (base) scenario. My As-of-date is 01JUL, Monte Carlo simulation is disabled, and number of horizons to simulate is 1. I created the following simple UDL to see MIP iteration approach:

 

BEGINBLOCK LOAN_INIT;													
ENDBLOCK;

BEGINBLOCK MAIN;
	if (simulationhorizon eq 0) then do;		
	end; else do;
	end;
	
        put "SIMULATION_HORIZON=" simulationhorizon;
        put "InstId=" InstId;
        put "MCSimulationRep=" MCSimulationRep;
            		
	_VALUE_ = 1.0; 
ENDBLOCK;

 

As a result I got the following output in log:

 

SIMULATION_HORIZON= 0
InstId= L1
MCSimulationRep= 1


SIMULATION_HORIZON= 0
InstId= L1
MCSimulationRep= 1


SIMULATION_HORIZON= 0
InstId= L2
MCSimulationRep= 1


SIMULATION_HORIZON= 0

InstId= L2
MCSimulationRep= 1


SIMULATION_HORIZON= 0
InstId= L3
MCSimulationRep= 1


SIMULATION_HORIZON= 0
InstId= L3
MCSimulationRep= 1


SIMULATION_HORIZON= 0
InstId= L1
MCSimulationRep= 1


SIMULATION_HORIZON= 1
InstId= L1
MCSimulationRep= 1


SIMULATION_HORIZON= 0
InstId= L1
MCSimulationRep= 1


SIMULATION_HORIZON= 1
InstId= L1
MCSimulationRep= 1


SIMULATION_HORIZON= 0
InstId= L2
MCSimulationRep= 1


SIMULATION_HORIZON= 1
InstId= L2
MCSimulationRep= 1


SIMULATION_HORIZON= 0
InstId= L2
MCSimulationRep= 1


SIMULATION_HORIZON= 1
InstId= L2
MCSimulationRep= 1


SIMULATION_HORIZON= 0
InstId= L3
MCSimulationRep= 1


SIMULATION_HORIZON= 1
InstId= L3
MCSimulationRep= 1


SIMULATION_HORIZON= 0
InstId= L3
MCSimulationRep= 1


SIMULATION_HORIZON= 1
InstId= L3
MCSimulationRep= 1

 

But according to documentation I expected to see the following:

 

SIMULATION_HORIZON= 0
InstId= L1
MCSimulationRep= 1


SIMULATION_HORIZON= 1
InstId= L1
MCSimulationRep= 1

 

SIMULATION_HORIZON= 0
InstId= L2
MCSimulationRep= 1

 

SIMULATION_HORIZON= 1
InstId= L2
MCSimulationRep= 1

 

SIMULATION_HORIZON= 0
InstId= L3
MCSimulationRep= 1

 

SIMULATION_HORIZON= 1
InstId= L3
MCSimulationRep= 1

 

Why does MIP perform so many iterations with the same combination of SIMULATION_HORIZON and InstId?

1 ACCEPTED SOLUTION

Accepted Solutions
AMSAS
SAS Super FREQ

Hi Dmitry,

 

Sorry for the delay getting back on this question - I've been testing and researching the answer

SAS &reg Model Implementation Platform, generates and executes SAS &reg High-Performance Risk code. The behavior you are seeing is legacy code from SAS HP Risk. Customers who used earlier releases of HP Risk, used this behavior in their User Defined Logic, so to insure their UDL did not break in newer versions the behavior was maintained.

There is a automatic variable that you can print to the log (_BASELINE_), for your 2 log lines in red this will be set to 0 (zero) and then set to 1 for all the remaining lines.

Thanks

Andy

View solution in original post

4 REPLIES 4
AMSAS
SAS Super FREQ

Hello,

 

I have been investigating your question, and I suspect that you have duplicate values for InstId in your portfolio dataset and the values are required to be unique. Please check, correct and retest your portfolio dataset if that is the case.


If you are still having issues, please open a SAS Technical Support track (link below) and I will investigate further.

https://support.sas.com/en/support-home.html

Thanks

Andy

DmitryErshov
Obsidian | Level 7

Hi, Andy!

 

Thanks for reply. You are right. We can't load data for several dates to portfolio data set. After I removed duplicate values the output was much more expectable:

 

SIMULATION_HORIZON= 0
InstId= L1
MCSimulationRep= 1


SIMULATION_HORIZON= 0
InstId= L2
MCSimulationRep= 1

 

SIMULATION_HORIZON= 0
InstId= L1
MCSimulationRep= 1

 

SIMULATION_HORIZON= 1
InstId= L1
MCSimulationRep= 1

 

SIMULATION_HORIZON= 0
InstId= L2
MCSimulationRep= 1

 

SIMULATION_HORIZON= 1
InstId= L2
MCSimulationRep= 1

 

But, one question remains: why does MIP iterate through all loans at SIMULATION_HORIZON = 0 (these iterations highlited with red color)? 

 

Regards,

Dmitry

AMSAS
SAS Super FREQ

Hi Dmitry,

 

Sorry for the delay getting back on this question - I've been testing and researching the answer

SAS &reg Model Implementation Platform, generates and executes SAS &reg High-Performance Risk code. The behavior you are seeing is legacy code from SAS HP Risk. Customers who used earlier releases of HP Risk, used this behavior in their User Defined Logic, so to insure their UDL did not break in newer versions the behavior was maintained.

There is a automatic variable that you can print to the log (_BASELINE_), for your 2 log lines in red this will be set to 0 (zero) and then set to 1 for all the remaining lines.

Thanks

Andy

DmitryErshov
Obsidian | Level 7

Thanks a lot for clarification, Andy!

 

Regards,

Dmitry