Help Manual

Contents






Sigma Magic Help Version 17

Monte Carlo Simulation

Overview

Monte Carlo Simulation can 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 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 uncertainty. Monte Carlo is also typically used in a DFSS project to determine if a process can meet 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 the Monte Carlo simulation. You can press the F4 key to activate these menus if this does not open up automatically. 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 the 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 input area. The input 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 by displaying ten columns. 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 input area. You can specify the width here or manually adjust the widths on the worksheet. This option 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 you need 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 simulating 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 is set to Auto, and the software will determine how many iterations will 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 note that many may require increased memory and additional computing resources. There may not be a benefit to increasing the number of iterations beyond a certain level. It is recommended that you start with a smaller number of iterations and keep growing this number until you do not find much difference in the results with an increase in the number of iterations. Formulae available can estimate the number of iterations to run based on your standard deviation, the degree of confidence you need, and your margin of error.
5
Tolerance: When you specify the Runs Criteria as Tolerance, you can select the tolerance level 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, suppose you specify a 1% tolerance band. In that case, the software will continue adding runs to your model until the difference in mean results between consecutive runs doesn't exceed the given tolerance level. 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 two simulations, the entire Monte Carlo simulation of 1000 iterations will be performed two times. You will be able to change some parameters between these simulation runs and analyze each simulation separately. This is a valuable feature when you want to do some what-if analysis. For example, if you use the standard deviation for one of the inputs as 12.5 and wonder how your results will change if your standard deviation changes to 20, you could run two 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. The only available option is Auto, which 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 many 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 because it requires more computational power to generate. However, the results obtained from the Latin Hypercube method probably require fewer iterations to converge to the final result than 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 not to use it for your model.
3
Random Seed: Specify the seed for the random number generator. The seed could be either random or fixed. If the seed is random, the system will generate different random numbers for you each time you run the simulation. 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 want it 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 simulation. If you use the random setting, the numbers will change depending on the distribution you set each time you update your worksheet. You can also use Ctrl-Alt-F9 to update the random numbers displayed on the worksheet.
6
Multiple Simulations: Specify how you want to simulate multiple simulation runs. There are two options available:
OptionDescription
SameThe same set of random numbers is used for each multiple simulation run. This makes comparing multiple simulations runs easier if they all use the same 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 unhappy 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 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 software automatically picks up the variable name. Ensure you determine the correct 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 selected active worksheet cell before clicking on the Inputs button. You can click the icon next to this textbox to choose a different location on the worksheet for the input location. You can also define a range of cells; the software will create inputs for each cell. Note that if you 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 generates the random numbers for this input variable. Make sure you pick a distribution that matches how you expect this variable to behave in the real world. For example, use a uniform distribution if the input is uniformly distributed between minimum and maximum values. If the input is normally distributed, 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 them 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 sides 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 the random number generator will generate for this input variable.
7
Stats: The stats section shows 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 specify the input distribution, you must click the Add button at the bottom right-hand corner to add this distribution to the model. If you have selected a cell for which input has already been defined, 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 be between the minimum and maximum 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 the 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 lambda value should be between 0 and 1.
=smUserDefined("Name", XValues, Prob)User Defined distribution. The size of the X values 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 without confusion. The next set of parameters is the parameters of the given distribution. The parameters can either be actual values or cell references. For example, if a normal distribution's mean and standard deviation are stored in cells E10 and F10, 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 parameters 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 is 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 cannot estimate the parameters, they are denoted by a "*" value. 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, they are assumed to be percentiles and must 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, they are assumed to be percentiles and must 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, they are assumed to be percentiles and must 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, they are assumed to be percentiles and must 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, it is assumed to be in the percentile and must 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, they are assumed to be percentiles and must 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, they are assumed to be percentiles and must 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, they are assumed to be percentiles and must 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, they are assumed to be percentiles and must 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, they are assumed to be percentiles and must 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, they are assumed to be percentiles and must 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, they are assumed to be percentiles and must 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, and 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, they are assumed to be percentiles and must 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, they are assumed to be percentiles and must 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, it is assumed to be in the percentile and must 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, and 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, they are assumed to be percentiles and must 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, they are assumed to be percentiles and must 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, they are assumed to be percentiles and must 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 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. Select the cell on the worksheet where you want to determine the outputs before you click the Outputs button, as the output variable will be defined for that cell location. The following screenshot shows a sample output dialog box. outputs1 There may be many outputs in your Monte Carlo simulation model, but only some may be interesting to analyze and evaluate the model's performance. Each output can be modeled using the Outputs button. If the output is defined, it can be used to analyze 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 selected active worksheet cell before clicking on the Outputs button. You can click the icon next to this textbox to choose a different location on the worksheet for the output location. You can also define a range of cells; the software will create outputs for each cell. Note that if you 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 in this textbox, which 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 up the normal capability analysis. If not, it will try to estimate the best distribution that fits your data and use 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 LSL value are considered 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 are considered defective. If an output has no 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 of interest to you. Specify the number of input variables and specify which ones you want to consider in the dropdown boxes below.
8
Select Inputs: Specify the input variables you want 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 specify the output distribution, you must click the Add button at the bottom right-hand corner to add this output definition to the model. If you have selected a cell for which output has already been defined, you can update any previously defined settings. Click the Delete button to delete 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; if not defined, 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 two variables (Length and Width), you must select a 3x3 range on the worksheet (i.e., a range with three rows and three columns). If you need to define correlations between 3 variables, you will need to select a 4x4 range, etc. If you have three variables but only want to define a correlation between two 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 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 defined correlation matrix table. 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 the select button next to the range input textbox. Select a range on the worksheet where you want the correlation matrix stored. Make sure the range is blank and does not include any other data since this range will be overwritten when the dialog box defines the correlations.

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 ten inputs, defining a correlation between them is unnecessary. You only need to determine 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 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 for 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 this button.
7
OK Button: Click 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 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 change these parameters and run the simulations separately manually. 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 the select button next to the range input textbox. Select a range on the worksheet where you want the simulation table stored. Pick three if you have two simulation runs (one for the header). If you only change one variable, you must pick two columns (one for row number). If you are modifying two variables, you need to pick three columns, and so on. The appropriate number of cells is displayed in the dialog box depending on the size of the range you pick. Make sure the range is blank and does not include any other data since this range will be overwritten when the dialog box defines the simulation table.

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 the simulation table will modify. For example, suppose you enter K5 in this cell for each simulation run. In that case, 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. 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 and how you incorporate K5 in your model equations.
3
Table Values: Define the values to be used for each simulation run. These values can be directly edited in the dialog box or entered on the worksheet. In the example shown above, the simulation table values are 12 for the first simulation, 13.5 for the second simulation, and 15 for the third simulation. You can define any number of simulations (rows) and 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 this button.
5
OK Button: Click 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 to review what has been defined earlier.

