Package org.apache.commons.math3.stat.descriptive.moment

# Class Skewness

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

All Implemented Interfaces:
  `Serializable`, `StorelessUnivariateStatistic`, `UnivariateStatistic`, `MathArrays.Function`

public class Skewness extends AbstractStorelessUnivariateStatistic implements Serializable
Computes the skewness of the available values.

We use the following (unbiased) formula to define skewness:

skewness = [n / (n -1) (n - 2)] sum[(x_i - mean)^3] / std^3

where n is the number of values, mean is the `Mean` and std is the `StandardDeviation`

Note that this statistic is undefined for n invalid input: '<' 3. `Double.Nan` is returned when there is not sufficient data to compute the statistic. Double.NaN may also be returned if the input includes NaN and / or infinite values.

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

## Field Summary

Fields
Modifier and Type
Field
Description
`protected boolean`
`incMoment`
Determines whether or not this statistic can be incremented or cleared.
`protected org.apache.commons.math3.stat.descriptive.moment.ThirdMoment`
`moment`
Third moment on which this statistic is based

## Constructor Summary

Constructors
Constructor
Description
`Skewness()`
Constructs a Skewness
`Skewness(Skewness original)`
Copy constructor, creates a new `Skewness` identical to the `original`
`Skewness(org.apache.commons.math3.stat.descriptive.moment.ThirdMoment m3)`
Constructs a Skewness with an external moment

## Method Summary

Modifier and Type
Method
Description
`void`
`clear()`
Clears the internal state of the Statistic
`Skewness`
`copy()`
Returns a copy of the statistic with the same internal state.
`static void`
`copy(Skewness source, Skewness dest)`
Copies source to dest.
`double`
`evaluate(double[] values, int begin, int length)`
Returns the Skewness of the entries in the specifed portion of the input array.
`long`
`getN()`
Returns the number of values that have been added.
`double`
`getResult()`
Returns the value of the statistic based on the values that have been added.
`void`
`increment(double d)`
Updates the internal state of the statistic to reflect the addition of the new value.

### Methods inherited from class org.apache.commons.math3.stat.descriptive.AbstractStorelessUnivariateStatistic

`equals, evaluate, hashCode, incrementAll, incrementAll`

### Methods inherited from class org.apache.commons.math3.stat.descriptive.AbstractUnivariateStatistic

`evaluate, getData, getDataRef, setData, setData, test, test, test, test`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### moment

protected org.apache.commons.math3.stat.descriptive.moment.ThirdMoment moment
Third moment on which this statistic is based

### incMoment

protected boolean incMoment
Determines whether or not this statistic can be incremented or cleared.

Statistics based on (constructed from) external moments cannot be incremented or cleared.

## Constructor Details

### Skewness

public Skewness()
Constructs a Skewness

### Skewness

public Skewness(org.apache.commons.math3.stat.descriptive.moment.ThirdMoment m3)
Constructs a Skewness with an external moment

Parameters:
  `m3` - external moment

### Skewness

public Skewness(Skewness original) throws NullArgumentException
Copy constructor, creates a new `Skewness` identical to the `original`

Parameters:
  `original` - the `Skewness` instance to copy
Throws:
  `NullArgumentException` - if original is null

## Method Details

### increment

public void increment(double d)
Updates the internal state of the statistic to reflect the addition of the new value.

Note that when `Skewness(ThirdMoment)` is used to create a Skewness, this method does nothing. In that case, the ThirdMoment should be incremented directly.

Specified by:
  `increment` in interface `StorelessUnivariateStatistic`
Specified by:
  `increment` in class `AbstractStorelessUnivariateStatistic`
Parameters:
  `d` - the new value.

### getResult

public double getResult()
Returns the value of the statistic based on the values that have been added.

See `Skewness` for the definition used in the computation.

Specified by:
  `getResult` in interface `StorelessUnivariateStatistic`
Specified by:
  `getResult` in class `AbstractStorelessUnivariateStatistic`
Returns:
  the skewness of the available values.

### getN

public long getN()
Returns the number of values that have been added.

Specified by:
  `getN` in interface `StorelessUnivariateStatistic`
Returns:
  the number of values.

### clear

public void clear()
Clears the internal state of the Statistic

Specified by:
  `clear` in interface `StorelessUnivariateStatistic`
Specified by:
  `clear` in class `AbstractStorelessUnivariateStatistic`

### evaluate

public double evaluate(double[] values, int begin, int length) throws MathIllegalArgumentException
Returns the Skewness of the entries in the specifed portion of the input array.

See `Skewness` for the definition used in the computation.

Throws `IllegalArgumentException` if the array is null.

Specified by:
  `evaluate` in interface `MathArrays.Function`
Specified by:
  `evaluate` in interface `UnivariateStatistic`
Overrides:
  `evaluate` in class `AbstractStorelessUnivariateStatistic`
Parameters:
  `values` - the input array
  `begin` - the index of the first array element to include
  `length` - the number of elements to include
Returns:
  the skewness of the values or Double.NaN if length is less than 3
Throws:
  `MathIllegalArgumentException` - if the array is null or the array index parameters are not valid
See Also:
  - `UnivariateStatistic.evaluate(double[], int, int)`

### copy

public Skewness copy()
Returns a copy of the statistic with the same internal state.

Specified by:
  `copy` in interface `StorelessUnivariateStatistic`
Specified by:
  `copy` in interface `UnivariateStatistic`
Specified by:
  `copy` in class `AbstractStorelessUnivariateStatistic`
Returns:
  a copy of the statistic

### copy

public static void copy(Skewness source, Skewness dest) throws NullArgumentException
Copies source to dest.

Neither source nor dest can be null.

Parameters:
  `source` - Skewness to copy
  `dest` - Skewness to copy to
Throws:
  `NullArgumentException` - if either source or dest is null