Quintiq file version 2.0
|
#parent: #root
|
Function CalcStatistics
|
{
|
Description: 'Calculate the "summary statistics" for the values collected by the owning `LibOpt_Statistic` of this `LibOpt_StatisticSummary`.'
|
TextBody:
|
[*
|
if( this.Statistic().NrElements() > 0 )
|
{
|
values := RealVector::Construct( this.Statistic().ValuesAsRealVector() ).AsValues();
|
|
// Sort the values for correct calculations of the following attributes:
|
// - `Q1`, `Median`, `Q3`, `Max`, `Min`
|
values_sorted := values.Sort();
|
|
// Set attributes for numerical statistics.
|
this.Q1( LibOpt_Utility::GetRealByPercentile( 0.25, values_sorted ) );
|
this.Median( LibOpt_Utility::GetRealByPercentile( 0.5, values_sorted ) );
|
this.Q3( LibOpt_Utility::GetRealByPercentile( 0.75, values_sorted ) );
|
this.Average( average( values_sorted, Elements, value, true, value ) );
|
this.Max( values_sorted.Element( values_sorted.Size() - 1 ) );
|
this.Min( values_sorted.Element( 0 ) );
|
this.StandardDeviation( stddev( values_sorted, Elements, value, true, value )
|
// Make adjustments to get the population-based standard deviation as Quintiq's built-in `stddev` quantor is sample-based.
|
* ( values.Size() - 1)
|
/ values.Size()
|
);
|
}
|
*]
|
InterfaceProperties { Accessibility: 'Module' }
|
}
|