Percentile

Declaration: TMat4D.Percentile (prob: double; LowCol, HighCol, LowRow, HighRow, LowLayer, HighLayer, LowTimeSlot, HighTimeSlot: integer; SampleSize: integer): double;
The function Percentile returns the percentile with the probability of prob percent. The calculation of the percentile includes all matrix elements between (and including) LowCol, LowRow, HighCol, HighRow, LowLayer, HighLayer, LowTimeSlot, and HighTimeSlot. The function returns a zero value if any error occurs.

Percentile calculates the percentile of a random sample taken from the specified data range. The size of the random sample is controlled by the parameter SampleSize. If SampleSize is zero the function performs an exact calculation. If SampleSize is larger than the number of elements in the specified data range, oversampling occurs (which does no harm to the result but is slower). The big advantage of specifying a non-zero SampleSize parameter lies in the fact that it is much faster than the exact solution if the specified data range is large. Typically, a non-zero SampleSize should be used if the number of specified elements exceeds 50000 cells, using a sample size of 10000.

Please note that the 50%-percentile (prob = 50) is also known as the median of the distribution.

Hint 1: Setting both the low and high parameter of a dimension (i.e. LowCol and HighCol) to zero values forces the method to use all elements of that dimension.

Hint 2: The calculated percentile is not interpolated and simply returns the closest value of the distribution, which may differ from other statistical packages.