poisson-distribution – Using Poisson and Negative Binomial for Safety Stock Estimation

distributionsestimationmathematical-statisticsnegative-binomial-distributionpoisson distribution

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).

Best Answer

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$.