**'org.apache.commons.math3.stat.descriptive.moment.Variance'**Java class

## Class Variance

- java.lang.Object
- org.apache.commons.math3.stat.descriptive.AbstractUnivariateStatistic
- org.apache.commons.math3.stat.descriptive.AbstractStorelessUnivariateStatistic
- org.apache.commons.math3.stat.descriptive.moment.Variance

- All Implemented Interfaces:
- Serializable, StorelessUnivariateStatistic, UnivariateStatistic, WeightedEvaluation, MathArrays.Function

public class Varianceextends AbstractStorelessUnivariateStatisticimplements Serializable, WeightedEvaluation

Computes the variance of the available values. By default, the unbiased "sample variance" definitional formula is used:variance = sum((x_i - mean)^2) / (n - 1)

where mean is the

`Mean`

and`n`

is the number of sample observations.The definitional formula does not have good numerical properties, so this implementation does not compute the statistic using the definitional formula.

- The
`getResult`

method computes the variance using updating formulas based on West's algorithm, as described in Chan, T. F. and J. G. Lewis 1979,*Communications of the ACM*, vol. 22 no. 9, pp. 526-531. - The
`evaluate`

methods leverage the fact that they have the full array of values in memory to execute a two-pass algorithm. Specifically, these methods use the "corrected two-pass algorithm" from Chan, Golub, Levesque,*Algorithms for Computing the Sample Variance*, American Statistician, vol. 37, no. 3 (1983) pp. 242-247.

`increment`

or`incrementAll`

and then executing`getResult`

will sometimes give a different, less accurate, result than executing`evaluate`

with the full array of values. The former approach should only be used when the full array of values is not available.The "population variance" ( sum((x_i - mean)^2) / n ) can also be computed using this statistic. The

`isBiasCorrected`

property determines whether the "population" or "sample" value is returned by the`evaluate`

and`getResult`

methods. To compute population variances, set this property to`false.`

**Note that this implementation is not synchronized.**If multiple threads access an instance of this class concurrently, and at least one of the threads invokes the`increment()`

or`clear()`

method, it must be synchronized externally.- See Also:
- Serialized Form

**Warning:**You cannot see the full API documentation of this class since the access to the DatMelt documentation for third-party Java classes is denied. Guests can only view jhplot Java API. To view the complete description of this class and its methods, please request the full DataMelt membership.

If you are already a full member, please login to the DataMelt member area before visiting this documentation.