Solved – Forecasting/estimating daily hotel room demand

arimaforecastingtime series

Suppose we have an hotel and we know all the reservations of the last five years. We would like to forecast/estimate the room demand day-by-day for the next year.

I'm a mathematician but not a statistician, I'm sorry if I'm saying something trivial or dumb.

I'm wondering if a "standard model" (as ARMA, ARIMA, SARIMA) exists for such a problem. The main doubt I have, it is about the regularity of the variable "# of reservations". Is it predictable?

As a mathematician I can understand a model for forecasting, but I don't really know the domain of application of such a model.

Let's take the example of Christmas day. It is a "regular event" because it is the same day every year, so I imagine I can easily make a prediction, but how about Easter? Obviously I cannot estimate it by the data I have, because the actual day of Easter changes every springtime, I need an extraordinary information.

  1. Is it a time-series analysis problem?
  2. standard models work for this problem? (I have just read about ARMA, ARIMA, SARIMA and linear models, looking for time series)
  3. If not, do other models exist for treating this case?
  4. Or basically we need to invoke the experience of the people who work in the hotel? 🙂

Looking on the internet I found many things on "forecasting tourism demand", but all these analysis try to estimate the number of tourists per month (by the query on google, by the last years data, etc.). But maybe I'm wrong.

Thanks.

UPDATE 20/01/17

I'm trying to get an idea out of the comments posted so far.
I know that, even Christmas, it's more complicated because it depends on the day ("Christmas on a Thursday will lead to Friday being taken to create a four-day weekend, for example" cit. @Wayne). But the point is the same: are these complications "treatable" or not?

@AnscombesGimlet said they are treatable, but I'm wondering: how many manual corrections do I have to do in order to have a suitable model? If I have to do a lot of corrections, of course I'm still using a "model", but I won't say it's "standard" and I would answer "No" to 2.
Up to what I've understood (and I think it's the same point of @IrishStat), each "hotel" has its own history and its own variables/coefficients: a mechanism for understanding these peculiarities does not exist(well, let's call it experience or savoir-faire).

Tell me if I'm wrong. Suppose I'm one of the best statisticians trained in the black art of time series, what would I do to tackle this problem? Here my set list:

  1. Prepare all the datas from my hotel
  2. Start plotting datas with different time scales years/(seasons)/months/(weeks)/days
  3. Finding maybe different "time scales" (instead of plotting january-february etc, maybe 15th of january to 15th of february etc because the data looks more uniform)
  4. Start using my favorite method (let's say ARIMA) and start doing some projection about my data, with the parameters I think fit better the data I have already studied.
  5. Make the model a good model.

I won't do:
1. Prepare all the datas from my hotel
2. Take e.g. ARIMA with "standard parameters" that I imagine would work because more or less I think I will have a pick for the summer and for holidays
3. Launch it and then try to understand the parameters of ARIMA looking how far is the model from the reality
4. Approximate the model to a good one.

The difference between these two approaches can be perceived in this example:

What if I change the hotel? The first technique (which I would call "non standard") has to be applied anew if I take a different hotel (and I will spend a lot of time on it). The second one(which I would call "standard") could be implemented (more or less) for every hotel.

So now the question is: can both methods work? are both reliable?

Best Answer

  1. Yes
  2. Yes - but you incorrectly assume ARIMA is the 'standard". There are no standard models. I'd highly recommend reading a time series book (of which there are a number of excellent free books online). They typically will cover using ARIMA models with external regressors, dynamic regression, ETS models, etc.
  3. NA
  4. Maybe; depends on what your data looks like.

Depending on what you're using the data for and how important forecast accuracy is, there are a number of approaches you'll want to test using time series cross validation and/or test set holdouts. But essentially, you should look at ARIMA models that include external regressor variables for Easter. Holidays do not always fall on the same index day/week due to leap years.

Ideas for approaches to take:

  1. Use daily data and include seasonal regressors for holidays and specify multiple seasonal periods (daily, yearly). Since we know information the model doesn't (holidays) it would be a pretty bad idea not to at least test using them.

  2. You could aggregate the data at a weekly or monthly level, forecast those and then use a distribution pattern by month based on moving average for that month's volume from previous years. For example, day 1 December historically has averaged 3% of the total volume in that month, day 2 gets 2.3%, etc. The value of this method is monthly forecasting is typically more accurate than daily due to the noise to signal level at the daily resolution.

  3. I am really impressed with the recent advances via Temporal Hierarchical Forecasting. There is an implementation of this methodology in the R thief package. This methodology can work really well on high frequency data (daily, weekly data). Still, you'll want to include holidays as external regressors even to this model framework since hotel usage is likely highly impacted by holidays.

  4. Seasonal naive using a linear adjustment up/down based on your year-over-year trend (usually decent to stick with a naive approach to the trend). You'll still need to account for leap years and holidays, as they may not align using this method.

Reading a good practical forecasting book will likely be the best place to start.

EDIT: Free online practical forecasting book link:

https://www.otexts.org/fpp

Related Question