Data - Monthly Rainfall of a region for the past 20 years

Objective - To Forecast for the next 2 years

I am new to time series forecasting and I am looking for suggestions on various methods that I can use in order to forecast from the above-mentioned collected data.

I have already used a SARIMA model and predictions have been done using R.

Now I need other different methods that I can use with this data for forecasting and choose the better performing model among them.

I apologize in case of the lack of clarity in the question put forth.


SARIMA is a good first benchmark. I would suggest three more ones, all of which use seasonality, which I would assume to be relevant for rainfall:

  • Seasonal exponential smoothing. If you use forecast::ets(), it will attempt to automatically fit a "good" model with additive or multiplicative trend and/or seasonality.
  • A "seasonal naive" model, where the forecast is just the last observation for the corresponding month. So the forecast for next January (and January after that) would just be last January's observation.
  • A similar model, where you would use the average of previous observations in the corresponding month, e.g., using the average of all historical January observations to forecast the next January.

You may wonder why I recommend the latter two models. The fact is that in forecasting, you should always compare complicated methods to simple benchmarks, which can be surprisingly hard to beat.

As a textbook, I very much recommend Forecasting: Principles and Practice (2nd ed.) by Athanasopoulos & Hyndman and Forecasting: Principles and Practice (3rd ed.) by Athanasopoulos & Hyndman.

  • $\begingroup$ This is the kind of answer that I was looking for. I did not know much methods that I could use with my data. I did come across the latter two mentioned methods but it did not make much sense to me to use those and hence I skipped it and moved straight away to SARIMA. But thank you for recommending why I should often consider complicated methods to simple benchmarks. $\endgroup$
    – noob
    Sep 17 at 9:26
  • 1
    $\begingroup$ Another possibility would be Facebook Prophet, which I don't know much about, though. You don't really have enough data (just 240 data points) to reliably fit the more complicated ML models. If you are looking for multiple models, then you could try different SARIMA specifications, or different Exponential Smoothing methods (use the model parameter in forecast::ets). $\endgroup$ Sep 17 at 10:00
  • $\begingroup$ Can you suggest a couple more methods (appropriate to the data collected) that I can use. Data is available for upto 100 years (1200 data points). I had taken only 20 years data because the ts plot seemed too congested to me when I included for more years. $\endgroup$
    – noob
    Sep 18 at 8:32
  • $\begingroup$ I was suggested to perform a nonparametric regression. Can you provide an explanation on that too ? $\endgroup$
    – noob
    Sep 18 at 20:05

You don't explicitly mention but it seems like you chose the first model yourself. You could try and see what the auto.arima() function in the forecasting package gives you. That function will test multiple models for you and come up with the best one it can find based in AIC, AICc, or BIC values. Setting the argument stationary to FALSE, it will include models that are both stationary and non-stationary. Setting the argument seasonal to TRUE, it will include both seasonal and non-seasonal models. Whatever model the command suggests as being the best, you can then forecast out using the forecast command in the same package. You'll be able to compare that to the results you already have and any others you generate manually.

  • $\begingroup$ Perhaps it was my mistake in the way I framed the question. I am looking for different methods that I can use on monthly rainfall data to forecast. I have already tried a SARIMA model, now I need different methods to compare it with and choose the best model among them to forecast for the next two years. Hope I made it clear. $\endgroup$
    – noob
    Sep 17 at 9:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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