I think your best bet is to install SAS EM to gain access to the production quality machine learning algorithms from SAS. You might also consider using SAS/IML to call R nnet package, but you will have to pass the data to and from R which could potentially slow down the procssing time and your code will be a bit more error prone.
Do you have SAS Enterprise Miner?
Hello -
Out of curiosity: what's your motivation using neural networks for univariate forecasting?
If you have access to SAS/ETS you may want to start with more classical time series models first, such as exponential smoothing for example (PROC ESM).
Neural networks are currently not available outside of SAS Enterprise Miner - you will need to use either a SAS macro or SAS/IML to code it up yourself. Not sure if it will be worth the effort, though - see: http://www.kestencgreen.com/simplefor.pdf
Thanks,
Udo
Search on lexjansen.com for sample code, if it exists.
Do you have SAS IML?
Search on lexjansen.com for sample code, if it exists.
Do you have SAS IML?
Hello -
Not out of the box - but as IML provides you with access to a very powerful matrix language and lots of out of the box methods like non-linear optimization you could build a NN module yourself.
Thanks,
Udo
I did a Google search on Neural Network in SAS Macros and the following SUGI paper showed up. http://people.orie.cornell.edu/davidr/or474/nn_sas_implement.pdf
The paper is rather old but you can at least run a simple verion of neural network model without SAS Enterprise Miner. The neural network model implemented in EM is much faster and have a lot more model training options. Futhermore, EM comes with Random Forests and Gradient Boosting Tree models that are commonly considered for utility forecasting. Something you might consider licensing in the future.
Before getting into too much in the so called machine learning algorithms for utility forecasting, you might consider other modeling approaches that often time out beat the machine learning algorithms. Please check out the follwoing website for more info.
http://www.drhongtao.com/publications
You can also try running UCM models by each hour of the data (assuming the utility series is hourly basis) and use the CYCLE components (basically a bunch sin's and cosin's with different frequencies) to capture multiple seasonalities existing in the hourly data. Here is a sample code to run UCM by each hour for an hourly utility load data:
proc ucm data=load;
id date interval=day;
by hour;
irregular;
level;
cycle period=7 rho=1 noest=(period rho);
cycle period=3.5 rho=1 noest=(period rho);
cycle period=2.3333 rho=1 noest=(period rho);
randomreg cos1-cos16 sin1-sin16;
model eload = dec24 dec25 dec26 jan1 jan6 aug15 easterSat
easterSun easterMon easterTue holidays holySat
holySun bridgeDay endYear;
estimate back=14 plot=panel;
forecast back=14 lead=14 outfor=book.loadfor plot=decomp;
run;
I think your best bet is to install SAS EM to gain access to the production quality machine learning algorithms from SAS. You might also consider using SAS/IML to call R nnet package, but you will have to pass the data to and from R which could potentially slow down the procssing time and your code will be a bit more error prone.
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn how to run multiple linear regression models with and without interactions, presented by SAS user Alex Chaplin.
Find more tutorials on the SAS Users YouTube channel.