In order to perform optimization it is necessary to specify the goal. For Outcome Optimization this is done by selecting a set of parameters and the weights associated with them (see Defining Outcome Payoffs for background). For calibration this is done by selecting the set of model and data variables to compare along with a comparison metric and their associated weights (see Defining Calibration Payoffs for background).
To open the Payoff Specs panel click on the Model Analysis Tools tab of the properties panel (with nothing selected in your model). Then click the Payoff tab that appears at the top. You can have one or more payoff definitions. By default the first is called Payoff, but you can change this name.
The name appears in the dropdown. If you have defined multiple payoffs, use the dropdown to select the one you want to edit. Use to add a new payoff definition and to remove the current definition.
Payoff Name is the name you use to refer to the payoff, by default Payoff 1, Payoff 2 and so on. You can use anything you want for a name. The Optimization Specs will refer to this name. If you change the name after setting up optimization you will need to specify it again in the optimization setup.
Payoff Kind is the type of payoff you are defining. Select either Outcome Optimization or Calibration as discussed above. This option is only available before you have added any payoff elements. Once you add payoff elements they will all be added based on this selection.
Automatically compute weights, if selected, will generate payoff element weights based on the model and data comparison during the first optimization. This option is only available for Calibration payoffs.
Contains a list of the variables contributing to the payoff (and their associated data for Calibration payoffs). You can have one or multiple variables used to define the payoff. To add a variable, use the button at the Bottom of the list (this will let you select a variable from the Find). To remove a variable, click on it so that it is highlighted, then click on the button at the bottom of the list. To edit an existing entry click on it so it is highlighted.
If there is a problem with a payoff element the Show Issues button will become active. Click on this button to get a description of the problem. You can also hover over a payoff element to see its issue in a tooltip.
For each variable to be included in a payoff you can specify how it will contribute to the payoff.
Variable is the name of the variable to be included. Normally this is filled in when you add anything, but you can also edit this by typing (which will start the autocomplete process) or by dragging from the Find if it is open. If the variable is arrayed, you must select a specific element. Any variable can be used, but normally it would be one that changes over time.
Weight is the weight given to the variable's contribution. If larger values of the variable are good, the weight should be positive. If larger values are bad, the weight should be negative. If you only include a single variable in the payoff, a weight of 1 (or -1) is appropriate as the magnitude will not change the optimization results. If you include multiple variables, the rule of thumb is to select weights that make the contribution of each approximately the same.
Note Relative weights are what matter. Setting the first weight to 1 (or -1) is typically easiest.
Payoff Time Range
Use this to specify when, and how, the variable should be added to the payoff.
Final Value will use the last computed value for the variable.
Entire Run will accumulate the value of the variable over the entire simulation. Accumulation is done by multiplying the value of the variable at every DT by DT and then adding it to the payoff. It is the equivalent of creating a stock and having the payoff variable be an inflow to that stock.
Specific Time Value will use the value of the variable at a specific time. You specify the time to use in the edit box and it must be between beginning and end of the simulation or the variable will not be used. If the time is the final time in the simulation this is the same as the first option
Specific Time Period allows you to accumulate the value of the variable over a subset of the entire simulation. For example, if you want to ignore transitory initialization effects you might concentrate on just the end of the simulation. Specify the first and last time (inclusive) that will be used in the computation. If these are the same as the start and finish times for the model, the results will be the same as option 2.
Note If you are using payoff values from before the end of the run you may be able to speed up the optimization process by shortening the run.
Changes you make to the payoff definitions will be recorded when you leave the panel, click on the or switch to a different element.
For each variable to be included in a payoff you can specify how it will contribute to the payoff.
Variable is the name of the variable to be included. Normally this is filled in when you add anything, but you can also edit this by typing (which will start the autocomplete process) or by dragging from the Find if it is open. If the variable is arrayed, you must select a specific element. Any variable can be used, but normally it would be one that changes over time.
Weight is the weight given to the variable's contribution. This weight should be positive. A rule of thumb is to pick a weight equal to one over the error variance for square error and one over the mean absolute deviation for absolute errors. This option is hidden if you have checked Automatically compute weights above.
Comparison Variable is the variable from the data that you want to compare to. This will often be the same variable, with the run containing historic data specified as its source. This can also be a variable with time varying values loaded in which case those time varying values are treated as data. In each of these cases comparison is made only to the actual data points. If you specify any other model variable comparison will be made at every DT, though this is useful only for very specific situations.
Comparison Run is the run that will be used as the source for the data. Select the run containing the data, or Current Run if you are using a variable with imported time varying values. Choose the last option (Load from external data...) to open the Load External Data dialog box and add a new run. As long as the imported run contains the comparison variable it will then be selected.
Comparison Type determines how the different between the model variable and the comparison variable is used to generate the payoff. Use Squared Error to square this difference so the calibration effectively becomes nonlinear weighted least squares. Use Absolute Error to use the absolute value of the difference, effectively minimizing the weighted mean absolute deviation.
Comparison Tolerance determines how much of a different in the absolute error made at each measurement should be treated the same as no error at all. Typically this will be 0, but if there are some variables that only need to approximately match the data you can set this to a positive value.
Changes you make to the payoff definitions will be recorded when you leave the panel, click on the or switch to a different element.