Help Manual

Contents






Sigma Magic Help Version 15

Monte Carlo Simulation

Overview

Monte Carlo Simulation can be used to simulate a model between input(s) and output by considering the variation inherent in the data for any given process. This analysis can be used to determine probability estimates instead of point estimates. For example, if we want to determine if we should enter or exit a business, instead of predicting that we would make 25% profit on an average, Monte Carlo analysis takes uncertainty into account and provides a range - for example, the profit would most likely vary from 2% to 40% (2% being the worst-case scenario and 40% being the best case scenario). Monte-Carlo analysis estimates the variation in the output based on variation in the inputs.

Monte Carlo Simulation can be used to make business decisions in the presence of uncertainty. Monte-Carlo is also typically used in a DFSS project to determine if a process is capable of meeting customer needs. It can also be used to determine the optimized set of input parameters to achieve a given level of performance.

This template can be added to your active workbook by clicking on Stats and then selecting Monte Carlo Simulation. Note that this should update your main menu bar with additional menus required for Monte Carlo simulation. If this does not open up automatically, you can press the F4 key to activate these menus. A sample screenshot of the main menu bar is shown below. task-menu

Analysis Setup

Use the following steps to create a Monte Carlo simulation model. Click on Analysis Setup button to open the settings dialog box.

Setup

A sample screenshot of the setup menu is shown below.
inputs
1
Num Columns: You can specify the number of columns to display for the inputs area. The inputs area can be used to develop your Monte Carlo Simulation model. There are no limits on the number of rows you can use but you are limited on the number of columns (50 max) so that there is sufficient space to display analysis results and store your simulation data. If you need to build a large simulation model, build it vertically rather than horizontally. Note that changing the number of columns will only hide or unhide the columns in the model area, it does not delete or add columns. You can change the number of columns to display at any time even after partially building your model.

For example, you can start with displaying 10 columns and while building your model you realize you need more columns, just click on Analysis Setup and increase the number of columns here so more columns are displayed on the worksheet.
2
Column Width: Specify the width of each cell in the inputs area. You can specify the width here or manually adjust the widths on the worksheet. This option just provides sufficient space for your text for the simulation model. This option is currently disabled and you are recommended to manually adjust the column widths on the worksheet as required directly on the worksheet.
3
Runs Criteria: Specify how many iterations to run your Monte Carlo simulation model. There are two options available:
OptionDescription
IterationsIf you specify iterations in the dropdown box, then you can specify how many iterations the simulation model should run when you click on the Run Simulation or Compute Outputs button. You can use this option when you want the model to run a fixed number of iterations. By selecting this option, the Num Iterations text box is enabled and you can specify the number of iterations to run there. You can also change the number of iterations on the top menu bar as well.
ToleranceIf you specify tolerance in the dropdown box, then you can ask the software to continue running the simulation until achieving a certain level of tolerance. By selecting this option, the Tolerance text box is enabled and you can specify the convergence tolerance there. By setting this option, the number of iterations are set to Auto and the software will determine how many iterations to run depending on the model you have built.
4
Num Iterations: Specify the number of iterations for the simulation. There are no limits on the number of iterations you can run but do note that a large number of iterations may require increased memory and require additional computing resources. There may not be a benefit to increase the number of iterations beyond a certain level. It is recommended that you start with a smaller number of iterations and keep increasing this number until you do not find much difference in the results with an increase in the number of iterations. There are formulae available that can estimate the number of iterations to run based on your standard deviation, degree of confidence you need and your margin of error.
5
Tolerance: When you specify the Runs Criteria as Tolerance, you can specify what level of tolerance you want to achieve in your results. The software starts with 100 runs and continues to increase the number of runs until it meets your tolerance criteria. For example, if you specify a 1% tolerance band, then the software will continue to add runs to your model until the difference in mean results between consecutive runs don't exceed the given level of tolerance. It does this check for all inputs and outputs defined in your model.
6
Num Simulations: Specify the number of simulations you would like to run for this model. For example, if you have selected 1000 iterations and 2 simulations, then the entire Monte Carlo simulation of 1000 iterations will be performed 2 times. You will be able to change some parameters between these simulation runs and analyze each simulation separately. This is a useful feature when you want to do some what-if analysis. For example, if you are using the standard deviation for one of the inputs as 12.5 and you wonder how your results will change if your standard deviation changes to 20, you could run 2 simulations with 1000 iterations each. You will need to use a Simulation Table for this study. More information regarding the Simulation Table is shared later in this help file.
7
Help Button: Click on this button to open the help file for this topic.
8
Cancel Button: Click on this button to cancel all changes to the settings and exit this dialog box.
9
OK Button: Click on this button to save all changes and exit this dialog box.

Random

A sample screenshot of the random menu is shown below.
inputs
1
Generator: Specify the algorithm to use for the random number generator. Currently, the only available option is Auto and this uses the default method to generate the random numbers. The software uses a Mersenne Twister algorithm and generates a very long period of random numbers. It is the industry standard for generating random numbers and is used by a large number of packages available in the market. It is very reliable and passes most tests for statistical randomness.
2
Sampling: Specify the sampling method. There are two options available:
OptionDescription
Monte CarloIn the Monte Carlo method, the random numbers are directly used as generated by the random number generator for a given distribution.
Latin HypercubeThe Latin Hypercube method is better since it more closely follows the given distribution. The Latin Hypercube method is expensive in the sense it requires more computational power to generate. However, the results obtained from the Latin Hypercube method probably require less number of iterations to converge to the final result compared to the Monte Carlo simulation. It is recommended that you try to use the Latin Hypercube method for your analysis unless you have a strong reason to not use it for your model.
3
Random Seed: Specify the seed for the random number generator. The seed could either be random or fixed. If the seed is random, then each time you run the simulation the system will generate different random numbers for you. However, if the seed is fixed, you will get the same set of random numbers when you run the simulation each time so that you can reproduce the model results.
4
Seed Value: Specify the value of the seed. For random numbers, the seed value is 0. Use a positive integer value for the seed if you would like it to be fixed.
5
Initial Value: Specify the initial value to display on the worksheet for input cells. The available options are:
OptionDescription
FixedIf you specify fixed, then the input random number values are set to the central value when the Monte Carlo simulations are not being run. Once the simulation is completed, the software will return the cell value to the central value of the given distribution.
RandomIf you specify random, the software will determine a random number for this cell and these values can change during the course of the simulation. If you use the random setting then each time you update your worksheet, the random numbers will change depending on the distribution you have set. You can also use Ctrl-Alt-F9 to update the random numbers displayed on the worksheet.
6
Multiple Simulations: Specify how you want to simulation multiple simulation runs. There are two options available:
OptionDescription
SameThe same set of random numbers are used for each multiple simulation run. This makes comparing multiple simulations runs easier if they all use the same set of random numbers.
DifferentEach simulation uses a different set of random numbers. This option makes each multiple simulation run truly random.

Options

A sample screenshot of the random menu is shown below.
inputs
1
Cells: You can set the colors for the following cells you create for the Monte Carlo simulation.
OptionDescription
InputsSpecify the colors for all the input cells. These cells contain the random numbers used to model different inputs for your simulation.
OutputsSpecify the colors for all the output cells. These cells contain the outputs from the simulation computed using the model you have built.
CorrelationsSpecify the colors for the correlation matrix defined between different input variables.
Sim TableSpecify the colors for the simulation table defined for this simulation.
FunctionsSpecify the colors for all the function cells defined for this model. A function cell takes the output variables and summarizes the values the outputs contain (such as mean, median, standard deviation etc.)
2
Foreground Color: You can click on this button to specify the foreground color for the cells.
3
Background Color: You can click on this button to specify the background color for the cells.
4
Example Color: The example shows how the cells would appear on the worksheet. If you are not happy with these colors, click on the foreground and background colors to change the settings.
5
Default Colors: You can reset the colors for all the cells to the default values.
6
No Colors: You can remove the colors for all the cells by clicking on this button.

Inputs

