## Working With Stochastic Libraries, SIPs and SLURPs

In a two-part series of articles in *OR/MS Today* (Part 1, Part 2), Dr. Sam Savage and his co-authors describe a framework called **Probability Management** for estimating, maintaining, communicating and utilizing probability distributions within an organization. A key aspect of probability management is the maintenance of a coherent **Stochastic Library**. The simplest elements of a stochastic library is a **Stochastic Information Packet** or **SIP**, which is just a list of trial values for a single uncertain variable. An example might be 1,000 sample values, in a specific sequence, for the future price of oil at some point or interval of time. In a Monte Carlo simulation, trials will be drawn from the SIP in the order **in which they were generated**.

If the SIPs for several different uncertain variables are generated as a group, in a manner that preserves the statistical dependence between them, they may be combined into a **Stochastic Library Unit, Relationships Preserved**, or **SLURP**. A SLURP is a table of trial values, where each column represents a specific uncertain variable, and each row represents a distinct trial. The SLURP's uncertain variables may be **dependent in ways not measured by traditional correlation**. But if a Monte Carlo simulation draws trials in the specific order given by the SLURP, this dependence will be reflected in the simulation model results.

#### SLURPs in Excel

On an Excel spreadsheet, a **SIP** is naturally represented by a column of cell values, and a **SLURP** is most easily represented by a two-dimensional table of cell values. Of course, SIPs and SLURPs could be stored in many other ways -- for example, a SLURP could be a **table** in a relational or multidimensional **database**, and the Excel Database Query feature could be used to bring the data into a spreadsheet model.

Risk Solver provides two PSI Distribution functions, **PsiSip()** and **PsiSlurp()**, that make it easy to work with SIPs and SLURPs. PsiSip() takes one argument: a cell range (usually a column) containing the trial values for one uncertain variable. PsiSlurp() takes two arguments: a two-dimensional cell range containing the SLURP data, and a column index (starting from 1) for the uncertain variable whose trials should be returned by the PsiSlurp() function.

#### Creating Stochastic Libraries

Of course, a Stochastic Library must first be created before it can be used. In some cases, you may have a data source from which you can draw SLURP data directly. For example, if you are working with demographic data such as age, family size, income, and taxes paid, you might be able to use a **representative sample** directly as a SLURP. But in many cases, an expert (perhaps like you) will have to select appropriate **analytic probability distributions** and their parameters, determine whether and how they should be correlated, and then **generate** the trial data through a Monte Carlo process.

Risk Solver is a great tool for **creating** Stochastic Libraries, as well as using them. It supports a wide range of analytic distributions, shifting and truncation of distributions, and rank order correlation of different distributions. When you run a simulation, the trial data is generated, and with the **PsiData()** function, you can easily save the trial data in a column on the spreadsheet -- this will create a **SIP**. Several PsiData() functions in adjacent spreadsheet columns will create a **SLURP**.