Klasse WeightedLeastDifferenceSelector
- Alle implementierten Schnittstellen:
FWSimFieldContainer
- Bekannte direkte Unterklassen:
LeastDifferenceSelector
Configuration
User has to specify
- the frequency at which values should be compared
- the calculation method cMode (Bias,MRE,MAE,RMAE,MSE,RMSE,index,rc etc.)
- the number of target variables cNumberOfVariables (up to 20)
- for each target variable a pair of SimVariables cObserved{i}/cSimulated{i}
- for each target variable the weight for the error cWeight{i}
- {i} ranges from 1 to cNumberOfVariables
Outputs
- the selected simulation id as a one size CHARARRAY selectedsimulations
- the best ErrorValue achieved as DOUBLE
- all simulations weighted sum of errors ErrorValues as DOUBLEARRAY
- for each target variable all simulations error ErrorValuesVariable{i} as DOUBLEARRAY
Description
For a simulation the calculated values of different variables \(i = 1, ... cNumberOfVariables\) are compared to reference (measured) values (e.g. Yield, LAI, Biomass). The selector can handle maximum 20 different variables. Each variable exists pairwise in the simulation as observed\simulated. Observed variables normally come from a resource (datafile), where simulated ones are calculated. (Notice: The selector works also, if both variables come from resources or if both are simulated.)
For each of these variables \(n\) samples are produced by the simulation (\(n\) is determined by the simulated time span and the selectors frequence information).
Let \(\mathcal{E}: \mathbb{R}^n \times \mathbb{R}^n\ \rightarrow \mathbb{R}\) be the selected calculation method - e.g. the bias \(E(o,s)=\sum_{j=1}^n o_j - s_j\)
The weighted difference is then
\[ E = \frac{1}{\omega}\sum_{i=1}^{cNumberOfVariables} cWeight_i \mathcal{E}(cObserved_i,cSimulated_i) \] where \(\omega\) is the sum of weights: \[ \omega = \sum_{i=1}^{cNumberOfVariables} cWeight_i \]If \(k= 1, ... l\) simulations are performed within a project, then the selector calculates all weighted errors \(E_k\) and selects the simulation with the best error. (The best error depends on the calculation method for RMSE it's the one closest to 0, for agreement index closest to 1 etc.)
The output NuberOfValues counts the number of simulations used for comparison. Normally it's equal to \(l\), but it can be lower because simulations that produce no usable result (i.e. \(E_k\) could not be calculated) are skipped.
Example
| <selector id="Selector" class="net.simplace.sim.control.selectors.WeightedLeastDifferenceSelector"
| frequence="COMPLEX" rule="${observations.HasData}" >
| <input id="cMode" datatype="CHAR">RRMSE</input>
| <input id="cNumberOfVariables" datatype="INT">1</input>
|
| <input id="cObserved1" datatype="DOUBLE" mode="LAST" source="observations.yield"/>
| <input id="cSimulated1" datatype="DOUBLE" mode="LAST" source="GecrosCrop.WSO"/>
| <input id="cWeight1" datatype="DOUBLE">0.8</input>
|
| <input id="cObserved2" datatype="DOUBLE" mode="LAST" source="observations.greenLAI_destructive"/>
| <input id="cSimulated2" datatype="DOUBLE" mode="LAST" source="GecrosCrop.LAI"/>
| <input id="cWeight2" datatype="DOUBLE">0.2</input>
| </selector>
Error methods
- Bias - mean error
- SignedBias - mean error, selects the smallest signed bias
- MRE - mean relative error
- MAE - mean absolute error
- RMAE - relative mean absolute error
- MSE - mean squared error
- RMSE - root mean squared error
- RRMSE - relative root mean squared error
- SMAPE - symmetric mean absolute percentage error
- EF - model efficiency
- r - Correlation Coefficient
- rc - Concordance Correlation Coefficient
- index - Agreement Index
- NONE - Void Error Calculator
- Autor:
- Gunther Krauss
- Siehe auch:
-
Feldübersicht
FelderModifizierer und TypFeldBeschreibungprotected FWSimVariable<String> protected FWSimVariable<Integer> protected ArrayList<FWSimVariable<Double>> protected ErrorCalculationMethod[]protected FWSimVariable<String> protected FWSimVariable<Double> protected FWSimVariable<Double[]> protected ArrayList<FWSimVariable<Double[]>> protected ArrayList<FWSimVariable<String>> protected ArrayList<FWSimVariable<String>> protected intprotected intprotected FWSimVariable<Integer> protected doubleVon Klasse geerbte Felder net.simplace.sim.control.FWSimulationSelector
iFrequence, iGlobalModeSimulationIDMap, iSelectStatementVon Klasse geerbte Felder net.simplace.sim.control.FWSimulationControlContainer
iCache, iCals, iConstraint, iContainerElement, iControlMap, iFieldMap, iIdentifier, iInputMap, iInputs, iName, iParams, iSession, iSimulationMap -
Konstruktorübersicht
KonstruktorenKonstruktorBeschreibungWeightedLeastDifferenceSelector(org.jdom2.Element aSimulationSelectorElement, FWSimSession aSession) -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungvoidinit()The model initialization function.protected voidVon Klasse geerbte Methoden net.simplace.sim.control.FWSimulationSelector
createSelectStatement, createSimulationSelector, createSimulationSelector, selectSimulationsVon Klasse geerbte Methoden net.simplace.sim.control.FWSimulationControlContainer
addProcessTime, addVariable, checkCondition, evaluate, getContentType, getCreateFormXML, getEditFormXML, getFieldMap, getFrequence, getInputVariables, getName, getOrderNumber, getOutputVariables, getVariable, getVarMap, isConditionCheck, readInputCalAndConstraint, removeVariable, setPropertyValue, toXML
-
Felddetails
-
maxnumber
protected int maxnumber -
number
protected int number -
weightsum
protected double weightsum -
cNumberOfVariables
-
iObserved
-
iSimulated
-
cWeight
-
cMode
-
NumberOfValues
-
ErrorValue
-
ErrorValues
-
IndividualErrorValues
-
ErrorMethod
-
errorCalculator
-
-
Konstruktordetails
-
WeightedLeastDifferenceSelector
public WeightedLeastDifferenceSelector(org.jdom2.Element aSimulationSelectorElement, FWSimSession aSession) - Parameter:
aSimulationSelectorElement-aSession-
-
-
Methodendetails
-
createVariables
- Gibt zurück:
- variables from the field map
-
init
public void init()Beschreibung aus Klasse kopiert:FWSimulationControlContainerThe model initialization function. Will be called only once, before running the model using process().- Angegeben von:
initin KlasseFWSimulationControlContainer
-
select
- Angegeben von:
selectin KlasseFWSimulationSelector- Parameter:
aResultSet-
-