I have a time series of data with columns labeled Months and Rows labeled Years. So, my data looks as:

1900    -5     8    8    6    15   ......
1901    -3     8    8    6    15   ......
1902    -12    4    8    6    15   ......
1903    -34    1    8    6    15   ......
1904    -5     8    8    6    15   ......

The above data is just dummy and for illustration purpose only. My matrix is for period 1900 to 1950 hence the matrix size is 1950x12. The data is for flow in a river and hence there would be some correlation between flows of consecutive months.

I would like to predict data for year 1951 based on data from 1900 to 1950. What algorithm is best suggested for this purpose.

I can use Kalman Filter kind of method but that gives me only 1 step ahead forecast. I need to predict flow for 12 months. So, a Fourier analysis can be of use here as well.

Any other ideas ?


2 Answers 2


If you don't have a model, you need to make one up. For example if your data indicates that the flow is more of a function of the month than the year, you could simply predict the flow in say, March, as the average of the flows in March from 1900-1950.

Now there may be also variation in the yearly flow. You can check whether the yearly average varies randomly (and is such unpredictable other than by mean)or whether there is correlation between neighboring years. If there is correlation you could try linear prediction and/or auto regression or polynomial extrapolation to refine your number for the average flow in 1951.

A good way to test and tweak your model is to use the data from 1900 to for example 1940 to predict the data for 1941 and then compare to the actual data. You can repeat for the last 10 or 20 years of actual data.


Do you have a model for the flow? It would be best to optimize model parameters w.r.t. some error criteria rather than just use any old prediction algorithm. But if you just want to throw data at the problem, try linear prediction.

  • $\begingroup$ If I had a model then life would be so easy. There is no model. $\endgroup$ Oct 4, 2013 at 12:20
  • $\begingroup$ It may also help to make the month of the year an explicit parameter, assuming seasons/time-of-year affect flow--I don't know if they do. $\endgroup$
    – HerrLip
    Oct 4, 2013 at 16:57
  • $\begingroup$ You should try an autoregressive model $\endgroup$
    – Jazzmaniac
    Dec 3, 2013 at 11:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.