Package jsl.utilities.statistic
Class CachedHistogram
- java.lang.Object
-
- jsl.utilities.statistic.AbstractCollector
-
- jsl.utilities.statistic.AbstractStatistic
-
- jsl.utilities.statistic.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 Summary
Fields Modifier and Type Field Description static int
DEFAULT_CACHE_SIZE
protected Statistic
myCacheStatistic
Collects statistical information on the data during cachingprotected boolean
myCachingFlag
Flag indicating the histogram is caching values to compute adequate range.protected int
myCountCache
Counts number of observations in the cacheprotected double[]
myDataCache
Cache for accumulated values.protected Histogram
myHistogram
Collects histogram statistics after caching is doneprotected int
myNumBins
The number of bins for the histogram-
Fields inherited from class jsl.utilities.statistic.AbstractStatistic
DEFAULT_CONFIDENCE_LEVEL, myConfidenceLevel, myNumMissing
-
Fields inherited from interface jsl.utilities.statistic.ArraySaverIfc
DEFAULT_DATA_ARRAY_SIZE
-
-
Constructor Summary
Constructors Constructor Description CachedHistogram()
Creates a CachedHistogram using the DEFAULT_CACHE_SIZE by determining a reasonable number of binsCachedHistogram(int cacheSize)
Creates a CachedHistogram by determining a reasonable number of binsCachedHistogram(int cacheSize, int numBins)
Creates a CachedHistogramCachedHistogram(int cacheSize, int numBins, java.lang.String name)
Creates a CachedHistogramCachedHistogram(int cacheSize, java.lang.String name)
Creates a CachedHistogram by determining a reasonable number of binsCachedHistogram(java.lang.String name)
Creates a CachedHistogram using the DEFAULT_CACHE_SIZE by determining a reasonable number of bins
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
collect(double x)
Collect on the supplied valueprotected void
collectOnCache()
When the cache is full this method is called to form the histogramdouble
getAverage()
Gets the unweighted average of the observations.double
getConfidenceLevel()
Gets the confidence level.double
getCount()
Gets the count of the number of the observations.double
getDeviationSumOfSquares()
Gets the sum of squares of the deviations from the average This is the numerator in the classic sample variance formuladouble
getHalfWidth(double alpha)
Gets the confidence interval half-width.Histogram
getHistogram()
Returns a histogram based on the data or null if the cache limit has not been reached.double
getKurtosis()
Gets the kurtosis of the datadouble
getLag1Correlation()
Gets the lag-1 generate correlation of the unweighted observations.double
getLag1Covariance()
Gets the lag-1 generate covariance of the unweighted observations.double
getLastValue()
Gets the last observed data pointint
getLeadingDigitRule(double a)
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 Schmeiserdouble
getMax()
Gets the maximum of the observations.double
getMin()
Gets the minimum of the observations.double
getSkewness()
Gets the skewness of the datadouble
getStandardDeviation()
Gets the sample standard deviation of the observations.double
getStandardError()
Gets the standard error of the observations.double
getSum()
Gets the sum of the observations.double
getVariance()
Gets the sample variance of the observations.double
getVonNeumannLag1TestStatistic()
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.double
getVonNeumannLag1TestStatisticPValue()
Returns the asymptotic p-value for the Von Nueumann Lag-1 Test Statistic:static void
main(java.lang.String[] args)
void
reset()
Resets the collector as if no observations had been collected.java.lang.String
toString()
Returns a String representation of the Statistic-
Methods inherited from class jsl.utilities.statistic.AbstractStatistic
compareTo, getNumberMissing, setConfidenceLevel
-
Methods inherited from class jsl.utilities.statistic.AbstractCollector
clearSavedData, getId, getName, getSavedData, getSaveOption, save, save, setArraySizeIncrement, setName, setSaveOption
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface jsl.utilities.statistic.CollectorIfc
collect, collect, collect
-
Methods inherited from interface jsl.utilities.statistic.StatisticAccessorIfc
getConfidenceInterval, getConfidenceInterval, getCSVHeader, getCSVStatistic, getCSVStatisticHeader, getCSVValues, getHalfWidth, getName, getRelativeError, getRelativeWidth, getRelativeWidth, getStatistics, getStatisticsAsMap
-
-
-
-
Field Detail
-
DEFAULT_CACHE_SIZE
public static final int DEFAULT_CACHE_SIZE
- See Also:
- Constant Field Values
-
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 histogramname
- 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 histogramnumBins
- 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 histogramnumBins
- The number of desired bins, must be >=0, if zero a reasonable number of bins is automatically determinedname
- 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.
-
getConfidenceLevel
public final double getConfidenceLevel()
Description copied from interface:StatisticAccessorIfc
Gets the confidence level. The default is given by Statistic.DEFAULT_CONFIDENCE_LEVEL = 0.95, which is a 95% confidence level- Specified by:
getConfidenceLevel
in interfaceStatisticAccessorIfc
- Overrides:
getConfidenceLevel
in classAbstractStatistic
- Returns:
- A double representing the confidence level
-
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 interfaceStatisticAccessorIfc
- Overrides:
toString
in classjava.lang.Object
- Returns:
- A String with basic summary statistics
-
main
public static void main(java.lang.String[] args)
- Parameters:
args
-
-
-