If any argument is negative,
then the result is a null or missing value. A message appears in the
log that the negative argument is invalid. If any argument is zero,
then the geometric mean is zero. If all the arguments are null or
missing values, then the result is a null or missing value. Otherwise,
the result is the geometric mean of the non-null or nonmissing values.
Let
be the number of arguments with non-null or nonmissing
values, and let
be the values of those arguments. The geometric
mean is the
root of the product of the values:
Equivalently, the geometric
mean is shown in this equation.
Floating-point arithmetic
often produces tiny numerical errors. Some computations that result
in zero when exact arithmetic is used might result in a tiny nonzero
value when floating-point arithmetic is used. Therefore, GEOMEAN fuzzes
the values of arguments that are approximately zero. When the value
of one argument is extremely small relative to the largest argument,
the former argument is treated as zero. If you do not want SAS to
fuzz the extremely small values, then use the GEOMEANZ function.