Functions

The functions dialog box lets you summarize the basic statistical analysis of inputs and outputs so that the results can be displayed on the worksheet. For example, if the output of interest for your analysis is profit, then you will get a different profit value for each iteration of the simulation. Taking overall iterations, the profit will follow a distribution with values ranging from minimum to maximum. 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 analysis results directly on the worksheet.

Click the Functions button to open the functions dialog box. 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. To define the function, click the select button next to the range input textbox. Select a range on the worksheet where you want the simulation table 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, you must 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 three simulations and you want a summary for each simulation, you will need to define three 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 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 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 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 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 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 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 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 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 a standard deviation of 10. Then, if you specify the parameter as 110, it will report the probability of values that are less than 110. If 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 a standard deviation of 10. Then, if you specify the parameter as 0.1, it will report the value of Length such that the probability of values to the left is 10%. The parameter values for this option should be specified between 0 and 1. If using multiple simulations, specify the simulation number as the last parameter. The default value is 1.
If you want other functions not defined here, note that the raw simulation output data are also stored on the worksheet. 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 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 list box contains the input number, the name of the input, the cell number that 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 list box contains the output number, the name of the output, the cell number that 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 functions you have defined in the model. The number within the parenthesis shows the number of functions. The list box contains the function number, the variable name, the cell number that 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 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 must be put into that cell for each simulation run. For example, if three simulations are defined for cell D4 with values 1, 2, and 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 cannot simulate until you fix all the reported errors.

Run Simulation

Once you have defined the model, you can simulate it to generate random numbers and compute simulation outputs and model results. Note that you may get slightly different results each time you run the simulation if you have selected the option to generate different random numbers each time. You have three options on the task menu bar: 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 work 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 for 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. It would be best to have sufficient iterations to 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 many 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 use the tolerance feature to achieve a certain tolerance level, this value will be set at Auto. However, if your Analysis Setup option for Runs Criteria is "Iterations," then the value in this textbox should be numeric.
3
Simulations: The number of simulations determines how many 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 in the simulation table, then only the corresponding rows are run. It will report an error if you specify the software to run more simulations than 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. Hence, there is no confusion about the parameters set for each simulation. Try to avoid using the simulation table when running model optimization.

