I want to forecast demand for the cement industry. I have data for 10 years- Monthly data. Is that desirable for forecasting?
Solved – Is 10 years data enough for forecasting
forecastingtime series
Related Solutions
@Maya, I would recommend an online forecasting text book if you are specifically interested in time series forecasting methods. It has a section on naive forecasting
There are two types of naive methods, for seasonal and non-seasonal data. programming naive models is one of the simplest models that you can do either in R
or any other program. For non-seasonal data, last value is your forecast for all the future horizon. for seasonal data, the forecast for future period is same as whatever value is in the historical data during the same period (Example forecast for Aug 2015 is same value as actual value for Aug 2014.)
In R specifically you can perform naive forecast (both non seasonal and seasonal) using forecast package. The code snippet is shown below. I have also shown how the forecast looks like for non-seasonal and seasonal data plots.
library("forecast")
library("fma")
## Example Data Non Seasonal from fma package
nsdata <- eggs
plot(nsdata)
## Forecast naive method for seasonal data for 18 years
nsdata.f <- naive(nsdata,h=18)
plot(nsdata.f)
## Example data for Seasonal data from fma package
sdata <- airpass
plot(sdata)
## Forecast naive method for seasonal data provides you 12 months of forecast
sdata.f <- snaive(sdata,h=12)
plot(sdata.f)
From eyeballing your data, it appears like there is yearly seasonality, which one would expect a forecasting model to pick up and extrapolate. ARIMA here doesn't, although (assuming you are using R's auto.arima()
) it does check and model seasonality.
I would guess that the problem lies in the high variation we still see in the data. This makes it hard to find the signal (i.e., the seasonality).
Now, if these are daily demands, then some sort of intra-week pattern may be occurring. I would recommend that you plot seasonality plots, plotting each week over a Mon-Sun axis.
OK, now let's assume that you do have intra-week seasonality. Unfortunately, standard ARIMA implementations won't model two kinds of seasonality (intra-week and intra-year). So you now have a few options:
- Recode your daily time series to have a period not of 365.25 days, but of 7 days. Then ARIMA should choose a seasonal model (assuming, as above, that intra-week seasonality exists) and give you periodic weekly forecasts. However, we still won't see the yearly seasonality.
- Run an ARIMAX model with day-of-week dummies. You can feed these into
auto.arima()
via thexreg
parameter. - Look at forecasting models that do allow multiple kinds of seasonality. There are some such models out there, most of them in an exponential smoothing/state space formulation. For instance, look at this paper (an ungated preprint can be found here), which describes the so-called TBATS model, which the authors implemented in the
tbats()
function in R'sforecast
package. (Incidentally, one of the authors also authored this free online forecasting textbook which I will never stop recommending and which I already linked to above in recommending seasonality plots.)
Best Answer
You can forecast a time series based on a single historical observation, by simply extrapolating this observation into the indefinite future (the so-called naive no-change forecast). Or you could even forecast time series with no historical observations whatsoever, in your case e.g., by estimating the current size of the industry and assuming a certain growth rate.
Of course, forecasts based on very few data points will likely not be very good. Usually more historical data translates into better forecasts. So your question really isn't whether 10 years of data is enough for forecasting, but whether this is enough for your forecasts to be good enough. And that, in turn, depends heavily on what you want to do with your forecast.
Then again, 10 years is quite a lot of data. The question really is whether any more data will improve accuracy. I'd imagine that the cement industry may have changed a lot over the last decade, so 11 year old data may not be comparable to more recent data. Your forecast accuracy will likely be influenced much more by how well you can forecast the future economic growth and industrial policy in China.