vec_math
Class Moments

java.lang.Object
  extended by vec_math.Moments

public class Moments
extends Object

Moments is a stastistic package that allows calculation of sample central moments of discrete samples. They are defined as

   M_k=1/n·Σ(x_i-μ)^k,
   
where μ is the sample mean and the summing is done over all smaple values x_i. The connection to the power sums S_k=Σx_i^k is
   M_k=Σ_0^n (-1)^(n-k)(n over k) 1/N(n-k+1)S_k*S_1^(n-k)
   
Note that sample moments are not identically to population moments, for the first moments, the following similarites hold
   μ=M_1
   μ_2=σ²=N/(N-1)·M_2 (μ_2=population variance)
   μ_3=N²/[(N-1)(N-2)]·M_3 
   μ_4=N²[(N+1)M_4-3(N-1)M_2²]/[(N-1)(N-2)(N-3)+3N/(N-1)M_2 
   
To normalize the moments, they are devided by the k/2-th power of the sample variance (roughly the k-th power of the standard deviation).


Nested Class Summary
static class Moments.Constant
          Tests the class by generating a sequence of variables with constant probability in the interval 0,1.
static class Moments.FitsMoments
          Grabs a fits file and displays the moments up to the order given in the optional second command line argument.
static class Moments.Gauss
          Tests the class by generating a sequence of gaussian variables.
static class Moments.Ident
          Test the class by generating a sequence with known moments.
static class Moments.Poisson
          Tests the class by generating a sequence of gaussian variables.
static class Moments.Static
          Test the class by generating a sequence with known moments.
 
Field Summary
 int n
          The number of values in the sample.
private  int order
          The order of the moments, defined at construction.
private static int ORDER
          Default order number.
private  double[] power
          The cummulated power sums.
 
Constructor Summary
Moments()
          Constructs a new moments object.
Moments(int k)
          Constructs a new moments object.
 
Method Summary
 void addValue(double xi)
          Adds a raw value.
static Moments constructArrayMoments(int k, double[] v)
          Constructs a new statistic from a double array.
static Moments constructListMoments(int k, List<Number> l)
          Constructs a new statistic from a list of numbers.
static Moments constructVectorMoments(int k, VectorG v)
          Constructs a new statistic from a VectorG.
 double getAverage()
          Returns the sample average, which is equal to the first raw moment.
 double getCentralMoment(int k)
          Returns the k-th sample central moment.
 double getCumulant(int n)
          Gets the cumulant of order n.
 double getNormalizedCentralMoment(int k)
          Returns the normalized sample moments.
 double getNormalizedCumulant(int k)
          Returns the normalized sample cumulant
 int getOrder()
          Gets the order.
 double getRawMoment(int k)
          Returns the k-th sample raw moment, which is 1/N times the power sum.
 double getVariance()
          Returns the unbias sample variance, losely speaking the standard deviation squared.
 void removeValue(double xi)
          Removes a value.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ORDER

private static final int ORDER
Default order number.

See Also:
Constant Field Values

order

private int order
The order of the moments, defined at construction.


power

private double[] power
The cummulated power sums. Index equals power minus one.


n

public int n
The number of values in the sample.

Constructor Detail

Moments

public Moments()
Constructs a new moments object. Defaults the order to four.


Moments

public Moments(int k)
Constructs a new moments object. Moments available to the order specified here.

Method Detail

getOrder

public int getOrder()
Gets the order.


addValue

public void addValue(double xi)
Adds a raw value. Updates all power sums accordingly.


removeValue

public void removeValue(double xi)
Removes a value. Updates all power sums accordingly.


getAverage

public double getAverage()
Returns the sample average, which is equal to the first raw moment.


getVariance

public double getVariance()
Returns the unbias sample variance, losely speaking the standard deviation squared.


getRawMoment

public double getRawMoment(int k)
Returns the k-th sample raw moment, which is 1/N times the power sum.


getCumulant

public double getCumulant(int n)
Gets the cumulant of order n. Recursive formular.


getCentralMoment

public double getCentralMoment(int k)
Returns the k-th sample central moment.


getNormalizedCumulant

public double getNormalizedCumulant(int k)
Returns the normalized sample cumulant


getNormalizedCentralMoment

public double getNormalizedCentralMoment(int k)
Returns the normalized sample moments.


constructListMoments

public static Moments constructListMoments(int k,
                                           List<Number> l)
Constructs a new statistic from a list of numbers.


constructVectorMoments

public static Moments constructVectorMoments(int k,
                                             VectorG v)
Constructs a new statistic from a VectorG.


constructArrayMoments

public static Moments constructArrayMoments(int k,
                                            double[] v)
Constructs a new statistic from a double array.