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

## Class SecondMoment

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

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

      public class SecondMoment
      extends AbstractStorelessUnivariateStatistic
      implements Serializable

  Computes a statistic related to the Second Central Moment. Specifically, what is computed is the sum of squared deviations from the sample mean.

  The following recursive updating formula is used:

  Let

  - dev = (current obs - previous mean)
  - n = number of observations (including current obs)
  Then

  new value = old value + dev^2 * (n -1) / n.

  Returns `Double.NaN` if no data values have been added and returns `0` if there is just one value in the data set. Note that 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 and Description
    --- | ---
    `protected double` | `dev` Deviation of most recently added value from previous first moment.
    `protected double` | `m1` First moment of values that have been added
    `protected double` | `m2` second moment of values that have been added
    `protected long` | `n` Count of values that have been added
    `protected double` | `nDev` Deviation of most recently added value from previous first moment, normalized by previous sample size.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SecondMoment()` Create a SecondMoment instance
    `SecondMoment(SecondMoment original)` Copy constructor, creates a new `SecondMoment` identical to the `original`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `clear()` Clears the internal state of the Statistic
    `SecondMoment` | `copy()` Returns a copy of the statistic with the same internal state.
    `static void` | `copy(org.apache.commons.math3.stat.descriptive.moment.FirstMoment source, org.apache.commons.math3.stat.descriptive.moment.FirstMoment dest)` Copies source to dest.
    `static void` | `copy(SecondMoment source, SecondMoment dest)` Copies source to dest.
    `long` | `getN()` Returns the number of values that have been added.
    `double` | `getResult()` Returns the current value of the Statistic.
    `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, 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 Detail

    - #### m2

          protected double m2

      second moment of values that have been added

    - #### n

          protected long n

      Count of values that have been added

    - #### m1

          protected double m1

      First moment of values that have been added

    - #### dev

          protected double dev

      Deviation of most recently added value from previous first moment. Retained to prevent repeated computation in higher order moments.

    - #### nDev

          protected double nDev

      Deviation of most recently added value from previous first moment, normalized by previous sample size. Retained to prevent repeated computation in higher order moments

  - ### Constructor Detail

    - #### SecondMoment

          public SecondMoment()

      Create a SecondMoment instance

    - #### SecondMoment

          public SecondMoment(SecondMoment original)
                       throws NullArgumentException

      Copy constructor, creates a new `SecondMoment` identical to the `original`
      Parameters:
        `original` - the `SecondMoment` instance to copy
      Throws:
        `NullArgumentException` - if original is null

  - ### Method Detail

    - #### increment

          public void increment(double d)

      Updates the internal state of the statistic to reflect the addition of the new value.
      Specified by:
        `increment` in interface `StorelessUnivariateStatistic`
      Parameters:
        `d` - the new value.

    - #### clear

          public void clear()

      Clears the internal state of the Statistic
      Specified by:
        `clear` in interface `StorelessUnivariateStatistic`

    - #### getResult

          public double getResult()

      Returns the current value of the Statistic.
      Specified by:
        `getResult` in interface `StorelessUnivariateStatistic`
      Returns:
        value of the statistic, `Double.NaN` if it has been cleared or just instantiated.

    - #### copy

          public SecondMoment copy()

      Returns a copy of the statistic with the same internal state.
      Specified by:
        `copy` in interface `StorelessUnivariateStatistic`
      Specified by:
        `copy` in interface `UnivariateStatistic`
      Returns:
        a copy of the statistic

    - #### copy

          public static void copy(SecondMoment source,
                  SecondMoment dest)
                           throws NullArgumentException

      Copies source to dest.

      Neither source nor dest can be null.

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

    - #### getN

          public long getN()

      Returns the number of values that have been added.
      Specified by:
        `getN` in interface `StorelessUnivariateStatistic`
      Returns:
        the number of values.

    - #### copy

          public static void copy(org.apache.commons.math3.stat.descriptive.moment.FirstMoment source,
                  org.apache.commons.math3.stat.descriptive.moment.FirstMoment dest)
                           throws NullArgumentException

      Copies source to dest.

      Neither source nor dest can be null.

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

Copyright © 2003–2016 The Apache Software Foundation. All rights reserved.