Click on the Inputs button to open the inputs dialog box to define the inputs for your Monte Carlo simulation. The inputs dialog box can be used to either create a new input or update an existing input variable. It is recommended that you define the name of the cell to the left of the input cell before you define the input cell so that the variable name is automatically picked up by the software. Make sure that you define the right cell location to define your input variables. The following screenshot shows a sample input dialog box. inputs1
1
Name: Specify a name for your input variable. Make sure that the names are unique and do not contain special characters such as comma (","), colon(":"), semi-colon (";"), parenthesis ("(", ")"), or ampersand ("&"). Keep the name short to keep your text output manageable.
2
Cell Location: By default, the cell location will show the active worksheet cell that was selected before clicking on the Inputs button. You can click on the icon next to this textbox to reselect a different location on the worksheet for the input location. You can also define a range of cells and the software will create inputs at each of these cells. Note that if you do specify a range, the input variables' names are appended with name.1, name.2, etc.
3
Distribution: Specify a distribution for your input from the dropdown box. This distribution is used to generate the random numbers for this input variable. Make sure that you pick a distribution that matches how you would expect this variable to behave in the real world. For example, if the input is uniformly distributed between minimum and maximum values, use a uniform distribution. If the input is normally distributed then use a normal distribution etc.
4
Parameters: Specify the parameters for the selected distribution. Each distribution has its own set of parameters and you need to specify the parameters accordingly. For example, a normal distribution requires that you specify the mean and standard deviation.
5
Percent: The percent data at the top of the density function shows the 5% limits on the left and right side of the distribution as reference values. For example, the graph shows 90% of the values lie between 16.2 and 23.8.
6
PDF: The graphs section shows a probability density function for the input distribution based on the parameters you have specified. This graph is just shown as a guide to give you an idea of the data points that will be generated by the random number generator for this input variable.
7
Stats: The stats section shows a set of summary statistics for the distribution such as min, max, mean, median, mode, range, stdev, quartiles and percentiles.
8
Cancel Button: Click on this button to cancel all changes to the settings and exit this dialog box.
9
Add Button: If this is the first time you are specifying the input distribution, you will need to click on the Add button at the bottom right hand corner to add this distribution to the model. If you had selected a cell for which an input was already defined, then you can update any previously defined distribution settings.
The following worksheet functions can also be used to specify input variables for your model:
OptionDescription
=smBeta("Name", Nu, Omega, Min, Max)General Beta distribution. Nu and Omega are shape parameters that need to be greater than zero. If the min and max values are 0 and 1. This can be reduced to a two parameter beta distribution if not it is a general beta distribution.
=smChiSquared("Name", Nu)Chi-Squared distribution. The specified DOF parameter Nu should be integer and greater than zero.
=smCauchy("Name", Location, Scale)Cauchy distribution. The scale parameter should be greater than zero.
=smErlang("Name", Scale, Shape)Erlang distribution. The scale and shape parameters should be greater than zero.
=smExtremeValue("Name", Location, Scale)Extreme Value distribution. The scale parameter should be greater than zero.
=smExponential("Name", Scale)Exponential distribution. The scale parameter should be greater than zero.
=smF("Name", Nu, Omega)F distribution. The degrees of freedom parameters Nu (Numerator), and Omega (Denominator) should be greater than zero.
=smGamma("Name", Shape, Scale)Gamma distribution. The shape and scale parameters should be greater than zero.
=smLaplace("Name", Location, Scale)Laplace distribution. The scale parameter should be greater than zero.
=smLogNormal("Name", Mu, Sigma)Log Normal distribution. The Mu and Sigma parameters should be greater than zero.
=smLogistic("Name", Location, Scale)Logistic distribution. The scale parameter should be greater than zero.
=smLogLogistic("Name", Alpha, Beta)Log Logistic distribution. The alpha and beta parameters should be greater than zero.
=smNormal("Name", Mu, Sigma)Normal distribution. The sigma parameter should be greater than zero.
=smPareto("Name", Location, Scale)Pareto distribution. The location and scale parameters should be greater than zero.
=smPert("Name", Min, Max, Most Likely)Pert distribution. The most likely value should like between the min and max values.
=smPower("Name", Max, Shape)Power distribution. The max and shape parameters should be greater than zero.
=smRayleigh("Name", Scale)Rayleigh distribution. The scale parameter should be greater than zero.
=smT("Name", Nu)Student's t distribution. The specified DOF parameter Nu should be greater than zero.
=smTriangular("Name", Min, Max, Mode)Triangular distribution. The mode parameter should be between min and max.
=smUniform("Name", Min, Max)Uniform distribution. The max value should be greater than the min value.
=smWeibull("Name", Eta, Beta)Weibull distribution. The scale (eta) and shape (beta) parameters should be greater than zero.
=smBernoulli("Name", Prob)Bernoulli distribution. The probability value should be between 0 and 1.
=smBinomial("Name", Num Trials, Prob)Binomial distribution. The probability value should be between 0 and 1.
=smDiscreteUniform("Name", Min, Max)Discrete Uniform distribution. The maximum value should be greater than minimum value.
=smGeometric("Name", Prob)Geometric distribution. The probability value should be between 0 and 1.
=smHyperGeometric("Name", PopSize, NumSuccess, SampleSize)Hypergeometric distribution. Num Success should be less than population size.
=smNegativeBinomial("Name", XthSuccess, Prob)Negative Binomial distribution. The probability value should be between 0 and 1.
=smPoisson("Name", Lambda)Poisson distribution. The lamda value should be between 0 and 1.
=smUserDefined("Name", XValues, Prob)User Defined distribution. The size of the Xvalues and Prob should be the same. Prob values don't have to be normalized
Note that the first parameter for these functions is the name of the input variable. Make sure that all inputs have unique names so that we can refer to variables by their names and there is no confusion. The next set of parameters are the parameters of the given disribution. The parameters can either be actual values or cell references. For example, if the mean and standard deviation of a normal distribution are stored in cells E10, F10 then the input variable can be written as =smNormal("Input 1", E10, F10). These function names are written directly on the worksheet when you use the Input dialog box.

