I'm trying to predict occupancy for every floor in a building (with the primary focus on only one "proof of concept" floor for now).

I have a lot of time-series data, that tracks user's logons and logoffs as they plug in their machines into the LAN port for a given floor.

For any given day, there could be multiple login and logoff items per user (which would signify they've sat at their desk, and at some point may have even left.)

We know what the maximum occupancy is per floor, and we can have a coarse-grained daily view of the floor utilization.

We could even go slightly more fine-grained, and understand it per hour.

We also can not make assumptions that if a user logs off, that they are no longer sitting in their seat - as there could be a number of reasons for that: the laptop is in hibernation mode, perhaps they've gone to a meeting, and their personal belongings are still at the table etc.

For now, if there are 50 seats on the floor and 35 logins for that floor, we can say the floor was 70% utilized for that day.

We could get a little craftier and say that if we haven't observed a login, after a logoff - within a given timeframe, we can have another column to mark the user as permanently left the seat - but that is out of scope.

My question(s) are as follow: - What would the best approach be in "predicting occupancy" at a future date for: -- a given day or; -- a given hour on a given day;

I want to note that the predictions wouldn't likely go too far into the future. I'd probably want to know the floor occupancy perhaps today + 2-3 days into the future.

Would it be a Linear Regression or a straight Time Series prediction problem?

Ideally, I would expose this model as a consumable API through an HTTP-endpoint, such that I would be able to programmatically provide some attributes such as "day and hour" - or simply just "day" - and what I would get back is the "predicted" number of employees.

I have data that stretches as far back as 2015, so there's plenty of observations (few buildings, and every floor per building).

Given above: what would be the best approach and the best model. (factoring in the "query parameters", should I wish to predict, say TOMORROW or TOMORROW @ 1pm.

Thank you.

  • $\begingroup$ Not sure why I got a -1, 10 seconds after I posted :) $\endgroup$ – Sash Mar 26 '18 at 9:02
  • 1
    $\begingroup$ Please make your question more concise, add some instances of your dataset such that people know what it looks like. $\endgroup$ – JahKnows Mar 28 '18 at 2:37

This is kind of tough if the only data you have is login/log off (bytes sent/received by time would be better). You surmise that logoffs can't be trusted, because not everyone logs off, and logged in users may equally be someone who stays 10 minutes or several hours. You might consider running some scenarios to get best/worst case estimates.

For instance, each login could be considered a singular event convolved with a probability density kernel (positively skewed with some decay rate perhaps), which then gives you 'occupancy over time'. You can then try different parameters to ascertain best case/worst case scenarios.


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.