We're using randomForest and R to do some forecasting for labor schedules. Specifically, we are using randomForest to do:

  1. Forecast / predict the number of staff needed (shifts).
  2. Forecast / predict the start time of each shift (start time).
  3. Forecast / predict the end time of each shift (end time).
  4. Finally, forecast / predict the actual staff member.

In some cases, this works quite well. In other cases, it's not working well at all. For example, for one customer who is always closed on Sundays, the software is predicting staff every Sunday.

We've attempted to expand the algorithm to identify staffing needs on say, Sunday only, but find that this creates some other problems in our forecasting.

  • Any good resources for this type of predictions / forecasting?
  • Is there something better than randomForest that we should be using?
  • Is there a better way to do this using O/R?

We don't have a strong background in O/R or machine learning ...

asked 29 Sep '10, 04:17

user-209%20%28yahoo%29's gravatar image

user-209 (ya...
accept rate: 0%

How difficult is this problem? Are there any privacy issues with releasing the data. You could set up a challenge on kaggle.com if it is hard and there are no privacy issues.


answered 29 Sep '10, 09:28

iamreddave's gravatar image

accept rate: 0%

I didn't even know kaggle.com existed. I will try and get one or two challenge's posted by Friday.

(29 Sep '10, 11:54) user-209 (ya...

On the surface it sounds like you are having a difficult time forecasting demand. The actual scheduling of staff should be trivial after you know the demand per staff member per time period. I suggest trying to break down the demand into your specified time units. Then look into time series forecasting for your demand.

After you know the demand than determine a reasonable metric of how much demand can be fulfilled per staff member. Then its a matter of filling in the minimum number of staff members to meet demand. This is a typical OR linear programming problem to solve.

An example from GLPK Shift coverage


answered 29 Sep '10, 12:34

larrydag%201's gravatar image

larrydag 1 ♦
accept rate: 9%

Number of staff needed may or may not be a function of (random, time-varying) demand, depending on context. So I can see forecasting that. But why are you forecasting shift start/end times and who's in which shift? Typically those things are decided deterministically (frequently via linear or integer programming), given the demands. Separate from any mechanical issues involved in the forecasting process, forecasting essentially extrapolates what the organization has been doing, regardless of whether or not they've historically been efficient.


answered 29 Sep '10, 12:36

Paul%20Rubin's gravatar image

Paul Rubin ♦♦
accept rate: 19%

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported



Asked: 29 Sep '10, 04:17

Seen: 1,789 times

Last updated: 29 Sep '10, 12:36

OR-Exchange! Your site for questions, answers, and announcements about operations research.