**Lesson 2: Replications and Distributions**

**Why Replications**

Distributions (which we will discuss later in this lesson) are a method used in ProcessModel to introduce randomness or variability. For example, you may have an activity where the processing time is not always constant due to the type of entity being processed, or a variety of other reasons. In order to understand the importance of running replications in a simulation, let’s suppose you have 3 consecutive activities, each having a distribution in their time fields. Because the values for those times are chosen randomly each time an entity enters the processes, it is possible that the majority of the times chosen will be on the low range of possible values. That of course would give a lower than expected overall cycle time for your process. Now let’s say you delete one of the processes. You would expect the average cycle time to drop because there is one less activity. However, because of the randomness of the distributions, the two remaining activities could return many time values in the high range of the scale. In that case, the average cycle time would actually go up instead of down. Even though this is an extreme example, it demonstrates the nature of randomness. Replications allow you to run a simulation multiple times, generating different random values for each replication. Then by taking an average of those replications, your results are much more realistic and repeatable.

When using replications, you can view the minimum and maximum results for each section in the output detail report. Run your replications, then on the output report’s filter tab, click **Statics** and select the check the **Min – Max** checkbox. Min – Max should now be selected.

The min and max values will be displayed in each of the report sections similar to that shown below.

Open the last model used in Lesson 1, **Lesson 1 – Solution 4**. Click on the **Simulation** menu and select **Options**.

**Review**

You’ll remember that the simulations in Lesson 1 ran for 40 hours. The *Options* menu is where the simulation run length is determined. Warmup length is the amount of time you want to run your model before collecting statistics (use to preload a production line). Replications determines the number of times a simulation is repeated before displaying the results.

Turning off the animation in the Options window will make the simulation run much faster.

Let’s see what happens when you set the **Replications to 30**, **turn off the animation** and the **scoreboard**. Click **Close**, **simulate** the model, click **No** to close Output Detail Report, Click from the toolbar to view the output report.

Goto the **Entity Summary** tab on the General Report.

**Review**

The results of each replication are shown in the first 30 rows. The last two rows show the Average and Standard Deviation for all replications. Note the Average Cycle Time average of the replications is 68.95 which is above the required 60 minute maximum specified by management.

**Distributions**

A distribution could be defined as a set of values which specify the relative frequency with which an event has occurred or is likely to occur. In the real world, events tend to occur randomly, according to certain statistical patterns or distributions. Distributions allow you add randomness or variability to your model in order to make it more accurately reflect reality.

Distributions are of two major types: discrete and continuous. Discrete distributions contain a finite number of possible outcomes. Two examples would be an entity randomly routing to one of several locations, or a randomly generated quantity of arriving entities. Continuous distributions contain an infinite number of possible outcomes. Examples include generating service times or the time between arrivals.

**Common Distributions**

The following represent only 4 of the commonly used distributions in ProcessModel. For a complete list of available distributions you can open the Stat::Fit program from ProcessModel’s **Tools** menu.

Distribution | Syntax | Parameters |
---|---|---|

Triangular | T(a, b, c, s) | a = mimum b = mode c = maximum Example: T(2, 10, 15) |

Uniform | U(a, b, s) | a = mean b = half range Example: U(20,5) |

User-defined (or discrete) | D n (% 1 , X 1 , . . . % n , X n ) | % = percentage of time the value is returned x = value to be returned n = number of return values (between 2 and 5) Example: D3(20, 35, 30, 45, 50, 37.5) |

The following diagrams show what the Triangular and Uniform distributions explained above would look like.

**Sample Uses**

**Triangular** – Unload time for trucks could be as little as 7 minutes, is typically 18, but could be as long as 45 minutes. To model this example, you would enter T(7, 18, 45) in the Time field at the Loading Dock activity.

**Uniform** – Everyday you have anywhere between 50 and 150 customers come to your store. To model this example, you would enter U(50, 150) in the Quantity field of your daily pattern arrival.

**User-defined** – One of two types of prep need to occur on each part entering your process. 34% of the time the prep takes 8 minutes. 66% of the time it takes 14 minutes. To model this example, you would enter D2(34, 8, 66, 14) in the Time field of the Prep activity.

**Practice**

Close any currently open model and open the **Lesson 1 – Call Center** model. Double click the Perform Research activity and enter **T(10,20,30)** in the Time field.

**Review**

Adding the time distribution will cause the time to vary between 10 and 30 minutes, with most times being around 20 minutes, for each entity that enters this activity.

Double click the arrival route (line between the Call entity and the Take Call activity). Enter **D2(90,1,10,2)** in the *Quantity* field. Then enter **T(2,5,12)** in the Repeat Every field.

**Review**

90% of the time, a quantity of 1 call will arrive. 10% of the time, 2 calls will arrive together. Calls will arrive between 2 and 12 minutes apart, with the majority of arrivals occurring around 5 minutes apart.

Set this model to run **10 replications** by clicking **Simulation** and selecting Options. Save this model as **Lesson 2**, then simulate it.

** Questions**

1. What is the average and standard deviation for the Level 2 resource?

2. What is the average and standard deviation for the Difficult calls?

3. Though you don’t see a typed distribution, where do you find randomness or variability in the Lesson 1 – Call Center model?

4. Think of a real world situation where you would use a triangular distribution. What questions would you ask to obtain the parameter values you need?

**Stat::Fit**

Though you can use estimates of what your randomized data values will be at any given time, it is always best to use real data to generate reliable results based on quantitative data. That is where Stat::Fit comes in (available on the Tools menu). Stat::Fit is a statistical tool which allows you to create statistical distributions based on actual measured data.

Let’s look at one example of why it is important to use Stat::Fit. One distribution which is fairly easy to understand is the Triangular distribution. It has 3 parameters: a minimum value, a mean value, and a maximum value. For example, suppose we have an activity that takes a minimum of .25 minutes, usually takes 2 minutes, but could take as long as 100 minutes. That is easily written as T(.25,2,100). However, if the data should actually be represented by a Lognormal distribution, the graph below shows where much of the time you could be getting wrong values if you used a Triangular distribution instead.

So taking the easy route (or using the easy distribution) may cost you in reliable results. Using collected data and Stat::Fit gives you confidence that you can depend on your output accuracy when introducing variability into your model.

For the next portion of our lesson, suppose you have collected data for the Perform Research activity, but you don’t know what distribution to use or how to get that data it into your model.

Close your current model and open **Lesson 1 – Call Center**. Click the **Tool**s menu and select **Stat::Fit**. In the Document1: Data Table window, click in the column to the right of the number 1.

Enter the following numbers in the Data Table (you can select, copy and paste this data): 25 18 19 12 25 26 20 15 21 20 22 23 15 14 25 26 19 23 15 17 19 22 18 24 20

If you already have your data in another application like Excel, you can copy and paste your data points rather than typing them manually.

After entering your data, click the **Auto::Fit** button, select the **unbounded** option, and click **OK**.

To view the graph of any of the distributions simply click the distribution name on the left.

Load the Weibull distribution into the Perform Research activity by clicking Stat::Fit’s **Export** button, then click **OK**.

Exit Stat::Fit and double click the **Perform Research** activity. Highlight the **20** in the Time field. Right click your mouse and select **Paste**. This will paste the Weibull distribution you created in Stat::Fit into your model.

Continue with Lesson 3: Entity Arrivals