Graphs

After executing the simulation runs, the 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, the output variables for the first simulation, the input and output variables for the second simulation, and so on. The number of rows of data corresponds to the number of iterations specified for the problem. The function results are directly stored in the selected worksheet cells on the left in the model section. Let's review all the graphs that are generated for this template below.

Box Plot

Click the Box Plot button to compare multiple simulations in the task menu bar. 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 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 select All, where all the groups are used, or 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 too far away from the median value are shown as a dot outside the whiskers.
4
Box Plot: At the bottom, you can specify if you want to display the data as a box plot or a confidence interval of the means.
5
Statistics: A brief set of statistics for the given data set is shown on the right-hand side. 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 the task menu bar's Capability button. 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, only the lower specification limit is included in the calculations. If you specify USL, only the upper specification limit is included in the calculations. If you select 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 for LSL and USL. The software will try to get these from the model, but you can change them and try out different values to see how they 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 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" - 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 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" - 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 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.
4
Prob: Specify if you want to highlight the tails of the distribution fit. If you specify P10, the software will draw the vertical lines, which show 5% of the data points to the left, 90% in the middle, and 5% 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. You can click on the percentages or the limit values to change these numbers to see how the shaded areas change.
5
Checkbox Options: At the bottom, there are three checkbox options. You can plot the probability density function (PDF), the cumulative probability density function (Ascending), or the cumulative probability density function (descending) for the best histogram.
6
Histogram: Your data histogram 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: A brief set of statistics for the given data set is shown on the right-hand side. 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 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" - 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 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" - 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 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, all the simulation groups will be 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.
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 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 choose 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 are three checkbox options, and you can superimpose a fit on the data points, which are either linear, quadratic, or cubic.
7
Statistics: A brief set of statistics for the given data set is shown on the right-hand side for the X and Y data sets. 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: Suppose you want to superimpose additional horizontal or vertical lines on your scatter plot. In that case, 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 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. A sensitivity analysis of the input variables is performed.
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 only to 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%, bottom 20%, and bottom 30% of the data.
5
Statistics: A brief set of statistics for the given data set is shown on the right-hand side. 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 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 seven 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 understand how the revenue changes with time. To create this plot, you will need to use the Trend Plot. sensitivity
1
Range: First, select a range to create 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. Ensure 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, the 80% confidence interval bounds are plotted. The bottom red line will be 10%, and the top red line will be 90%.
4
Statistics: A brief set of statistics for the given data set is shown on the right-hand side. 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 the interval selected)
3Print the upper confidence interval for each variable (depends on the interval selected)

Analysis Results

Analysis Outputs

Click the Reports button in the task menu bar to specify which reports you want 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 basic statistical summary. A histogram is plotted for this selection.
Correlation MatrixSpecify for which combination of inputs and 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 graphs will be updated at the end of the simulation run based on the settings you make in the reports dialog box. If you change the report's settings, you may not need to rerun the simulation. 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 parameters to achieve a specific 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 combinations 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.

