02-12-2016 07:24 AM
02-12-2016 08:56 AM - edited 02-12-2016 08:57 AM
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
02-12-2016 10:38 AM
02-12-2016 05:54 PM
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.
02-16-2016 09:51 AM
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.
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;
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;
02-16-2016 09:32 PM
02-17-2016 09:16 AM
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.