Class CachedHistogram

  • All Implemented Interfaces:
    java.lang.Comparable<AbstractStatistic>, GetNameIfc, IdentityIfc, ArraySaverIfc, CollectorIfc, GetCSVStatisticIfc, StatisticAccessorIfc

    public class CachedHistogram
    extends AbstractStatistic
    A CachedHistogram allow collection and forming of a histogram without pre-specifying the number of bins. It works by using an initial cache of the data to determine a reasonable number of bins and bin width based on the observed minimum and maximum of the data within the cache. Once the cache is observed, this class works essentially like a Histogram, which can be returned via the getHistogram() method.
    • Field Detail

      • myNumBins

        protected int myNumBins
        The number of bins for the histogram
      • myCachingFlag

        protected boolean myCachingFlag
        Flag indicating the histogram is caching values to compute adequate range.
      • myCountCache

        protected int myCountCache
        Counts number of observations in the cache
      • myDataCache

        protected double[] myDataCache
        Cache for accumulated values.
      • myCacheStatistic

        protected Statistic myCacheStatistic
        Collects statistical information on the data during caching
      • myHistogram

        protected Histogram myHistogram
        Collects histogram statistics after caching is done
    • Constructor Detail

      • CachedHistogram

        public CachedHistogram()
        Creates a CachedHistogram using the DEFAULT_CACHE_SIZE by determining a reasonable number of bins
      • CachedHistogram

        public CachedHistogram​(java.lang.String name)
        Creates a CachedHistogram using the DEFAULT_CACHE_SIZE by determining a reasonable number of bins
        Parameters:
        name - the name of the histogram
      • CachedHistogram

        public CachedHistogram​(int cacheSize,
                               java.lang.String name)
        Creates a CachedHistogram by determining a reasonable number of bins
        Parameters:
        cacheSize - The size of the cache for initializing the histogram
        name - the name of the histogram
      • CachedHistogram

        public CachedHistogram​(int cacheSize)
        Creates a CachedHistogram by determining a reasonable number of bins
        Parameters:
        cacheSize - The size of the cache for initializing the histogram
      • CachedHistogram

        public CachedHistogram​(int cacheSize,
                               int numBins)
        Creates a CachedHistogram
        Parameters:
        cacheSize - The size of the cache for initializing the histogram
        numBins - The number of desired bins, must be >=0, if zero a reasonable number of bins is automatically determined
      • CachedHistogram

        public CachedHistogram​(int cacheSize,
                               int numBins,
                               java.lang.String name)
        Creates a CachedHistogram
        Parameters:
        cacheSize - The size of the cache for initializing the histogram
        numBins - The number of desired bins, must be >=0, if zero a reasonable number of bins is automatically determined
        name - the name of the histogram
    • Method Detail

      • getHistogram

        public final Histogram getHistogram()
        Returns a histogram based on the data or null if the cache limit has not been reached.
        Returns:
        the histogram
      • collect

        public final void collect​(double x)
        Description copied from interface: CollectorIfc
        Collect on the supplied value
        Parameters:
        x - a double representing the observation
      • collectOnCache

        protected final void collectOnCache()
        When the cache is full this method is called to form the histogram
      • getAverage

        public final double getAverage()
        Description copied from interface: StatisticAccessorIfc
        Gets the unweighted average of the observations.
        Returns:
        A double representing the average or Double.NaN if no observations.
      • getCount

        public final double getCount()
        Description copied from interface: StatisticAccessorIfc
        Gets the count of the number of the observations.
        Returns:
        A double representing the count
      • getDeviationSumOfSquares

        public final double getDeviationSumOfSquares()
        Description copied from interface: StatisticAccessorIfc
        Gets the sum of squares of the deviations from the average This is the numerator in the classic sample variance formula
        Returns:
        A double representing the sum of squares of the deviations from the average
      • getHalfWidth

        public final double getHalfWidth​(double alpha)
        Description copied from interface: StatisticAccessorIfc
        Gets the confidence interval half-width. Simply the generate standard error times the confidence coefficient as determined by an appropriate sampling distribution
        Parameters:
        alpha - the confidence level
        Returns:
        A double representing the half-width or Double.NaN if < 1 observation
      • getKurtosis

        public final double getKurtosis()
        Description copied from interface: StatisticAccessorIfc
        Gets the kurtosis of the data
        Returns:
        A double representing the kurtosis
      • getLag1Correlation

        public final double getLag1Correlation()
        Description copied from interface: StatisticAccessorIfc
        Gets the lag-1 generate correlation of the unweighted observations. Note: See Box, Jenkins, Reinsel, Time Series Analysis, 3rd edition, Prentice-Hall, pg 31
        Returns:
        A double representing the generate correlation or Double.NaN if <=2 observations
      • getLag1Covariance

        public final double getLag1Covariance()
        Description copied from interface: StatisticAccessorIfc
        Gets the lag-1 generate covariance of the unweighted observations. Note: See Box, Jenkins, Reinsel, Time Series Analysis, 3rd edition, Prentice-Hall, pg 31
        Returns:
        A double representing the generate covariance or Double.NaN if <=2 observations
      • getLastValue

        public final double getLastValue()
        Description copied from interface: StatisticAccessorIfc
        Gets the last observed data point
        Returns:
        A double representing the last observations
      • getMax

        public final double getMax()
        Description copied from interface: StatisticAccessorIfc
        Gets the maximum of the observations.
        Returns:
        A double representing the maximum
      • getMin

        public final double getMin()
        Description copied from interface: StatisticAccessorIfc
        Gets the minimum of the observations.
        Returns:
        A double representing the minimum
      • getSkewness

        public final double getSkewness()
        Description copied from interface: StatisticAccessorIfc
        Gets the skewness of the data
        Returns:
        A double representing the skewness
      • getStandardDeviation

        public final double getStandardDeviation()
        Description copied from interface: StatisticAccessorIfc
        Gets the sample standard deviation of the observations. Simply the square root of getVariance()
        Returns:
        A double representing the generate standard deviation or Double.NaN if 1 or less observations.
      • getStandardError

        public final double getStandardError()
        Description copied from interface: StatisticAccessorIfc
        Gets the standard error of the observations. Simply the generate standard deviation divided by the square root of the number of observations
        Returns:
        A double representing the standard error or Double.NaN if < 1 observation
      • getSum

        public final double getSum()
        Description copied from interface: StatisticAccessorIfc
        Gets the sum of the observations.
        Returns:
        A double representing the unweighted sum
      • getVariance

        public final double getVariance()
        Description copied from interface: StatisticAccessorIfc
        Gets the sample variance of the observations.
        Returns:
        A double representing the generate variance or Double.NaN if 1 or less observations.
      • getVonNeumannLag1TestStatistic

        public final double getVonNeumannLag1TestStatistic()
        Description copied from interface: StatisticAccessorIfc
        Gets the Von Neumann Lag 1 test statistic for checking the hypothesis that the data are uncorrelated Note: See Handbook of Simulation, Jerry Banks editor, McGraw-Hill, pg 253.
        Returns:
        A double representing the Von Neumann test statistic
      • getVonNeumannLag1TestStatisticPValue

        public final double getVonNeumannLag1TestStatisticPValue()
        Description copied from interface: StatisticAccessorIfc
        Returns the asymptotic p-value for the Von Nueumann Lag-1 Test Statistic:

        Normal.stdNormalComplementaryCDF(getVonNeumannLag1TestStatistic());

        Returns:
        the p-value
      • getLeadingDigitRule

        public final int getLeadingDigitRule​(double a)
        Description copied from interface: StatisticAccessorIfc
        Computes the right most meaningful digit according to (int)Math.floor(Math.log10(a*getStandardError())) See doi 10.1287.opre.1080.0529 by Song and Schmeiser
        Parameters:
        a - the std error multiplier
        Returns:
        the meaningful digit
      • reset

        public final void reset()
        Description copied from interface: CollectorIfc
        Resets the collector as if no observations had been collected.
      • toString

        public java.lang.String toString()
        Description copied from interface: StatisticAccessorIfc
        Returns a String representation of the Statistic
        Specified by:
        toString in interface StatisticAccessorIfc
        Overrides:
        toString in class java.lang.Object
        Returns:
        A String with basic summary statistics
      • main

        public static void main​(java.lang.String[] args)
        Parameters:
        args -