functiongeometricMean

(Weighted) geometric mean

Extends from BusinessSimulation.Icons.Function (Icon for functions).

Information

This information is part of the Business Simulation Library (BSL). Please support this work and ► donate.

The output y is the geometric mean of the components of the input vector x. As a second argument a vector of positive weights (default = 1 for each weight) can be given to calculate the weighted geometric mean.

Syntax

Functions.geometricMean(x);
Functions.geometricMean(x, weights);

Implementation


  w := BusinessSimulation.Functions.clip(weights, {0, inf});
  y := if min(x) < small then 0 else exp( sum( log(x[i]) * w[i] for i in 1:n ) / sum(w) );

Notes

  • If any component of the input vector is zero or negative, the output will be zero.

  • Any negative weight will be set to zero in order to prevent negative weights.

Examples


Functions.geometricMean({10, 20});        // 14.1421..
Functions.geometricMean({ 0, 20});        //  0.0
Functions.geometricMean({10, 20},{1,10}); // 18.7786..
Functions.geometricMean({10, 20},{1,-1}); // 10.

See also

GeometricMean, arithmeticMean

Inputs

TypeNameDefaultDescription
RealxVector input
Realweightsones(size(x, 1))Vector of weights

Outputs

TypeNameDefaultDescription
Realy