Sometimes you do not have the parameters for a given distribution but you know the percentile values or you may have a combination of some parameter and some percentile values. In these cases, there are functions available in Sigma Magic that will help you translate the percentile values to the distribution parameters which can then be used to define the input distributions. The syntax for the distributions are the name of the distribution followed by the Alt keyword. The software will try to estimate the best possible values for the distribution parameters. If the software is unable to estimate the parameters then they are denoted by a "*" values. The following table describes these functions.
OptionDescription
=smBetaAlt(Type1, Value1, Type2, Value2)Beta distribution. Type 1 and Type 2 can be the keywords for the distribution parameters "Nu" or "Omega" or a value. If Type 1 or Type 2 are values then they are assumed to be percentiles and need to be between 0 and 1. The values specified correspond to the type as specified. For example =smBetaAlt("Nu", 1, "0.95", "0.4") implies that the Nu value is 1.0 and the 95th percentile lies at 0.4. This function will return the values for the best fit beta distribution parameters.
=smCauchyAlt(Type1, Value1, Type2, Value2)Cauchy distribution. Type 1 and Type 2 can be the keywords for the distribution parameters "Location" or "Scale" or a value. If Type 1 or Type 2 are values then they are assumed to be percentiles and need to be between 0 and 1. The values correspond to the type as specified. For example =smCauchAlt("0.05", "1", "0.95", "2") implies we need the parameters for the Cauchy distribution such that the 5th percentile is at 1 and the 95th percentile is at 2.
=smErlangAlt(Type1, Value1, Type2, Value2)Erlang distribution. Type 1 and Type 2 can be the keywords for the distribution parameters "Scale" or "Shape" or a value. If Type 1 or Type 2 are values then they are assumed to be percentiles and need to be between 0 and 1. The values correspond to the type as specified. For example =smErlangAlt("0.05", "1", "0.95", "2") implies we need the parameters for the Erlang distribution such that the 5th percentile is at 1 and the 95th percentile is at 2.
=smExtremeValueAlt(Type1, Value1, Type2, Value2)Extreme Value distribution. Type 1 and Type 2 can be the keywords for the distribution parameters "Location" or "Scale" or a value. If Type 1 or Type 2 are values then they are assumed to be percentiles and need to be between 0 and 1. The values correspond to the type as specified. For example =smExtremeValueAlt("0.05", "1", "0.95", "2") implies we need the parameters for the Extreme Value distribution such that the 5th percentile is at 1 and the 95th percentile is at 2.
=smExponentialAlt(Type1, Value1)Exponential distribution. Type 1 can be the keyword for the distribution parameter "Scale" or a value. If Type 1 is a value then it is assumed to be percentile and need to be between 0 and 1. The values correspond to the type as specified. For example =smExponentialAlt("0.95", "2") implies we need the parameters for the Exponential distribution such that the 95th percentile is at 2.
=smGammaAlt(Type1, Value1, Type2, Value2)Gamma distribution. Type 1 and Type 2 can be the keywords for the distribution parameters "Shape" or "Scale" or a value. If Type 1 or Type 2 are values then they are assumed to be percentiles and need to be between 0 and 1. The values correspond to the type as specified. For example =smGammaAlt("0.05", "1", "0.95", "2") implies we need the parameters for the Gamma distribution such that the 5th percentile is at 1 and the 95th percentile is at 2.
=smLaplaceAlt(Type1, Value1, Type2, Value2)Laplace distribution. Type 1 and Type 2 can be the keywords for the distribution parameters "Location" or "Scale" or a value. If Type 1 or Type 2 are values then they are assumed to be percentiles and need to be between 0 and 1. The values correspond to the type as specified. For example =smLaplaceAlt("0.05", "1", "0.95", "2") implies we need the parameters for the Laplace distribution such that the 5th percentile is at 1 and the 95th percentile is at 2.
=smLogNormalAlt(Type1, Value1, Type2, Value2)Log Normal distribution. Type 1 and Type 2 can be the keywords for the distribution parameters "Mu" or "Sigma" or a value. If Type 1 or Type 2 are values then they are assumed to be percentiles and need to be between 0 and 1. The values correspond to the type as specified. For example =smLogNormalAlt("0.05", "1", "0.95", "2") implies we need the parameters for the Log Normal distribution such that the 5th percentile is at 1 and the 95th percentile is at 2.
=smLogisticAlt(Type1, Value1, Type2, Value2)Logistic distribution. Type 1 and Type 2 can be the keywords for the distribution parameters "Location" or "Scale" or a value. If Type 1 or Type 2 are values then they are assumed to be percentiles and need to be between 0 and 1. The values correspond to the type as specified. For example =smLogisticAlt("0.05", "1", "0.95", "2") implies we need the parameters for the Logistic distribution such that the 5th percentile is at 1 and the 95th percentile is at 2.
=smLogLogisticAlt(Type1, Value1, Type2, Value2)Log Logistic distribution. Type 1 and Type 2 can be the keywords for the distribution parameters "Alpha" or "Beta" or a value. If Type 1 or Type 2 are values then they are assumed to be percentiles and need to be between 0 and 1. The values correspond to the type as specified. For example =smLogLogisticAlt("0.05", "1", "0.95", "2") implies we need the parameters for the Log Logistic distribution such that the 5th percentile is at 1 and the 95th percentile is at 2.
=smNormalAlt(Type1, Value1, Type2, Value2)Normal distribution. Type 1 and Type 2 can be the keywords for the distribution parameters "Mu" or "Sigma" or a value. If Type 1 or Type 2 are values then they are assumed to be percentiles and need to be between 0 and 1. The values correspond to the type as specified. For example =smNormalAlt("0.05", "10", "0.95", "20") implies we need the parameters for the Normal distribution such that the 5th percentile is at 10 and the 95th percentile is at 20.
=smParetoAlt(Type1, Value1, Type2, Value2)Pareto distribution. Type 1 and Type 2 can be the keywords for the distribution parameters "Location" or "Scale" or a value. If Type 1 or Type 2 are values then they are assumed to be percentiles and need to be between 0 and 1. The values correspond to the type as specified. For example =smParetoAlt("0.05", "10", "0.95", "20") implies we need the parameters for the Pareto distribution such that the 5th percentile is at 10 and the 95th percentile is at 20.
=smPertAlt(Type1, Value1, Type2, Value2, Type3, Value3)Pert distribution. Type 1, Type 2, Type 3 can be the keywords for the distribution parameters "Min", "Max", "Most Likely" or a value. If Type 1, Type 2, or Type 3 are values then they are assumed to be percentiles and need to be between 0 and 1. The values correspond to the type as specified. For example =smPertAlt("0.05", "10", "0.95", "20", "0.50", "18") implies we need the parameters for the Pert distribution such that the 5th percentile is at 10 and the 95th percentile is at 20 and the 50th percentile is at 18.
=smPowerAlt(Type1, Value1, Type2, Value2)Power distribution. Type 1 and Type 2 can be the keywords for the distribution parameters "Max" or "Shape" or a value. If Type 1 or Type 2 are values then they are assumed to be percentiles and need to be between 0 and 1. The values correspond to the type as specified. For example =smPowerAlt("0.05", "1", "0.95", "2") implies we need the parameters for the Power distribution such that the 5th percentile is at 1 and the 95th percentile is at 2.
=smRayleighAlt(Type1, Value1)Rayleigh distribution. Type 1 can be the keyword for the distribution parameter "Scale" or a value. If Type 1 is a value then it is assumed to be percentile and need to be between 0 and 1. The values correspond to the type as specified. For example =smRayleighAlt("0.95", "2") implies we need the parameters for the Rayleigh distribution such that the 95th percentile is at 2.
=smTriangularAlt(Type1, Value1, Type2, Value2, Type3, Value3)Triangular distribution. Type 1, Type 2, Type 3 can be the keywords for the distribution parameters "Min", "Max", "Mode" or a value. If Type 1, Type 2, or Type 3 are values then they are assumed to be percentiles and need to be between 0 and 1. The values correspond to the type as specified. For example =smTriangularAlt("0.05", "10", "0.95", "20", "0.50", "18") implies we need the parameters for the Triangular distribution such that the 5th percentile is at 10 and the 95th percentile is at 20 and the 50th percentile is at 18.
=smUniformAlt(Type1, Value1, Type2, Value2)Uniform distribution. Type 1 and Type 2 can be the keywords for the distribution parameters "Min" or "Max" or a value. If Type 1 or Type 2 are values then they are assumed to be percentiles and need to be between 0 and 1. The values correspond to the type as specified. For example =smUniformAlt("0.05", "1", "0.95", "2") implies we need the parameters for the Uniform distribution such that the 5th percentile is at 1 and the 95th percentile is at 2.
=smWeibullAlt(Type1, Value1, Type2, Value2)Weibull distribution. Type 1 and Type 2 can be the keywords for the distribution parameters "Eta" or "Beta" or a value. If Type 1 or Type 2 are values then they are assumed to be percentiles and need to be between 0 and 1. The values correspond to the type as specified. For example =smWeibullAlt("0.05", "1", "0.95", "2") implies we need the parameters for the Weibull distribution such that the 5th percentile is at 1 and the 95th percentile is at 2.

Outputs

Click on the Outputs button to open the outputs dialog box. This dialog box can be used to define the outputs from your Monte Carlo analysis simulation. Make sure to select the cell on the worksheet where you want to define the outputs before you click on the Outputs button as the output variable will be defined for that cell location. The following screenshot shows a sample outputs dialog box. outputs1 There may be many outputs in your Monte Carlo simulation model but only some of them may be of interest to analyze and evaluate the performance of the model. Each of those outputs can be modeled using the Outputs button. If the output is defined it can be used for analyzing process capability or sensitivity analysis.
1
Name: Specify a name for your output variable. Make sure that the names are unique and do not contain special characters such as comma (","), colon(":"), semi-colon (";"), parenthesis ("(", ")"), or ampersand ("&"). Keep the name short to keep your text output manageable.
2
Cell Location: By default, the cell location will show the active worksheet cell that was selected before clicking on the Outputs button. You can click on the icon next to this textbox to reselect a different location on the worksheet for the output location. You can also define a range of cells and the software will create outputs at each of these cells. Note that if you do specify a range, the output variables names are appended with name.1, name.2, etc.
3
Formula: Each output cell must contain a formula. The formula is used to calculate the values for the output variables. If a formula is already defined on the worksheet, it will be displayed in this textbox. If not, you can also define a formula here in this textbox and the same will be updated on the worksheet.
4
Capability Analysis: Specify the method to use for performing the capability analysis for this output. The available options are:
OptionDescription
AutoIf you select this option, the software will automatically pick the best approach to use for computing process capability. It will check if your data is normally distributed and if so, it will pick the Normal capability analysis. If not, it will try to estimate the best distribution that fits your data and uses that distribution to determine your process capability analysis.
DistributionIf you specify a specific distribution to use (for example based on historical factors), the software will estimate the parameters for this distribution and use this distribution to estimate your process capability numbers.
5
LSL: Specify the Lower Specification Limit (LSL) for the output variable. These specification limits come from the customer. All values of the output below this value of LSL is considered to be defective. If an output does not have a lower limit, leave this field blank.
6
USL: Specify the Upper Specification Limit (USL) for the output variable. These specification limits come from the customer. All values of the output above this value of USL is considered to be defective. If an output does not have a upper limit, leave this field blank.
7
Sensitivity Analysis: Specify the number of input variables to use for the sensitivity analysis. If you specify All variables, the software will use all the input variables to compute the sensitivity analysis. However, some of the inputs may not be of interest to you. If there are a large number of input variables, you may want to limit the sensitivity analysis to only those input variables of interest to you. Specify the number of input variables and specify which of the input variables you would like to consider in the dropdown boxes below.
8
Select Inputs: Specify the input variables that you would like the software to use for sensitivity analysis in these dropdown boxes.
9
Cancel Button: Click on this button to cancel all changes to the settings and exit this dialog box.
10
Add Button: If this is the first time you are specifying the output distribution, you will need to click on the Add button at the bottom right-hand corner to add this output definition to the model. If you had selected a cell for which output was already defined, then you can update any previously defined settings. Click on the Delete button to delete any previously defined outputs.
When you define a cell as an output variable, the software will add the syntax =smOutput("Name") to the function definition. Where name is the name of your output variable. Make sure all output variable names are unique.

