Help using Base SAS procedures

Ds2 code in SAS Event stream processing

Accepted Solution Solved
Reply
Contributor
Posts: 42
Accepted Solution

Ds2 code in SAS Event stream processing

Hi All,

 

Trying to write Proc DS2 code for SAS ESP model, below is the code exported from EMiner:-

 

length _WARN_ $4;

label _WARN_ = 'Warnings' ;

 

length I_Failure $ 12;

label I_Failure = 'Into: Failure' ;

*** Target Values;

array REG2DRF [2] $12 _temporary_ ('1' '0' );

label U_Failure = 'Unnormalized Into: Failure' ;

format U_Failure BEST12.;

*** Unnormalized target values;

ARRAY REG2DRU[2] _TEMPORARY_ (1 0);

 

drop _DM_BAD;

_DM_BAD=0;

 

*** Check Coolant_Level for missing values ;

if missing( Coolant_Level ) then do;

substr(_warn_,1,1) = 'M';

_DM_BAD = 1;

end;

 

*** Check Noise for missing values ;

if missing( Noise ) then do;

substr(_warn_,1,1) = 'M';

_DM_BAD = 1;

end;

 

*** Check Oil_Temparature for missing values ;

if missing( Oil_Temparature ) then do;

substr(_warn_,1,1) = 'M';

_DM_BAD = 1;

end;

 

*** Check Speed for missing values ;

if missing( Speed ) then do;

substr(_warn_,1,1) = 'M';

_DM_BAD = 1;

end;

*** If missing inputs, use averages;

if _DM_BAD > 0 then do;

_P0 = 0.2055244985;

_P1 = 0.7944755015;

goto REG2DR1;

end;

 

*** Compute Linear Predictor;

drop _TEMP;

drop _LP0;

_LP0 = 0;

 

*** Effect: Coolant_Level ;

_TEMP = Coolant_Level ;

_LP0 = _LP0 + ( 0.03716283327255 * _TEMP);

 

*** Effect: Noise ;

_TEMP = Noise ;

_LP0 = _LP0 + ( 1.90253038267245 * _TEMP);

 

*** Effect: Oil_Temparature ;

_TEMP = Oil_Temparature ;

_LP0 = _LP0 + ( 0.05477217759604 * _TEMP);

 

*** Effect: Speed ;

_TEMP = Speed ;

_LP0 = _LP0 + ( 0.00222458951872 * _TEMP);

 

*** Naive Posterior Probabilities;

drop _MAXP _IY _P0 _P1;

_TEMP = -180.133287153081 + _LP0;

if (_TEMP < 0) then do;

_TEMP = exp(_TEMP);

_P0 = _TEMP / (1 + _TEMP);

end;

else _P0 = 1 / (1 + exp(-_TEMP));

_P1 = 1.0 - _P0;

 

REG2DR1:

 

 

*** Posterior Probabilities and Predicted Level;

label P_Failure1 = 'Predicted: Failure=1' ;

label P_Failure0 = 'Predicted: Failure=0' ;

P_Failure1 = _P0;

_MAXP = _P0;

_IY = 1;

P_Failure0 = _P1;

if (_P1 > _MAXP + 1E-8) then do;

_MAXP = _P1;

_IY = 2;

end;

I_Failure = REG2DRF[_IY];

U_Failure = REG2DRU[_IY];

 

*************************************;

***** end scoring code for regression;

*************************************;

*------------------------------------------------------------*;

* TOOL: Score Node;

* TYPE: ASSESS;

* NODE: Score2;

*------------------------------------------------------------*;

*------------------------------------------------------------*;

* Score2: Creating Fixed Names;

*------------------------------------------------------------*;

LABEL EM_EVENTPROBABILITY = 'Probability for level 1 of Failure';

EM_EVENTPROBABILITY = P_Failure1;

LABEL EM_PROBABILITY = 'Probability of Classification';

EM_PROBABILITY =

max(

P_Failure1

,

P_Failure0

);

LENGTH EM_CLASSIFICATION $%dmnorlen;

LABEL EM_CLASSIFICATION = "Prediction for Failure";

EM_CLASSIFICATION = I_Failure;

 

I am able to convert most of the part except the array, can anyone please help me to convert this code in proc DS2 for use in SAS Event stream processing.

 

Thanks in advance.

 

Regards,

Swapna


Accepted Solutions
Solution
4 weeks ago
Super User
Posts: 17,819

Re: Ds2 code in SAS Event stream processing

The array only has 2 values so replace the logic in the IF THEN with a longer IF THEN type structure to get the values. 

 

 

View solution in original post


All Replies
Solution
4 weeks ago
Super User
Posts: 17,819

Re: Ds2 code in SAS Event stream processing

The array only has 2 values so replace the logic in the IF THEN with a longer IF THEN type structure to get the values. 

 

 

Contributor
Posts: 42

Re: Ds2 code in SAS Event stream processing

Thank you Reeza for the help... Smiley Happy

 

Regards,

Swapna

☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 260 views
  • 0 likes
  • 2 in conversation