univariate time series prediction with neural network
3 views (last 30 days)
Show older comments
hi all, I want to use neural network for predicting a univariate time series. I have a series of 1000 points, I want to use a sliding window (the size of my window is 35 points) to predict next 5 points. I am beginner in neural network so I dont know how to choose my inputs and outputs ( since I have to enter each 35 points for a response of 5 points over all my 1000 points I imagine! ). plz could you help me by giving a detailed programm? I looked at time delay neural network, but I dont know how to choose the number of delays and the number of hidden layers.
thanks
0 Comments
Accepted Answer
Greg Heath
on 25 Oct 2012
TIMEDELAYNET predicts future outputs from present and past inputs only
NARNET predicts future outputs from past outputs only
NARXNET predicts future outputs from past outputs in addition to present and past inputs.
Choose the delays from the significant values of the input/output crosscorrelation function at NONEGATIVE lags and output autocorrelation function at POSITIVE lags.
Choose the number of hidden nodes, H, by trial and error. The default is H = 10
[x,t] = simplenarx_dataset;
X = zscore(cell2mat(x));
T = zscore(cell2mat(t));
[ I N ] = size(X)
[ O N ] = size(T)
crosscorrXT = nncorr(X,T,N-1);
autocorrT = nncorr(T,T,N-1);
crosscorrXT(1:N-1) = []; % Delete negative delays
autocorrT(1:N-1) = [];
sigthresh95 = 0.21 % Significance threshold
sigcrossind = crosscorrXT( crosscorrXT >= sigthresh95 )
sigautoind = autocorrT( autocorrT >= sigthresh95 )
inputdelays = sigcrossind(sigcrossind <= 35)
feedbackdelays = sigautoind(sigautoind <= 35)
feedbackdelays(1)=[] % Delete zero delay
If your N = 1000 series is relatively stationary (i.e., the local means and variances are relatively constant) you should be able to reduce the window size below 35 (15?).
Hope this helps.
Thank you for formally accepting my answer.
Greg
More Answers (3)
Greg Heath
on 30 Oct 2012
1. Search the website documentation for sample code and/or demo.
2. Search the command line documentation for sample code.
help narnet
doc narnet
3+4. Search Answers and the Newsgroup using
nar
narnet
5. Try some designs.
6. If you have problems, post the relevant code and complete error messages.
Have fun,
Greg
0 Comments
Greg Heath
on 16 Nov 2012
If you differenced the original series to reduce nonstationarity, did you check the new series for stationarity? You may have to difference again.
if d(j) = o(j)-o(j-1) then
o(j) = o(j-1) + d(j)
Hope this helps.
Greg
0 Comments
See Also
Categories
Find more on Sequence and Numeric Feature Data Workflows in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!