Correlations

The correlations dialog box can be used to define correlations between input variables. This step is optional and if not defined, then all the inputs are assumed to be independent with no correlation between them. You can define the correlations between 2 or more input variables. For example, if you have 2 variables (Length and Width) then you will need to select a 3x3 range on the worksheet (i.e. a range which has 3 rows and 3 columns). If you need to define correlations between 3 variables, you will need to select a 4x4 range, etc. If you have 3 variables but you only want to define a correlation between two of the input variables, you will need to pick a 3x3 range. Note that the first row and the first column are used to define the input variables and the remaining rows and columns are used to define the correlation coefficients.

Click on the Correlations button to open the correlation dialog box. Any previously defined correlation matrix will be displayed here. Note that each Monte Carlo simulation worksheet can have a maximum of one correlation matrix table defined. The following screenshot shows a sample correlation dialog box. correlations1
1
Cell Location: The location textbox defines the location on your worksheet that stores the correlation matrix. To define the correlations, click on the select button next to the range input textbox. Select a range on the worksheet where you want to correlation matrix to be stored. Make sure the range is blank and does not include any other data since this range will be overwritten when the correlations are defined by the dialog box.

2
Input Variables: Once the range has been selected, the dropdown boxes on the right will appear for each input variable. Select the variables of interest here. If you have 10 inputs, it is not necessary to define a correlation between each of the inputs. You only need to define the correlation between those variables that are correlated. Anything that is not defined will be assumed to be uncorrelated. Once you specify the variables, the correlation matrix is shown below. Note that the correlation matrix is symmetric with a value of 1 in the diagonals. Enter the correlation coefficients in the white text boxes. Make sure that the correlation coefficients are between -1 and +1.
3
Correlation Table: The correlation table shows the currently defined correlation coefficients. Review this matrix to check if there are any errors in the correlation coefficients and update this matrix if required.
4
Update Coefficients: The correlation table shows the currently defined correlation coefficients. Note that the matrix is symmetric and the correlation coefficients can be updated in the white cells. If the values in the white cells are 0, then there is no correlation between the two selected variables. Make sure that all correlation coefficients are between -1 and +1.
5
Cancel Button: Exit this dialog box without making any changes.
6
Delete Button: Click on this button to delete the entire correlation matrix table from your simulation. Note that all the correlation coefficients will be removed and your inputs will no longer be correlated if you click on this button.
7
OK Button: Click on the OK button to save the correlation coefficients. The values defined in the dialog box will be saved to the worksheet. Note that once you define the correlation matrix you can click on the Correlations button at anytime to review what has been defined earlier.

Sim Table

A simulation table enables you to automate running multiple simulations at one go. For example, if you want to test the impact of distribution parameters on your simulation, you could use a simulation table and run the first simulation with the first set of distribution parameters and the second simulation with the second set of distribution parameters. The simulation table parameters are not random variables but take on a limited set of fixed values. Another example of its use could be when we want to make business decisions based on NPV values but the interest rates could be 7%, 7.5%, or 8%. We could run three simulations with the interest rates set at these values. The advantage of using simulation tables is that we don't have to manually change these parameters and run the simulations separately. We could use the same set of random numbers for each of these simulations so that the variability of the random numbers does not affect our decision. You can have any number of variables within the simulation table.

Click on the Sim Table button to open the simulation table dialog box. The following screenshot shows a sample simulation table dialog box. simtable1
1
Cell Location: The location textbox defines the location on your worksheet that stores the simulation table. To define the simulation table, click on the select button next to the range input textbox. Select a range on the worksheet where you want to simulation table to be stored. If you have 2 simulation runs, you need to pick three-row (one for the header). If you are only changing one variable, you need to pick 2 columns (one for row number). If you are modifying 2 variables, you need to pick three columns and so on. Depending on the size of the range you pick, the appropriate number of cells is displayed in the dialog box. Make sure the range is blank and does not include any other data since this range will be overwritten when the simulation table is defined by the dialog box.

2
Target Cell: Once the range has been selected, a textbox will appear on the top of each column. You will need to specify the location of the worksheet cell that will be modified by the simulation table. For example, if you enter K5 in this cell for each run of the simulation, the values from the simulation table will be used to update the location K5 on the worksheet before that particular simulation is run. The first simulation is run by placing the value 12 in cell K5. The second simulation is run by placing the value 13.5 in cell K5 and so on. If you have two variables defined, then you will need to specify two worksheet locations that will be modified. It is up to the simulation model you have developed how you incorporate K5 in your model equations.
3
Table Values: Define the values to be used for each simulation run. These values can either directly be edited here in the dialog box or entered on the worksheet. In the example shown above, the simulation table values are 12 for the 1st simulation, 13.5 for the 2nd simulation, and 15 for the third simulation. You can have any number of simulations (rows) defined and you can simultaneously modify any number of variables (columns) for each simulation.
4
Delete Button: Click on this button to delete the entire simulation table from your simulation. Note that all the simulation values will be removed and your inputs will no longer be correlated if you click on this button.
5
OK Button: Click on the OK button to save the simulation table to the worksheet. The values defined in the dialog box will be saved to the worksheet. Note that once you define the simulation table you can click on the Sim Table button at anytime to review what has been defined earlier.

Functions

The functions dialog box lets you summarize the basic statistical analysis of inputs and/or outputs so that the results can be displayed on the worksheet. For example, if the output of interest for your analysis is profit, then for each iteration of the simulation you will get a different value of profit. Taken overall iterations the profit will follow a distribution and will have values ranging from a minimum to a maximum value. If you are interested in the mean value of the profit, you can specify the function to calculate the mean of the profit for a given simulation number and save the result on the worksheet. This function is useful to summarize and document the results of the analysis directly on the worksheet.