Below is a sample dialog box of the Optimize model. This dialog box has multiple tabs 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 under the designer's control, 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 possible decision variables could be the coil's length or the coil's resistivity, 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 but vary depending on the specified probability distribution.
9
Minimum: Specify the minimum value of the input variable. No values below this will be searched. Ensure 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, we can probably use coils that are 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 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, we can probably use coils that are 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, 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, and 1.0. This value will be ignored for continuous decision variables, 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 selected all the decision variables, let's specify the objective functions. Click on the Objectives tab (#3) to define 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, 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 the room temperature, which is too high or has too low values and is 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. Specify a valid Excel cell location such as E14 or $E$14.
4
Lower Limit: Specify the lowest possible value for the objective function that can be achieved. This value is used to compute the desirability function for our optimization. For example, the room's temperature needs a target value of 21 but can range from 18 to 24. Then, the lower limit is set at 18. Any temperature value less than the lower limit is given a desirability value of 0 (for target optimization). If we try 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 try 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 must only be specified if your objective type achieves a target value. The desirability is 1.0 when the objective function reaches the target value. This value is not required for the minimization or maximization of objective functions.
6
Upper Limit: Specify the most significant possible value for the objective function that can be achieved. This value is used to compute the desirability function for our optimization. For example, the room's temperature needs a target value of 21 but can range from 18 to 24. Then, the upper limit is set at 24. Any temperature more significant than the upper limit is given a desirability value of 0 (for target optimization). If we try to maximize an objective, any objective function value more significant than the upper limit is given a desirability value of 1. Similarly, if we try to minimize an objective function, any value of the objective function more significant 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 objective are calculated and combined into a single desirability function using the weights. The greater the weight specified, the more important is the objective function relative to other objective functions.
Once you are done defining the objectives tab, click on the Constraints tab to specify the constraints for your optimization and the Requirements tab to determine 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 unsatisfied, that combination of inputs/decision variables will not be tested. For example, if we have two decision variables, A and B, A can take values from 0 to 1, and B from 0 to 2. A constraint such as B > A will ensure we only test those conditions when B is more significant 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 more significant than 4. The constraints and requirements are tested before 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 in the variables dialog box.
2
LHS Value: Specify the cells that contain the constraints. Select a cell or enter a value in the dialog box settings.
3
Relation: Specify if the left side is less than, equal to, or greater than the right side.
4
RHS Value: Specify the cells that contain the constraints. Select a cell or enter a value in the dialog box settings.
Finally, you can specify any options for this optimization model by clicking on the Options tab on the right. The image below shows a sample dialog box with these settings. 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, it may 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 an optimization algorithm inspired by natural selection and genetics principles. 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 (individuals or chromosomes) is created and evaluated based on a fitness function that quantifies how well they solve the problem. The fittest individuals are then selected for reproduction, and their genes (i.e., their solution representations) are combined to create new offspring. The latest offspring undergo mutation and crossover (i.e., recombination of genes) to generate a new population of individuals. This process is repeated until a satisfactory solution is found or a predetermined stopping criterion is met. Genetic algorithms have been applied to various problems, such as optimization, machine learning, scheduling, and robotics. They are handy 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 will be found, but if you run the simulation long enough, 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 complete your analysis, you can click the Continue button to run another 100 iterations.
4
Max Time: Specify how long you want the optimization algorithm to run. If you specify an unlimited time, the stopping criteria are either the solution converges to an optimal solution or the number of iterations is exceeded. If you specify a time value, 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 typically leads to more diverse 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 broader exploration of the search space. However, a larger population also requires more computational resources and can result in slower convergence rates. Conversely, smaller population sizes 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 population size choice depends on the problem's complexity, 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 tolerance or stopping criterion choice depends on the problem and the application's requirements. Balancing the trade-off between finding an optimal solution and the computational resources required is essential. For instance, if the goal is to find the best possible solution, a stringent stopping criterion may be used, even if it involves a lot of computational resources. On the other hand, if the goal is to find a suitable 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 the algorithm's crossover (recombination) operations.

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. 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: The mutation rate in a genetic algorithm refers to the probability that an individual's gene 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 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 allow you to save the previous optimal solution 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. You can increase the number of increments for a more accurate solution; 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, knowing some potential pitfalls when using Monte Carlo simulation is important. 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. Using a sufficiently large sample size is important to ensure accurate results.
  • Sampling bias: Monte Carlo simulation relies on random sampling from a distribution to generate data. However, if the sampling process is biased, the simulation results may also be biased. Using a representative and unbiased sample is important to ensure accurate results.
  • Model assumptions: Monte Carlo simulation is only as good as the underlying model it is based on. The simulation results may be inaccurate or misleading if the model assumptions are incorrect or incomplete. 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, ensuring that the simulation results converge to a stable solution is important. If the results are unstable, additional simulations may be required to achieve convergence.
  • Interpretation of results: It is important to interpret the Monte Carlo simulation results carefully. The simulation estimates the distribution of outcomes but does not guarantee a particular outcome or provide a definitive answer. Using the simulation results in conjunction with other information and analyses is important to make informed decisions.

Examples

The following examples are 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.xlsx.
  • Use the Monte-Carlo simulation for cost estimation. Refer to the file: Monte Carlo Cost Estimation.xlsx.
  • Use the Monte-Carlo simulation for travel expenses. Refer to the file: Monte Carlo Travel Expense.xlsx.
  • Use the Monte-Carlo simulation for project selection. Refer to the file: Monte Carlo Project Selection.xlsx.



© Rapid Sigma Solutions LLP. All rights reserved.