# Poisson and Negative Binomial for safety stock

I am currently an intern working on an inventory/stock policy and there is this particular modeling task on which I am blocked (and I have no statistical supervisor). I have a background mostly in economics with some applied econometrics, and I am out of my depths here.

AS IS: They use a safety stock formula (the type 1, see wiki) to calculate their service level. This formula gives them a Z value (K in the formulate) that they plug into a standard normal distribution in order to get a theoretical service level (the minimum being 50% when safety stocks are 0 (K = 0)). https://en.wikipedia.org/wiki/Safety_stock They apply this for a calculated level of demand per leadtime and they want to apply this formula for demand that is assumed to follow a poisson or negative binomial distribution (low demand (few points), lots of zero demand periods).

So far, I have different ideas.
For example, apply a Johnson transformation on my data to normalise them, but it doesn't always work (using R packages like suppdist or jtrans). And then add the mean of the demand to K (to reach the minimum of 50%). A boxcox transformation could also be considered.

Another idea was to use the data to find the parameters, simulate the distribution (still problematic with small data) and shift the distributions to center at 0. The idea would be to reuse the K above. I did not find how to do such a shift to be honest or how to modify K so that it reaches the right values (min 50%).

Side note: Oracle Inventory Optimization and other APS seem to have a way to calculate the right negative binomial and poisson models, but I can't seem to find their technique...

I kindly ask for criticisms and hopefully improvement ideas. Ideally, I would like to know how to use the same principle used on the normal distribution (formula with K) and apply it to the Negative binomial and Poisson distributions.

Thank you

EDIT: Problem solved. As suggested by jbowman, applying the negative binomial on lead time demand works, I had to use the parameters calculated using the variance to mean ratio and the mean of lead time demand. The program (APS) whose results I had to reproduce used a maximum VMR in its parameters. Finally, for the poisson distribution I went with a Hermite distribution (assuming poisson demand and normal lead time).

• Are you asking how to estimate the parameters of a Poisson or Negative Binomial distribution, or...? – jbowman Apr 13 '18 at 13:50
• I thought I might not be clear, I would like either the formula/method used (in Oracle or APS: servigistics) for the poisson and negative binomial distributions, or an indication on whether my current ideas are going in the right direction and if so, ideas on how to implement them. Thanks – Roch Apr 13 '18 at 14:54
• You can look those distributions up on Wikipedia, for example, if all you need is the formula for the distribution. – jbowman Apr 13 '18 at 17:59
• This is not exactly what I need. There is this formula parameter that follows a normal distribution ("K" in the safety stock wiki article). I would like to find a formula that I could use in case of poisson/negative binomial demand distribution. Or a method that would give similar results. – Roch Apr 14 '18 at 19:59

As an opening comment, which you should not use to try to influence your management (especially given that you are an intern), Type I service level is almost always a terrible objective. What it measures is the probability that you suffer no stockouts over the leadtime, but, from a business perspective, what you'd like to measure is, far more often, the expected number of stockouts over the order cycle $/$ the expected demand over the order cycle, i.e., the fraction of demands that go unfilled. In some situations, e.g. stocking a helicopter for rescue missions where an out of stock could mean permanent disability or death, Type I service level is appropriate, but not in the usual business case. I won't go into more detail, since it's off-topic, but include it here for your future information.

The Type I service level given an order point of $s$ is nothing more than the probability of seeing fewer than $s$ demands over leadtime. As such, if you have a probability distribution of leadtime demand $F(x)$, and a target service level $\alpha$, the corresponding order point $s_{\alpha}$ is:

$$s_{\alpha} = F^{-1}_{LTD}(\alpha)$$

where $LTD$ refers to "leadtime demand". In the case of the Normal distribution, it so happens that this is the same as:

$$s_{\alpha} = \mu_{LTD} + \sigma_{LTD}*z_{\alpha}$$

where $\mu$ is the mean demand, and $\sigma$ is the standard deviation of demand. Where does $z_{\alpha}$ come from? It's the inverse of the standard Normal distribution's cumulative density function at $\alpha$:

$$z_{\alpha} = F^{-1}(\alpha | \mu=0, \sigma=1)$$

and

$$F^{-1}(\alpha | \mu_{LTD}, \sigma_{LTD}) = \mu_{LTD} + \sigma_{LTD} F^{-1}(\alpha|\mu=0,\sigma=1)$$

So using $z_{\alpha}$ with the Normal distribution is the same as calculating the inverse of the cumulative distribution of leadtime demand, where leadtime demand is Normally distributed.

When you aren't working with the Normal distribution, you won't typically have any equivalent formula to make life appear simpler. This is true of both the Poisson and Negative Binomial distributions. In the case of these two distributions, it's most straightforward just to calculate order point from the initial equation, using the appropriate parameters for the leadtime demand distribution in question.

ETA: For example, assume your daily demand has mean $0.2$ units and standard deviation $0.6$ units, and you have a leadtime of one week. Then $\mu_{LTD} = 1.4$ and $\sigma_{LTD} = 1.59$. The parameters of the Negative Binomial distribution are $r = 1.75$ and $p = 0.556$.

If you want to stock to a Type I service level of $95\%$, you'd solve for:

$$s_{\alpha} = F^{-1}_{LTD}(\alpha) = F^{-1}(\alpha=0.95;r=1.75,p=0.556) = 5$$

and your order point would be $5$.

• Thank you for your answer, it does clarify things a bit about the original formula. About the reorder point, sα=μLTD+σLTD∗zα Is this the formula I should use to apply the poisson/negative binomial distrubutions ? I have not been able to obtain reasonable results with when trying to isolate K and put it in a poisson distribution (I haven't tried for the Negative Binomial as I am not sure what parameters to choose). – Roch Apr 16 '18 at 12:51
• No it is not. You should just calculate the inverse of the Poisson or Negative Binomial cumulative distribution functions at the $\alpha$ quantile. – jbowman Apr 16 '18 at 13:55
• What I am curently doing is calculating the inverse to a "k" value using the formula $SS=z_{\alpha }\times {\sqrt {E(L)\sigma _{D}^{2}+(E(D))^{2}\sigma _{L}^{2}}}$. It works for the normal (accurate Safety stocks and service level). But it gives back 0 for the rest (Poisson using the daily average demand as lambda and Nbinomial using $r=mu^2/(Sigma^2 - mu)$ and $p=r/(r+mu)$. I believe the issues are related to my parameters, but since there is no "standard" poisson or negative binomial, I use my part number's average demand and standard deviation. I tend to have very low averages per day. – Roch Apr 17 '18 at 11:56
• I've added an edit with an example of how to perform the calculations in the Negative Binomial case. – jbowman Apr 17 '18 at 12:43
• Thank, this helped me moving forward with my problem. I have been able to reproduce their APS' results for the poisson and normal distribution by using the reorder point. Unfortunately, using the same technique for the negative binomial tends to give consistently higher results for the reorder point than is calculated by their APS. I have also attempted to calculate the negative binomial assuming Gamma leadtime and poisson demand (by fitting parameters from the known mean and variances), unfortunately it consistantly under estimate the actual reorder point calculated by APS for NB dist. – Roch May 3 '18 at 7:14