Click on the Functions button to open the functions dialog box. Make sure to click on the worksheet cell where you want to define the function before clicking on the Functions button. The following screenshot shows a sample functions dialog box. functions1
1
Function Name: Defines a name for the function. Currently, this feature is not enabled for the user to select the function name.
2
Cell Location: The location textbox defines the location on your worksheet that stores the function value. In order to define the function, click on the select button next to the range input textbox. Select a range on the worksheet where you want to simulation table to be stored.
3
Variable: Select the input or output variable for which you want to compute the function value. You can only pick one variable at a time. If you need to summarize other variables then you will need to define more than one function for your simulation.
4
Simulation Number: Specify the simulation number for which this function needs to summarize the values. If you have 3 simulations and you want a summary for each simulation, you will need to define 3 functions and store them in different cells on the worksheet.
5
Measure: Specify what sort of measure you want to report. The available options are:
OptionFunction SyntaxDescription
N=smN("Name", [Sim Number])Reports the number of data points for that variable. If you are using multiple simulations, specify the simulation number as the last parameter. The default value is 1.
Min=smMin("Name", [Sim Number])Reports the minimum value of that variable. If you are using multiple simulations, specify the simulation number as the last parameter. The default value is 1.
Max=smMax("Name", [Sim Number])Reports the maximum value of that variable. If you are using multiple simulations, specify the simulation number as the last parameter. The default value is 1.
Mean=smMean("Name", [Sim Number])Reports the mean value of that variable. If you are using multiple simulations, specify the simulation number as the last parameter. The default value is 1.
Median=smMedian("Name", [Sim Number])Reports the median value of that variable. If you are using multiple simulations, specify the simulation number as the last parameter. The default value is 1.
Stdev=smStdev("Name", [Sim Number])Reports the standard deviation of that variable. If you are using multiple simulations, specify the simulation number as the last parameter. The default value is 1.
Skewness=smSkewness("Name", [Sim Number])Reports the skewness value of that variable. If you are using multiple simulations, specify the simulation number as the last parameter. The default value is 1.
Kurtosis=smKurtosis("Name", [Sim Number])Reports the kurtosis value for that variable. If you are using multiple simulations, specify the simulation number as the last parameter. The default value is 1.
Probability=smProbability("Name", X Value, [Sim Number])Reports the cumulative probability value for that variable. You will need to specify the value for which to compute the probability. For example, if you have an input called "Length" which is normally distributed with a mean of 100 and standard deviation of 10. Then if you specify the parameter as 110, then it will report the probability of values that are less than 110. If you are using multiple simulations, specify the simulation number as the last parameter. The default value is 1.
Percentile=smN("Name", Prob, [Sim Number])Reports the percentile value for that variable. You will need to specify which percentile in the Parameter textbox. For example, if you have an input called "Length" which is normally distributed with a mean of 100 and standard deviation of 10. Then if you specify the parameter as 0.1, then it will report the value of Length such that the probability of values to the left is 10%. The parameter values should be specified between 0 to 1 for this option. If you are using multiple simulations, specify the simulation number as the last parameter. The default value is 1.
If you want other functions not defined here, do note that the raw simulation output data are also stored on the worksheet and you can use these numbers to define other calculations and store the results on the worksheet.

Model Summary

The model summary summarizes the Monte Carlo simulation model that you have developed. It can be used to ensure that you have captured the model correctly. You can click on the Model Summary button on the task menu bar to get a summary of your model. A sample dialog box of the model summary is shown in the figure below. modelsummary1
1
Inputs: This tab shows you all the inputs you have defined in the model. The number within the parenthesis shows the number of inputs. The listbox contains the input number, the name of the input, the cell number which stores the input variable, and the distribution name & parameters for that input.
2
Outputs: This tab shows you all the outputs you have defined in the model. The number within the parenthesis shows the number of outputs. The listbox contains the output number, the name of the output, the cell number which stores the output variable, the method used to calculate process capability, and the lower and upper specification limits.
3
Functions: This tab shows you all the function you have defined in the model. The number within the parenthesis shows the number of functions. The listbox contains the function number, the variable name, the cell number which stores the function variable, the simulation number for which the data is calculated, and the metric (such as mean) and any required parameters. For example, if you have an output variable ABC, when you generate 100 random numbers, you will be generating 100 values of the variable ABC. You can define a function to calculate the mean value of ABC and store it in a cell, say E4. Functions can be useful to save summary statistics of your input and/or output variables on your worksheet.
4
Correlations: This tab shows you all the correlations you have defined in the model. The number within the parenthesis shows the number of correlations defined. The list box contains the correlation number, the two input variables between which the correlation is defined, and the correlation value. Note that if the correlation value is 0 (which means no correlation), then those pairs of inputs are not listed in this dialog box.
5
Sim Table: This tab shows you all the simulation table values defined in the model. The number within the parenthesis shows the number of simulations defined. The list box contains the simulation number, the cell location that needs to be modified, and the values that need to be put into that cell for each simulation run. For example, if there are 3 simulations defined for cell D4 with values 1, 2, 3. Then the first simulation is run with D4 = 1, the second simulation is run with D4 = 2, and the third simulation is run with D4 = 3.
6
Errors: This tab shows you all the errors that were detected in the model. The number within the parenthesis shows the number of errors detected. The list box contains the error number, the source of the error (input, output, function, etc.), and a brief description of the error. Note that you will not be able to simulate until you fix all the reported errors.

Run Simulation

Once you have defined the model, you can simulate to generate random numbers and compute simulation outputs and model results. Note that each time you run the simulation you may get slightly different results if you have selected the option to generate different random numbers each time. On the task menu bar, you have three options, seed, iterations, and simulations. You can also click on Ctrl-Alt-F9 to run the simulation one iteration. Note that this can be used to test if your inputs and output cells are working okay on the worksheet, running 1 iteration does not generate any reports or analysis results. This option will only update your worksheet if you have specified the Random Seed option as Random in the Analysis Setup dialog box. Task Menu
1
Seed: The seed value determines how the random numbers are generated. If the value of the seed is 0, then new random numbers are generated each run, otherwise, the same set of random numbers will be generated. This can be especially useful if you want repeatable results or want to compare your analysis with someone else.
2
Iterations: The number of iterations indicates the number of times random numbers will be generated. You need to have a sufficient number of iterations to ensure you can simulate the full range of variation of the input variables. If the number of iterations is small, you will get different results each time you run the simulation. If the number of iterations is too large, it will consume significant computer bandwidth to generate and store a large number of data points. The simulation results may not significantly get better after a certain point. Hence, it is recommended that you keep the number of iterations small initially and then slowly increase the number of iterations until you don't find much change in the analysis results. If you are using the tolerance feature to achieve a certain level of tolerance, then this value will be set at Auto. However, if your Analysis Setup option for Runs Criteria is "Iterations", then value in this textbox should be numeric.
3
Simulations: The number of simulations determines how may rows of the simulation table are executed. The appropriate parameters of the simulation table are set for each simulation. For example, for the simulation table described earlier, for the first simulation the J10 cell is set to 10, for the second simulation, the J10 cell is set to 20, etc. before the simulation is run. If the number of simulations is less than the number of rows of the simulation table, then only the corresponding rows of the simulation table are run. It will report an error if you specify the software to run a greater number of simulations that what is available in the simulation table. In most cases, we recommend that the number of simulations equals the number of rows defined in the simulation table so there is no confusion on what simulation parameters are being set for each simulation. Try to avoid using the simulation table when running model optimization.

Graphs

After the simulation runs are executed, the simulation results are stored in the Simulation Data section on the right. The simulation results are stored in the following format: the columns consist of all the input variables and then all the output variables for the first simulation and then all the input variables and all the output variables for the second simulation and so on. The number of rows of data corresponding to the number of iterations specified for the problem. The function results are directly stored in the specified worksheet cells on the left in the model section. Let's review all the graphs that be generated for this template below.

Box Plot

Click on the Box Plot button in the task menu bar to compare multiple simulations. A box plot dialog box is opened as shown below. compare
1
Variable: Select the variable for which you would like to compare simulation runs. The dropdown box lists all the input and output variables. You can choose to plot a single variable or select All to compare all variables on the same plot.
2
Group: Select the simulation number you want to use to create the box plot. You can either select All where all the groups are used or you can use a single simulation data to compare the groups.
3
Outliers: Specify whether you want to show or hide outliers. If you choose to show outliers, any data points that are too far away from the median value are shown as a dot outside the whiskers.
4
Box Plot: At the bottom, you can specify you want to display the data as a box plot or as a confidence interval of the means.
5
Statistics: On the right hand side, a brief set of statistics for the given data set are shown. Currently, the following stats are shown for each group.
OptionDescription
GroupThe group number for the descriptive stats shown below
MinMinimum value found in the data set
MaxMaximum value found in the data set
MeanMean value of the data set
StdevStandard Deviation of the data set
Q1First quartile of the data set
Q2Second quartile of the data set
Q3Third quartile of the data set
6
Overlay Lines: If you want to superimpose additional horizontal or vertical lines on your boxplot, you can specify the values in these textboxes and those additional lines are displayed on your plot. Note that only lines within the current graph boundaries are displayed.

Capability Analysis

