Predictions using NARX Network

Illustration
perray_smith - 2021-07-26T09:46:56+00:00
Question: Predictions using NARX Network

I am trying to build a network to do some long term predictions. My data is comprised of an INPUT and TARGET that spawns over 50 years (about 3500 points of data). At first I used the GUI to quickly get a network using default values. The network response seemed good but the ERROR Correlation and INPUT-ERROR cross correlation seem off( from what I understood from reading around here and the documentation, the peak should be at 0 lag). I tried adjusting the delays according to what I read in other question using the correlations but I don't understand how this works exactly. Where do I look to find the correct number of delays?   Another question I have is for long term predictions.Using the GUI I trained the network using around half of the data available, the network returned a very good approximation (with very little error between output and targets). Then in the next tab I used the TEST NETWORK and used the remaining points to see if it could predict the rest of the data. I would expect that at some point the error between output and target would grow but what I generally get is an excelent result where the output seems to be just a bit shifted under the target. (looks like the network learned everything when it is tested)   How can I correctly form predictions outside of the data I have?

Expert Answer

Profile picture of Neeta Dsouza Neeta Dsouza answered . 2025-11-20

1. Design multiple open-loop (OL) nets in a double loop over the number of hidden nodes (outer loop) and random weight initializations(inner loop). For examples, search NEWSGROUP and ANSWERS with
greg Hub Ntrials
2. Use divideblock instead of dividerand to preserve correlations
3. Use the validation MSE tr.best_vperf to choose the best design and test MSE tr.best_tperf to estimate performance on unseen data.
4. To use the net on unseen data with only known inputs, convert the OL design to closed-loop (CL).
5. Evaluate the CL net on the design data.
6. If performance is significantly worse than the OL performance, use train to improve the CL performance.
7. Use the CL design with future inputs to predict future outputs.
8. If you know the corresponding future targets, you can evaluate the result.


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!