Quintiq file version 2.0
|
#parent: #root
|
Constraint IsStandardDeviationValid
|
{
|
#keys: '2[151132.0.11701268][151132.0.11701269]'
|
ConstraintCondition:
|
[*
|
return guard( this.Summary().StandardDeviation().IsInfinite()
|
or this.Summary().StandardDeviation() < this.UpperThresholdForStandardDeviation(), true );
|
*]
|
ConstraintKind: 'Soft'
|
ConstraintText:
|
[*
|
@Translations::LibOpt_Statistic_HighStandardDeviation( LibOpt_Utility::FormatRealWithDecimalPlaces( this.Summary().StandardDeviation() ),
|
LibOpt_Utility::FormatRealWithDecimalPlaces( this.UpperThresholdForStandardDeviation() ),
|
ifexpr( this.UOM() = Translations::LibOpt_UOM_NA(), '', this.UOM() )
|
)@
|
*]
|
Description:
|
[*
|
Whether the `LibOpt_StatisticSummary.StandardDeviation` among values collected by this `LibOpt_StatisticScopeElement` is within a reasonable range.
|
|
The `UpperThreshold` and/or `LowerThreshold` of a `LibOpt_StatisticScopeElement` are derived using the "outlier" approach.
|
When the `LibOpt_StatisticSummary.StandardDeviation` is too large (indicating that the spread of the data points is large), it follows that the `LibOpt_StatisticSummary.IQR` is large too, which makes the "outlier" thresholds too large/small.
|
As a result, none of the values collected by this statistic would actually violate the "outlier" thresholds, and no `LibOpt_Issues` will be created..
|
The absence of issues gives a false impression that the aspect that this `LibOpt_StatisticScopeElement` focuses on does not require further attention.
|
Thus, if this constraint is fired for your statistic, then it might be worth to look into the values of this `LibOpt_StatisticScopeElement` even though no issues were created.
|
*]
|
}
|