Click on the Capability button in the task menu bar. A capability analysis dialog box is opened as shown below. capability
1
Variable: Select the variable for which you would like to analyze the capability. The dropdown box lists all the input and output variables.
2
Group: Select the group variable. The group variable is the simulation number. So, if you would like to create a histogram for the first simulation, select the group number as 1.
3
Distribution: Specify the distribution you want to fit to estimate the process capability. If you specify "Normal" for example, the software will fit the best possible Normal distribution and use this distribution to estimate process capability.
4
Specs: Specify which tails you want to include in your capability analysis. If you specify LSL, then only the lower specification limit is included in the calculations. If you specify USL, then only the upper specification limit is included in the calculations. If you specify Both, then both lower and upper specification limits are included in the process capability calculations.
5
Textbox Options: At the bottom, you can specify the specification limits to use for LSL and USL. The software will try to get these from the model, but you can feel free to change them and try out different values to see how it will impact your analysis results.
6
Capability Stats: The statistics section shows the following metrics:
OptionDescription
NNumber of data points
MinMinimum value found in the data set
MaxMaximum value found in the data set
MeanMean value of the data set
Std DevStandard Deviation of the data set
LSLLower Specification Limit
USLUpper Specification Limit
Cp.LProcess capability index on the LSL side
Cp.UProcess capability index on the USL side
CpkProcess capability index considering both LSL and USL
CpPotential process capability (requires both LSL and USL to compute)
Z.LSigma quality level considering the LSL
Z.USigma quality level considering the USL
ZOverall Sigma level
PPM (Obs)Observed defects per million opportunities (from the raw data)
PM (Exp)Expected defects per million opportunities (from the distribution fit)
P ValueP value of the distribution fit (to check how well the distribution fits the data)
6
Spec Limits: Specify the values for the LSL and/or USL. These values are used to calculate the capability indices and update the chart. Note that these values are used for analysis only on "blur" - that is moving your cursor away from that textbox after entering the data. Changing the Spec Limits will automatically update the probability values on the right.
7
Prob Limits: Specify the values for the probability to the left of LSL and/or to the right of USL. These values are used to calculate the capability indices and update the chart. Note that these values are used for analysis only on "blur" - that is moving your cursor away from that textbox after entering the data. Changing the Prob Limits will automatically update the spec limits on the left.

Histogram

Click on the Histogram button in the task menu bar. A histogram dialog box is opened as shown below. histogram
1
Variable: Select the variable for which you would like to generate the histogram. The dropdown box lists all the input and output variables.
2
Group: Select the group variable. The group variable is the simulation number. So, if you would like to create a histogram for the first simulation, select the group number as 1.
3
Distribution: Specify the distribution you want to fit and superimpose on the histogram. If you specify "Normal" for example, the software will fit the best possible Normal distribution to the data and superimpose it on the histogram in green color.
4
Prob: Specify if you want to highlight the tails of the distribution fit. If you specify P10, then the software will draw the vertical lines which show 5% of the data points to the left, 90% of the data points in the middle, and 5% of the data points on the right. These tails are based on the actual data points - the software will calculate the percentile values to determine these limits. The data shown at the top is for the best fit distribution. So, these numbers may not match the raw data if there is a poor fit for the distribution of the data points. Note that you can click on the percentages or the limit values to make changes to these numbers to see how the shaded areas change.
5
Checkbox Options: At the bottom, there are three checkbox options, you can either plot the probability density function (PDF), or the cumulative probability density function (Ascending), or the Cumulative probability density function (descending) for the best histogram.
6
Histogram: The histogram of your data is listed in this area. It includes the histogram, the distribution fit for the given data and areas shown in red if the fit falls outside the specification limits.
7
Statistics: On the right hand side, a brief set of statistics for the given data set are shown. Currently, the following stats are shown.
OptionDescription
NNumber of data points
MinMinimum value found in the data set
MaxMaximum value found in the data set
MeanMean value of the data set
MedianMedian value of the data set
ModeMode of the data set (not the histogram bins or the fit)
RangeRange value (max-min) of the data set
Std DevStandard Deviation of the data set
SkewnessSkewness value of the data set
KurtosisKurtosis value of the data set
PercentilesP1 refers to the 1st Percentile and so on
QuartilesQ1 refers to the 1st Quartile and so on
P ValueThe P value of the selected probability distribution
8
Spec Limits: Specify the values for the LSL and/or USL. These values are used to calculate the capability indices and update the chart. Note that these values are used for analysis only on "blur" - that is moving your cursor away from that textbox after entering the data. Changing the Spec Limits will automatically update the probability values on the right.
9
Prob Limits: Specify the values for the probability to the left of LSL and/or to the right of USL. These values are used to calculate the capability indices and update the chart. Note that these values are used for analysis only on "blur" - that is moving your cursor away from that textbox after entering the data. Changing the Prob Limits will automatically update the spec limits on the left.

Scatter Plot

A scatter plot can be used to compare two continuous data sets to determine visually if they are correlated. Click on the Scatter Plot button in the task menu bar to create a scatter plot between two variables. A scatter plot dialog box is opened as shown below. scatter plot
1
X Variable: Select the variable that you would like to use for your X axis for your scatter plot. The dropdown box lists all the input and output variables.
2
Y Variable: Select the variable that you would like to use for your Y axis for your scatter plot. The dropdown box lists all the input and output variables.
3
Group: Select the group variable. The group variable is the simulation number. So, if you would like to create a histogram for the first simulation, select the group number as 1. If you select All then all the simulation groups are used to create the scatter plot. Note that each subgroup (or simulation) is plotted using a different color.
4
Distribution: Specify the distribution you want to fit and superimpose on the histogram. If you specify "Normal" for example, the software will fit the best possible Normal distribution to the data and superimpose it on the histogram in green color.
5
Filter: Sometimes you may not want to plot all the data points on the scatter plot, especially if you have too many points in your data set. The scatter plot can become very crowded and it can consume significant computing resources to generate the scatter plot. In this case, we can use the filter to randomly select a subset of the data to create the scatter plot. Note that sequential sampling is used to select the random numbers. For example, if you select a filter of 10%, then only 10% of the data points are used to generate the scatter plot. The default value is None or no filter where all the data points are used to create the scatter plot.
6
Checkbox Options: At the bottom, there are three checkbox options, you can superimpose a fit on the data points that is either linear, quadratic, or cubic.
7
Statistics: On the right hand side, a brief set of statistics for the given data set are shown for the X and Y data set. Currently, the following stats are shown.
OptionDescription
NNumber of data points
X MinMinimum value found in the X data set
X MaxMaximum value found in the X data set
X MeanMean value of the X data set
X StdevStandard Deviation of the X data set
Y MinMinimum value found in the Y data set
Y MaxMaximum value found in the Y data set
Y MeanMean value of the Y data set
Y StdevStandard Deviation of the Y data set
Pts Q1Percentage of data points that fall in the first quadrant (right hand top corner)
Pts Q2Percentage of data points that fall in the second quadrant (left hand top corner)
Pts Q3Percentage of data points that fall in the third quadrant (left hand bottom corner)
Pts Q4Percentage of data points that fall in the fourth quadrant (right hand bottom corner)
CorrelationPearson's correlation coefficient between X and Y data sets
P ValueStatistical significance test for the correlation study
8
Overlay Lines: If you want to superimpose additional horizontal or vertical lines on your scatter plot, you can specify the values in these textboxes and those additional lines are displayed on your plot. Note that only lines within the current graph boundaries are displayed.

Sensitivity Analysis

Click on the Sensitivity button in the task menu bar to view the sensitivity analysis. A sensitivity analysis plot dialog box is opened as shown below. sensitivity
1
Variable: Select the variable for which you would like to generate sensitivity analysis. The dropdown box lists all the output variables. The sensitivity analysis is performed with respect to the input variables.
2
Group: Select the simulation number you want to use to create the box plot. The sensitivity analysis results may change between different simulation runs.
3
Method: Specify the method used to determine sensitivity analysis numbers. You can choose between correlation or regression. If you pick correlation, then the Spearman rank correlation coefficients are used. If you pick regression, then the Pearson correlation coefficients are used.
4
Filter: Sometimes, instead of looking at all the data, you may want to only consider the top 10% of the data points. You want to determine if the top 10% of the data points have a different sensitivity compared to using all the data. In this case, you can choose the filter as Top 10%. Similarly, you can compute sensitivity analysis for the top 20%, top 30%, bottom 10%, the bottom 20%, and bottom 30% of the data.
5
Statistics: On the right hand side, a brief set of statistics for the given data set are shown. Currently, the following stats are shown for each group.
OptionDescription
NNumber of data points in the analysis
1: Variable NameCorrelation Coefficient (lists the most important variable first)
2: Variable NameRemaining variables & correlation coefficients (in decreasing order)

Trend Plot

