Class Statistics

  • All Implemented Interfaces:
    Serializable, Cloneable, Cloneable
    Direct Known Subclasses:
    Statistics.Delta

    public class Statistics
    extends Object
    implements Cloneable, Serializable
    Holds some statistics about a series of sample values. Given a series of sample values s0, s1, s2, s3..., this class computes minimum, maximum, mean, root mean square and standard deviation. Statistics are computed on the fly; the sample values are never stored in memory.

    An instance of Statistics is initially empty (i.e. all statistical values are set to NaN). The statistics are updated every time an add(double) method is invoked with a non-NaN value. A typical usage of this class is:

     double[] data = new double[1000];
     // (Compute some data values here...)
    
     Statistics stats = new Statistics();
     for (int i=0; i<data.length; i++) {
         stats.add(data[i]);
     }
     System.out.println(stats);
     
    Since:
    2.0
    Author:
    Martin Desruisseaux (IRD)
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  Statistics.Delta
      Holds some statistics about a series of sample values and the difference between them.
    • Constructor Summary

      Constructors 
      Constructor Description
      Statistics()
      Constructs an initially empty set of statistics.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void add​(double sample)
      Updates statistics for the specified sample.
      void add​(long sample)
      Updates statistics for the specified sample.
      void add​(Statistics stats)
      Updates statistics with all samples from the specified stats.
      Statistics clone()
      Returns a clone of this statistics.
      int count()
      Returns the number of samples, excluding NaN values.
      int countNaN()
      Returns the number of NaN samples.
      boolean equals​(Object obj)
      Tests this statistics with the specified object for equality.
      int hashCode()
      Returns a hash code value for this statistics.
      double maximum()
      Returns the maximum sample value, or NaN if none.
      double mean()
      Returns the mean value, or NaN if none.
      double minimum()
      Returns the minimum sample value, or NaN if none.
      double range()
      Returns the range of sample values.
      void reset()
      Resets the statistics to their initial NaN values.
      double rms()
      Returns the root mean square, or NaN if none.
      double standardDeviation​(boolean allPopulation)
      Retourne l'écart type des échantillons par rapport à la moyenne.
      String toString()
      Returns a string representation of this statistics.
      String toString​(Locale locale, boolean tabulations)
      Returns a localized string representation of this statistics.
    • Constructor Detail

      • Statistics

        public Statistics()
        Constructs an initially empty set of statistics. All statistical values are initialized to Double.NaN.
    • Method Detail

      • reset

        public void reset()
        Resets the statistics to their initial NaN values. This method reset this object state as if it was just created.
      • add

        public void add​(double sample)
        Updates statistics for the specified sample. This add method is usually invoked inside a for loop.
        Parameters:
        sample - The sample value. NaN values are ignored.
        See Also:
        add(long), add(Statistics)
      • add

        public void add​(long sample)
        Updates statistics for the specified sample. This add method is usually invoked inside a for loop.
        Parameters:
        sample - The sample value.
        See Also:
        add(double), add(Statistics)
      • add

        public void add​(Statistics stats)
        Updates statistics with all samples from the specified stats. Invoking this method is equivalent (except for rounding errors) to invoking add for all samples that were added to stats.
        Parameters:
        stats - The statistics to be added to this, or null if none.
      • countNaN

        public int countNaN()
        Returns the number of NaN samples. NaN samples are ignored in all other statitical computation. This method count them for information purpose only.
      • count

        public int count()
        Returns the number of samples, excluding NaN values.
      • minimum

        public double minimum()
        Returns the minimum sample value, or NaN if none.
        See Also:
        maximum()
      • maximum

        public double maximum()
        Returns the maximum sample value, or NaN if none.
        See Also:
        minimum()
      • range

        public double range()
        Returns the range of sample values. This is equivalent to maximum - minimum, except for rounding error. If no samples were added, then returns NaN.
        See Also:
        minimum(), maximum()
      • mean

        public double mean()
        Returns the mean value, or NaN if none.
      • rms

        public double rms()
        Returns the root mean square, or NaN if none.
      • standardDeviation

        public double standardDeviation​(boolean allPopulation)
        Retourne l'écart type des échantillons par rapport à la moyenne. Si les données fournies aux différentes méthodes add(...) se distribuent selon une loi normale, alors l'écart type est la distance de part et d'autre de la moyenne dans lequel se trouveraient environ 84% des données. Le tableau ci-dessous donne le pourcentage approximatif des données que l'on trouve de part et d'autre de la moyenne à des distances telles que 2 ou 3 fois l'écart-type.
         0.5  69.1% 
         1.0  84.2% 
         1.5  93.3% 
         2.0  97.7% 
         3.0  99.9% 
        Parameters:
        allPopulation - La valeur true indique que les données fournies aux différentes méthodes add(...) représentent l'ensemble de la polulation. La valeur false indique que ces données ne représentent qu'un échantillon de la population, ce qui est généralement le cas. Si le nombre de données est élevé, alors les valeurs true et false donneront sensiblement les mêmes résultats.
      • equals

        public boolean equals​(Object obj)
        Tests this statistics with the specified object for equality.
        Overrides:
        equals in class Object
      • hashCode

        public int hashCode()
        Returns a hash code value for this statistics.
        Overrides:
        hashCode in class Object
      • toString

        public final String toString()
        Returns a string representation of this statistics. This method invokes toString(Locale, boolean) using the default locale and spaces separator.
        Overrides:
        toString in class Object
      • toString

        public String toString​(Locale locale,
                               boolean tabulations)
        Returns a localized string representation of this statistics. This string will span multiple lines, one for each statistical value. For example:
             Compte:      8726
             Minimum:    6.853
             Maximum:    8.259
             Moyenne:    7.421
             RMS:        7.846
             Écart-type: 6.489
         
        If tabulations is true, then labels (e.g. "Minimum") and values (e.g. "6.853") are separated by tabulations. Otherwise, they are separated by spaces.