# using regression model to optimize teams working on work items

I have a few work items with these features:

WI1, WI2, WI3


which describe these work items. I also know the number of people and how many minutes they spend each to complete a work item. To simplify things, I binned these people into pay bands B1, B2 and B3. So for each workitem I can determine a vector:

V = {NOPB1, NOPB2, NOPB3}


Here NOPBx means number of people for band x (please add to this as I can feature engineer more stuff). I can also add the cost of all people who contributed to a work item to establish the ActualCost. This means that I can fit a regression model (hierarchical, random forest etc.) to predict the ActualCost.

ActualCost = f(WI1, WI2, WI3, NOPB1, NOPB2, NOPB3)


The fitted models have quite good predictive performance on unseen data. I would like to use these models to perform some optimisation (prescriptive analytics?) to establish the best team composition to reduce costs. I imagine to use an optimisation algorithm to find vectors like this:

V = {NOPB1=10, NOPB2=4, NOPB3=1}


which minimise the ActualCost given the work type (defined by its features)? This is possible technically but how does the model actually know that, using the above example, 10 people of B1, 4 people of B2 and 1 person of B3 are actually capable of completing a work item?

Has anyone ever done anything similar? Any pointers to help solve the above would be very much appreciated. I understand that this is potentially quite hard but even directional results would be quite useful. Thanks a lot.

PS:

The above is a bit simplified. I can also plug in median time spent for each worker of each band etc.

PPS:

Just came across this which looks relevant:

https://conferences.oreilly.com/strata/strata-ny-2017/public/schedule/detail/60755

• Because the value of a given currency changes over time, the model will be less accurate if only absolute currency units are used. One possible way to mitigate the effect of currency or cost-of-living fluctuations is to use some form of relative indicator such as (worker salary / average national income) which, after modeling, could be converted back into currency units. Commented Oct 21, 2018 at 9:45

You would need to define constraints $$g_i(w_1,w_2,w_3)$$ fixing e.g. the minimal and maximal amount of workers in each band, the minimal amount of hours required and so on, for each work item. Then, since your regression function is probably non-linear, non-convex, and so on, you have a non-linear programming problem with constraints, which is typically hard to solve.
There is a vast literature on nonlinear optimization with constraints. But you could try to impose some structure on $$f$$, e.g. by forcing a simple regression model so that $$f$$ is easily optimizable.
As to the feature engineering, maybe you could add experience of the workers in band $$i$$ with work item $$j$$?