Click on the Trend Plot button in the task menu bar to plot a trend for a range of simulated values. For example, you may have generated outputs for revenue for a company for 7 years. You want to get an idea of how the revenue is changing with time. Each revenue data point is a random variable, so you can plot the trend of the mean value or the percentiles to get an idea of how the revenue is changing with time. To create this plot, you will need to use the Trend Plot. sensitivity
1
Range: First select a range for creating the trend plot. The range you pick may contain input or output variables. The data from these variables is used to create the trend plot. Make sure that the range you select is in the proper time sequence, the first data point is plotted first, the second data point is plotted second etc.
2
Simulation: Select the simulation number you want to use to create the trend plot.
3
Interval: If you would like confidence intervals on the plot, specify the period. For example, if you select P80, then the 80% confidence interval bounds are plotted. The bottom red line will be at 10% and the top red line will be at 90%.
4
Statistics: On the right hand side, a brief set of statistics for the given data set are shown. Currently, the following stats are shown for each group.
OptionDescription
1Print the mean value for each variable in the list
2Print the lower confidence interval for each variable (depends on interval selected)
3Print the upper confidence interval for each variable (depends on interval selected)

Analysis Results

Analysis Outputs

Click on the Reports button in the task menu bar to specify which reports you would like to output after running the Monte Carlo simulation. A sample reports dialog box is shown below. report - notes The following set of notes can be generated from this analysis:

OptionDescription
Input SummarySpecify what information you want to display in the notes section for the model, inputs, outputs, random numbers and assumptions.
Basic Stats (Inputs)Specify for which of the input variables you want to display the basic statistical summary. A histogram is plotted for this selection.
Basic Stats (Outputs)Specify for which of the output variables you want to display the basi statistical summary. A histogram is plotted for this selection.
Correlation MatrixSpecify for which combination of inputs and/or outputs you want to display the correlation matrix. A scatter plot will be plotted for this selection.
Capability AnalysisSpecify for which outputs you want to display the capability analysis. A capability plot will be plotted for this selection.
Sensitivity AnalysisSpecify for which outputs you want to display the sensitivity analysis results. A sensitivity chart of relative contribution will be plotted for this selection.
Simulations Box PlotSpecify for which output variables you want to compare the simulations box plot. A box plot will be plotted for this selection.
The notes and the graphs will be updated at the end of the simulation run based on the settings you make in the reports dialog box. Note that you may not need to rerun the simulation if you make changes to the report's settings. It will use the simulation run results from the earlier run (if available) to update the reports.

Optimize Model

You can use the Optimize Model to optimize a set of parameters to achieve a certain objective. Note that currently, Sigma Magic software has three methods for performing the optimal value search: A grid point enumeration to search through the sample space by running all possible combination of inputs, a random search: which uses random number values for each of the decision variables to look for an optimal value, and an evolutionary algorithm that uses genetic algorithms to optimize your model.

