I am trying to predict y(t+1) of a function by using a feedforward neural network with Matlab. The inputs are the previous 3 previous values (y(t-2), y(t-1), y(t)) and the training output is the actual value I want to predict y(t+1).
The "prediction" seems perfect! The output seems like a perfect copy of the original graph. BUT, the output is shifted. So it doesn't look like it's predicting, but actually taking y(t) (one of my inputs) as the output everytime and it's not predicting but shifted.
Here's the graph (the red one is the 'prediction'
What causes this behavior?? How can I fix this? I have no idea what's going on, I even tried with NARX and the same thing happens..... any suggestions?