- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Posted 05-27-2009 02:38 PM
(3550 views)
I have a project where I need to forecast an analysis variable for 12months. I have plenty of data - 24 months worth structured as a transaction dataset. However, the problems are:
1) I have EM 5.3 desktop version which does not include the Time Series node.
2) I do not have ETS which enables Proc Forecast (or Time Series) to run.
3) I installed the Trend Regression extension node provided by the book "Data Preparation" by Gerhart Svolba but it only looks at two timeperiods at a time and only provides a single value; however I do like using the node for other projects.
I do not want to create a separate model to predict a value for each month, ex. "Regression model 1 for month 1" thru "Regression model 12 for month 12".
Does anyone have any ideas on how I can do this in EM or with SAS Stat?
1) I have EM 5.3 desktop version which does not include the Time Series node.
2) I do not have ETS which enables Proc Forecast (or Time Series) to run.
3) I installed the Trend Regression extension node provided by the book "Data Preparation" by Gerhart Svolba but it only looks at two timeperiods at a time and only provides a single value; however I do like using the node for other projects.
I do not want to create a separate model to predict a value for each month, ex. "Regression model 1 for month 1" thru "Regression model 12 for month 12".
Does anyone have any ideas on how I can do this in EM or with SAS Stat?
5 REPLIES 5
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Hi. We don't have any recurrent prediction routines built into Enterprise Miner, so you would be stuck with coding something using the DMINE and STAT procedures, and a lot of data step work. I really recommend you try to get access to SAS/ETS and use those procedures inside of Enterprise Miner. If your forecasting works out well then you may want to investigate the Forecast Server product. Good luck either way!
-Dave
-Dave
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Here's an example of code I used in the EM v5.3 "Code Node" per David's comment. This works in EM without a separate SAS/ETS product license, but you have to write the code. FYI...to use ods output effectively in EM, you also need to add a line to your startup code as follows:
ODS Path(Prepend) work.templat(update);
Hope this helps?
Rex
/*BEGIN Code Node Example*/
libname DelPro '\\pbidelprd042\DM_Inputs\RPruitt\DelinquencyProjection';
ods listing close;
ods rtf
file='\\pbidelprd042\DM_Inputs\Rpruitt\DelinquencyProjection\RFA6051-DelinquencyProjection-4Kelly.rtf'
;
ods graphics on;
Data DelPro.DelProTarget;
Set DelPro.DelinquencyProjection;
Roll30To4Mo=(RecRollRates30/RecVintDelinq4Mo)*100;
run;
Proc Sort
Data=DelPro.DelProTarget
;
By VintageDate;
Run;
Proc UCM
Data=DelPro.DelProTarget (where=(VintageDate>='01JAN2008'd))
;
Id VintageDate Interval=Month;
Model RecVintDelinq4Mo;
irregular;
level;
estimate plot=(residual normal acf);
forecast Lead=9 Plot=(forecasts decomp);
Title4 'RFA6051-Model RecVintDelinq4Mo with Forecast of 12 Months';
run;
ods graphics off;
ods rtf close;
ods listing;
ODS Path(Prepend) work.templat(update);
Hope this helps?
Rex
/*BEGIN Code Node Example*/
libname DelPro '\\pbidelprd042\DM_Inputs\RPruitt\DelinquencyProjection';
ods listing close;
ods rtf
file='\\pbidelprd042\DM_Inputs\Rpruitt\DelinquencyProjection\RFA6051-DelinquencyProjection-4Kelly.rtf'
;
ods graphics on;
Data DelPro.DelProTarget;
Set DelPro.DelinquencyProjection;
Roll30To4Mo=(RecRollRates30/RecVintDelinq4Mo)*100;
run;
Proc Sort
Data=DelPro.DelProTarget
;
By VintageDate;
Run;
Proc UCM
Data=DelPro.DelProTarget (where=(VintageDate>='01JAN2008'd))
;
Id VintageDate Interval=Month;
Model RecVintDelinq4Mo;
irregular;
level;
estimate plot=(residual normal acf);
forecast Lead=9 Plot=(forecasts decomp);
Title4 'RFA6051-Model RecVintDelinq4Mo with Forecast of 12 Months';
run;
ods graphics off;
ods rtf close;
ods listing;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Thanks T-Rex, I'll give it a try.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
T-Rex, it's been a while since I've been able to get to this. I've set up the code in both a code node and in a SAS code window in SAS EM 5.3 and the error I'm getting is ERROR: PROC UCM not found. Is it unavailable in the the desktop version of em?
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Hello Benbald - Sorry you're having trouble. I can run PROC UCM on my client and server installation. This problem very well could be installation and/or license specific. Try running the following code from within a "Code Node". It will send your licensing specifications to the SAS Log. So, when the Code Node has run select the Results button and access the node's SAS Log. The ETS module should be available behind the scenes, so it should not show in the log list. But, the information displayed will be sufficient for submission of a SAS Tech Support online request for assistance if necessary. It may be possible that you will need to re-install certain components of your E-Miner load. You may want to try that before submitting a trouble ticket.
You may also want to try adding this line of code to your project's Start-Up Code: %include "%nrstr(C:\Program Files\SAS\SAS 9.1\AutoExec.SAS)";
However, the preceding may not be necessary, but I've found it to be a good practice to ensure the code initiates properly.
/* BEGIN CLIENT - License installations & setinit validation */
proc setinit noalias; run;
/* END CLIENT - License installations & setinit validation */
/* BEGIN SERVER - License installations & setinit validation */
signon SAS;
rsubmit;
proc setinit noalias; run;
endrsubmit;
signoff SAS;
/* END SERVER - License installations & setinit validation */
You may also want to try adding this line of code to your project's Start-Up Code: %include "%nrstr(C:\Program Files\SAS\SAS 9.1\AutoExec.SAS)";
However, the preceding may not be necessary, but I've found it to be a good practice to ensure the code initiates properly.
/* BEGIN CLIENT - License installations & setinit validation */
proc setinit noalias; run;
/* END CLIENT - License installations & setinit validation */
/* BEGIN SERVER - License installations & setinit validation */
signon SAS;
rsubmit;
proc setinit noalias; run;
endrsubmit;
signoff SAS;
/* END SERVER - License installations & setinit validation */