A sample dialog box of the Optimize model is shown below. There are multiple tabs in this dialog box shown on the right such as Variables (#2), Objectives (#3), Constraints (#4), Requirements (#5), Options (#6) etc. You can click on these buttons to switch between the different tabs. Let's first focus on the variables tab. optimize inputs
1
Num Variables: Specify the number of decision variables. You can have up to 100 decision variables for your optimization model. Decision variables are variables which are under the control of the designer and we are interested in finding those settings that will result in an optimal output from our model. For example, if we are designing a heating coil, the random variables could be voltage and current which could change randomly within a range. The output of interest could be the time to heat the coil and a possible decision variables could be the length of the coil or the resistivity of the coil which the designer can adjust.
7
Data Type: Specify if your decision variable is continuous or discrete. A continuous decision variable can take any values between the min/max while a discrete decision variable can take only a limited set of values such as 0, 1 or 0, 0.5, 1.0 etc.
8
Cell Location: Specify the location of the decision variable that needs to be optimized. The value on the worksheet will be varied to search for an optimum. Note that decision variables are not input variables defined in the model which vary depending on the specified probability distribution.
9
Minimum: Specify the minimum value of the input variable. No values below this will be searched. Make sure that the minimum value is based on what you can practically achieve for this model in the real world. For example, if the length of the coil is a decision variable and we can probably use coils from 0.1 mm to 1 mm. Then the minimum value is 0.1 mm.
10
Maximum: Specify the maximum value of the input variable. No values above this will be searched. Make sure that the maximum value is based on what you can practically achieve for this model in the real world. For example, if the length of the coil is a decision variable and we can probably use coils from 0.1 mm to 1 mm. Then the maximum value is 1 mm.
11
Increment: Specify the increment value. This value is only used for discrete decision variables. In the previous example, if the increment value is 0.1, then the software will only test decision values such as 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0. For continuous decision variables, this value will be ignored and any continuous value between the minimum and maximum is selected.
12
Cancel Button: Cancel all changes and exit this dialog box.
13
OK Button: Save the changes and start the optimization.
Once you have specified all the decision variables, let's next specify the objective functions. Click on the Objectives tab (#3) to specify the objectives. A sample dialog box is shown below. optimize objectives
1
Num Objectives: Specify the number of objective functions you have for your optimization. For example, if you want to maximize productivity while minimizing costs, you would have two objective functions productivity and cost.
2
Type: Specify the type of objective. There are three options available
OptionDescription
MinimizeUse this option if you want to minimize the value of the objective function. An example could be if the objective function is cost and we want to create a design at the lowest possible cost.
TargetUse this option if you want to achieve a specific target value for the objective function. An example could be temperature of the room where too high or too low values are not good for the occupants.
MaximizeUse this option if you want to maximize the value of the objective function. An example could be productivity. We want to achieve as much of it as possible.
3
Cell Location: Specify the location of the cell that contains the objective function. The value located in this cell is optimized. Make sure to specify a valid Excel cell location such as E14 or $E$14 etc.
4
Lower Limit: Specify the lowest possible value for the objective function that can possibly be achieved. This value is used to compute the desirability function for our optimization. For example, if the temperature of the room needs to have a target value of 21 but can range from 18 to 24. Then the lower limit is set at 18. Any value of temperature less than lower limit is given a desirability value of 0 (for target optimization). If we are trying to minimize an objective, any value of the objective function less than the lower limit is given a desirability value of 1. Similarly, if we are trying to maximize an objective function, any value of the objective function less than the lower limit is given a desirability value of 0.
5
Target Value: Specify the target value you would like to achieve. This value is only required to be specified if your objective type is achieving a target value. The desirability is 1.0 when the objective function reaches the target value. This value is not required for minimization or maximization objective functions.
6
Upper Limit: Specify the largest possible value for the objective function that can possibly be achieved. This value is used to compute the desirability function for our optimization. For example, if the temperature of the room needs to have a target value of 21 but can range from 18 to 24. Then the upper limit is set at 24. Any value of temperature greater than the upper limit is given a desirability value of 0 (for target optimization). If we are trying to maximize an objective, any value of the objective function greater than the upper limit is given a desirability value of 1. Similarly, if we are trying to minimize an objective function, any value of the objective function greater than the upper limit is given a desirability value of 0.
5
Weight: Specify the weights. This is especially useful if there are multiple objective cells. The weights determine the relative importance of each objective. The desirability functions of each objectives are calculated and combined into a single desirability function using the weights. Greater the weight specified, more important is that objective function relative to other objective functions.
Once you are done defining the objectives tab, click on the Constraints tab to define the constraints for your optimization and Requirements tab to define any requirements for your model. Constraints and Requirements are very similar. A constraint is a condition that is tested before the execution of the optimization model. If the constraint is not satisfied then that combination of inputs/decision variables are not tested. For example, if we have two decision variables A and B where A can take values from 0 to 1 and B can take values from 0 to 2. A constraint such as B > A will ensure that we only test those conditions when B is greater than A. A requirement on the other hand is tested after the simulation run. For example if C is an output from the model and we require C to be less than 4. Then a solution is not valid if the C values are greater than 4. The constraints are tested before each simulation run and the requirements are tested after each simulation run. optimize constraints
1
Num Constraints: Specify how many constraints you would like to define for your optimization model. Note that there is no need to specify the minimum and maximum values for the decision variables since these are already specified on the variables dialog box.
2
LHS Value: Specify the cells that contain the constraints. You can either select a cell or enter a value in the dialog box settings.
3
Relation: Specify if the left hand side is less than, equal to, or greater than the right hand side.
4
RHS Value: Specify the cells that contain the constraints. You can either select a cell or enter a value in the dialog box settings.
Finally, specify any options for this optimization model by clicking on the Options tab on the right. A sample dialog box of these settings are shown in the image below. optimize constraints
1
Method: Specify the method to use for optimization. There are three methods available for this optimization:
OptionDescription
AutoThe software will pick the best algorithm for optimization. If the design space is small then it may choose to run all possible combinations to find the optimal solution or use an evolutionary approach for larger problems.
EvolutionaryUses a genetic algorithm to optimize the model. A genetic algorithm is a type of optimization algorithm inspired by the principles of natural selection and genetics. It is a computational approach that aims to solve complex problems by mimicking the process of evolution in nature. In a genetic algorithm, a population of candidate solutions (called individuals or chromosomes) is created and evaluated based on a fitness function that quantifies how well they solve the problem at hand. The fittest individuals are then selected for reproduction, and their genes (i.e., their solution representations) are combined to create new offspring. The new offspring undergo mutation and/or crossover (i.e., recombination of genes) to generate a new population of individuals. This process is repeated iteratively until a satisfactory solution is found or a predetermined stopping criterion is met. Genetic algorithms have been applied to a wide range of problems, such as optimization, machine learning, scheduling, and robotics. They are particularly useful for problems that are difficult to solve using traditional methods, such as those with a large search space, multiple objectives, or nonlinearity.
Grid SearchRuns all possible combinations of decision variables using a grid matrix. For example, if A and B are decision variables and take values 0 and 1. Then the four tests that are run are (A, B) = (0, 0), (0, 1), (1, 0), (1,1).
Random SearchSoftware will randomly choose the decision variables and run the model to find the best solution. There is no guarantee that the optimal solution is found but if you run the simulation long enough it is possible that you may hit upon the optimal solution.
2
Screen Display: Specify if you want to update the display in between runs. If you specify Yes then the screen updating is turned on. For each iteration the values on the worksheet are updated. This can considerably slow down your optimization. It is recommended that you keep the Screen Display to No.
3
Max Iterations: Specify the maximum number of iterations to run the optimization algorithm. Note that you can always continue to run from the last case to increase the number of runs. For example, if you set max iterations as 100 and your analysis is completed, you can click on the Continue button to run another 100 iterations.
4
Max Time: Specify how long you want the optimization algorithm to run. If you specify unlimited time then the stopping criteria is either the solution converges to an optimal solution or the number of iterations is exceeded. If you specify a time value then the optimization stops after reaching the time limit. It is recommended that you leave this setting at Unlimited time.
5
Population Size: The population size in a genetic algorithm refers to the number of individuals in the population at any given generation. It is a critical parameter that can affect the performance of the algorithm.

A larger population size typically leads to a more diverse set of solutions and a higher probability of finding a better solution. This is because a larger population provides more genetic material for the recombination and mutation operations, which can lead to a wider exploration of the search space. However, a larger population size also requires more computational resources and can result in slower convergence rates. Conversely, a smaller population size can lead to faster convergence rates, but at the cost of reduced diversity in the population, which can lead to premature convergence and suboptimal solutions. The choice of the population size depends on the complexity of the problem, the available computational resources, and the desired convergence rate.

In practice, the population size is often determined through experimentation and tuning to find a balance between exploration and exploitation.
6
Tolerance: The tolerance or stopping criterion in a genetic algorithm refers to a condition that signals the termination of the algorithm. This condition can be based on various factors, such as the fitness of the individuals in the population, the number of generations, or the time taken to reach a solution. Once the stopping criterion is met, the algorithm terminates, and the best individual in the final population is returned as the solution.

The choice of tolerance or stopping criterion depends on the problem and the requirements of the application. It is important to balance the trade-off between finding an optimal solution and the computational resources required to achieve it. For instance, if the goal is to find the best possible solution, a very strict stopping criterion may be used, even if it requires a lot of computational resources. On the other hand, if the goal is to find a good solution within a limited time or resources, a looser stopping criterion may be used to terminate the algorithm sooner.
7
Crossover Rate: The crossover rate in a genetic algorithm refers to the probability that two individuals will exchange genetic information during reproduction. It is a parameter that controls the frequency of crossover (also known as recombination) operations in the algorithm.

During the crossover operation, pairs of individuals are randomly selected from the population, and some of their genetic material is exchanged to create new offspring. The crossover rate determines the probability that a crossover operation will be applied to a pair of individuals. A high crossover rate can lead to a faster convergence rate, as it promotes the exchange of genetic material and the creation of diverse offspring. However, a very high crossover rate can lead to premature convergence and reduce the diversity of the population.

Conversely, a low crossover rate can reduce the diversity of the population and increase the time required for convergence. It can also result in the algorithm getting stuck in local optima.

The choice of the crossover rate depends on the complexity of the problem, the population size, and the desired balance between exploration and exploitation. In practice, the crossover rate is often determined through experimentation and tuning to find the optimal rate that balances exploration and exploitation for a particular problem.
8
Mutation Rate: Mutation rate in genetic algorithm refers to the probability that a gene in an individual will be subject to a random change during reproduction. In other words, it is the rate at which mutations occur in the genes of the offspring during the recombination process.

The mutation rate is a critical parameter in genetic algorithms, as it controls the balance between exploration and exploitation. A higher mutation rate can increase the diversity of the population, which can help the algorithm to escape from local optima and explore the search space more extensively. However, a very high mutation rate can lead to excessive randomness and decrease the convergence rate. Conversely, a lower mutation rate can lead to faster convergence rates, but at the cost of reduced exploration and the possibility of getting stuck in a local optimum.

The choice of mutation rate depends on the complexity of the problem, the population size, and the desired balance between exploration and exploitation. In practice, the mutation rate is often determined through experimentation and tuning to find the optimal rate that balances exploration and exploitation for a particular problem.
Click on Optimize to start the optimization algorithm. The software will run the Monte Carlo simulation at all possible combinations of the input variables. Once the simulation is completed, the software will list all the possible combinations of inputs and their associated objective values and whether these sets of inputs satisfy the constraints specified. The software also lists in the last column whether that combination of inputs optimizes the problem. Note that there may be more than one optimal solution. It will give you an option to save the last optimal solution back to your worksheet. optimize solution Since enumeration is used to solve this problem, the solution results in a global optimum subject to the size of the discretization increment. For a more accurate solution, you can increase the number of increments, however, this will take a lot longer to run the Monte Carlo simulation.

Notes

Monte Carlo simulation is a powerful tool for approximating complex mathematical models and analyzing systems subject to uncertainty. However, it is important to be aware of some potential pitfalls when using Monte Carlo simulation. Here are a few things to watch out for:
  • Sample size: The accuracy of Monte Carlo simulation depends on the number of samples used. If the sample size is too small, the simulation may not capture the full range of outcomes or be subject to high levels of statistical variability. It is important to use a sufficiently large sample size to ensure accurate results.
  • Sampling bias: Monte Carlo simulation relies on randomly sampling from a distribution to generate data. However, if the sampling process is biased, the results of the simulation may be biased as well. It is important to use a representative and unbiased sample to ensure accurate results.
  • Model assumptions: Monte Carlo simulation is only as good as the underlying model it is based on. If the model assumptions are incorrect or incomplete, the simulation results may be inaccurate or misleading. It is important to carefully validate and verify the model assumptions before using Monte Carlo simulation.
  • Convergence: Monte Carlo simulation involves running many simulations to estimate the distribution of outcomes. However, it is important to ensure that the simulation results are converging to a stable solution. If the results are not stable, additional simulations may be required to achieve convergence.
  • Interpretation of results: Finally, it is important to carefully interpret the results of Monte Carlo simulation. The simulation provides an estimate of the distribution of outcomes, but it does not guarantee a particular outcome or provide a definitive answer. It is important to use the results of the simulation in conjunction with other information and analysis to make informed decisions.

Examples

Following examples can be found in the Examples folder.
  • Use the Monte-Carlo simulation to calculate the expected profit for a basic business model. Refer to the file: Monte Carlo Basic Profit.xlsm.
  • Use the Monte-Carlo simulation for cost estimation. Refer to the file: Monte Carlo Cost Estimation.xlsm.
  • Use the Monte-Carlo simulation for travel expenses. Refer to the file: Monte Carlo Travel Expense.xlsm.
  • Use the Monte-Carlo simulation for project selection. Refer to the file: Monte Carlo Project Selection.xlsm.