Package jsl.utilities.statistic
Class Statistic
- java.lang.Object
-
- jsl.utilities.statistic.AbstractCollector
-
- jsl.utilities.statistic.AbstractStatistic
-
- jsl.utilities.statistic.Statistic
-
- All Implemented Interfaces:
java.lang.Comparable<AbstractStatistic>,GetNameIfc,IdentityIfc,ArraySaverIfc,CollectorIfc,GetCSVStatisticIfc,StatisticAccessorIfc
public class Statistic extends AbstractStatistic
The Statistic class allows the collection of summary statistics on data via the collect() methods. The primary statistical summary is for the statistical moments.
-
-
Field Summary
Fields Modifier and Type Field Description protected doublefirstxHolds the first observed data point, needed for von-neuman statisticprotected doublemaxHolds the maximum of the observed dataprotected doubleminHolds the minimum of the observed data.protected double[]momentsHolds the first 4 statistical central momentsprotected doublemyJsumHolds sum = sum + j*xprotected doublemyValueHolds the last value observedprotected doublenumHolds the number of observations observedprotected doublesumxxHolds the sum the lag-1 data, i.e.-
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 Statistic()Creates a Statistic with name "null"Statistic(double[] values)Creates a Statistic \based on the provided arrayStatistic(java.lang.String name)Creates a Statistic with the given nameStatistic(java.lang.String name, double[] values)Creates a Statistic with the given name based on the provided array
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.StringasString()booleancheckMean(double mean)Checks if the supplied value falls within getAverage() +/- getHalfWidth()voidcollect(double x)Collect on the supplied valuestatic StatisticcollectStatistics(double[] x)Returns a statistic that summarizes the passed in array of valuesstatic intcountGreaterEqualTo(double[] data, double x)static intcountGreaterThan(double[] data, double x)static intcountLessEqualTo(double[] data, double x)static intcountLessThan(double[] data, double x)longestimateSampleSize(double desiredHW)Estimates the number of observations needed in order to obtain a getConfidenceLevel() confidence interval with plus/minus the provided half-widthstatic longestimateSampleSize(double desiredHW, double stdDev, double level)Estimate the sample size based on a normal approximationdoubleget2ndCentralMoment()Returns the 2nd statistical central momentdoubleget2ndRawMoment()Returns the 2nd statistical raw moment (about zero)doubleget3rdCentralMoment()Returns the 3rd statistical central momentdoubleget3rdRawMoment()Returns the 3rd statistical raw moment (about zero)doubleget4thCentralMoment()Returns the 4th statistical central momentdoubleget4thRawMoment()Returns the 4th statistical raw moment (about zero)doublegetAverage()Gets the unweighted average of the observations.double[]getCentralMoments()The 0th moment is the count, the 1st central moment zero, the 2nd, 3rd, and 4th central momentsdoublegetCount()Gets the count of the number of the observations.doublegetDeviationSumOfSquares()Gets the sum of squares of the deviations from the average This is the numerator in the classic sample variance formuladoublegetHalfWidth(double level)Returns the half-width for a confidence interval on the mean with confidence level based on StudentT distributionstatic intgetIndexOfMax(double[] x)Returns the index associated with the maximum element in the array For ties, this returns the first foundstatic intgetIndexOfMin(double[] x)Returns the index associated with the minimum element in the array For ties, this returns the first founddoublegetKurtosis()Gets the kurtosis of the datadoublegetLag1Correlation()Gets the lag-1 generate correlation of the unweighted observations.doublegetLag1Covariance()Gets the lag-1 generate covariance of the unweighted observations.doublegetLastValue()Gets the last observed data pointintgetLeadingDigitRule(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 SchmeiserdoublegetMax()Gets the maximum of the observations.static doublegetMax(double[] x)static doublegetMedian(double[] data)Returns the median of the data.doublegetMin()Gets the minimum of the observations.static doublegetMin(double[] x)doublegetObsWeightedSum()Returns the observation weighted sum of the data i.e.static double[]getOrderStatistics(double[] data)doublegetSkewness()Gets the skewness of the datadoublegetStandardError()Gets the standard error of the observations.doublegetSum()Gets the sum of the observations.java.lang.StringgetSummaryStatistics()Returns the summary statistics values Name Count Average Std.java.lang.StringgetSummaryStatisticsHeader()Returns the header for the summary statistics Name Count Average Std.doublegetVariance()Gets the sample variance of the observations.doublegetVonNeumannLag1TestStatistic()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.doublegetVonNeumannLag1TestStatisticPValue()Returns the asymptotic p-value for the Von Nueumann Lag-1 Test Statistic:StatisticnewInstance()Creates a instance of Statistic that is a copy of the supplied Statistic All internal state is the same (including whether the collection is on or off) and the collection rule.static StatisticnewInstance(Statistic stat)Creates a instance of Statistic that is a copy of the supplied Statistic All internal state is the same (including whether the collection is on or off) and the collection rule.voidreset()Resets the collector as if no observations had been collected.java.lang.StringtoString()Returns a String representation of the Statistic-
Methods inherited from class jsl.utilities.statistic.AbstractStatistic
compareTo, getConfidenceLevel, 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, getStandardDeviation, getStatistics, getStatisticsAsMap
-
-
-
-
Field Detail
-
min
protected double min
Holds the minimum of the observed data.
-
max
protected double max
Holds the maximum of the observed data
-
num
protected double num
Holds the number of observations observed
-
myValue
protected double myValue
Holds the last value observed
-
sumxx
protected double sumxx
Holds the sum the lag-1 data, i.e. from the second data point on variable for collecting lag1 covariance
-
firstx
protected double firstx
Holds the first observed data point, needed for von-neuman statistic
-
moments
protected double[] moments
Holds the first 4 statistical central moments
-
myJsum
protected double myJsum
Holds sum = sum + j*x
-
-
Constructor Detail
-
Statistic
public Statistic()
Creates a Statistic with name "null"
-
Statistic
public Statistic(java.lang.String name)
Creates a Statistic with the given name- Parameters:
name- A String representing the name of the statistic
-
Statistic
public Statistic(double[] values)
Creates a Statistic \based on the provided array- Parameters:
values- an array of values to collect statistics on
-
Statistic
public Statistic(java.lang.String name, double[] values)Creates a Statistic with the given name based on the provided array- Parameters:
name- A String representing the name of the statisticvalues- an array of values to collect statistics on
-
-
Method Detail
-
collectStatistics
public static Statistic collectStatistics(double[] x)
Returns a statistic that summarizes the passed in array of values- Parameters:
x- the values to compute statistics for- Returns:
- a Statistic summarizing the data
-
newInstance
public static Statistic newInstance(Statistic stat)
Creates a instance of Statistic that is a copy of the supplied Statistic All internal state is the same (including whether the collection is on or off) and the collection rule. The only exception is for the id of the returned Statistic If this statistic has saved data, the new instance will also have that data.- Parameters:
stat- the stat to copy- Returns:
- a copy of the supplied Statistic
-
newInstance
public final Statistic newInstance()
Creates a instance of Statistic that is a copy of the supplied Statistic All internal state is the same (including whether the collection is on or off) and the collection rule. The only exception is for the id of the returned Statistic. If this statistic has saved data, the new instance will also have that data.- Returns:
- a copy of the supplied Statistic
-
getIndexOfMin
public static int getIndexOfMin(double[] x)
Returns the index associated with the minimum element in the array For ties, this returns the first found- Parameters:
x- the array of data- Returns:
- the index associated with the minimum element
-
getMin
public static double getMin(double[] x)
- Parameters:
x- the array of data- Returns:
- the minimum value in the array
-
getIndexOfMax
public static int getIndexOfMax(double[] x)
Returns the index associated with the maximum element in the array For ties, this returns the first found- Parameters:
x- the array of data- Returns:
- the index associated with the maximum element
-
getMax
public static double getMax(double[] x)
- Parameters:
x- the array of data- Returns:
- the maximum value in the array
-
getMedian
public static double getMedian(double[] data)
Returns the median of the data. The array is sorted- Parameters:
data- the array of data, must not be null- Returns:
- the median of the data
-
countLessEqualTo
public static int countLessEqualTo(double[] data, double x)- Parameters:
data- the data to countx- the ordinate to check- Returns:
- the number of data points less than or equal to x
-
countLessThan
public static int countLessThan(double[] data, double x)- Parameters:
data- the data to countx- the ordinate to check- Returns:
- the number of data points less than x
-
countGreaterEqualTo
public static int countGreaterEqualTo(double[] data, double x)- Parameters:
data- the data to countx- the ordinate to check- Returns:
- the number of data points greater than or equal to x
-
countGreaterThan
public static int countGreaterThan(double[] data, double x)- Parameters:
data- the data to countx- the ordinate to check- Returns:
- the number of data points greater than x
-
getOrderStatistics
public static double[] getOrderStatistics(double[] data)
- Parameters:
data- the data to sort- Returns:
- a copy of the sorted array in ascending order representing the order statistics
-
getCount
public final double getCount()
Description copied from interface:StatisticAccessorIfcGets the count of the number of the observations.- Returns:
- A double representing the count
-
getSum
public final double getSum()
Description copied from interface:StatisticAccessorIfcGets the sum of the observations.- Returns:
- A double representing the unweighted sum
-
getAverage
public final double getAverage()
Description copied from interface:StatisticAccessorIfcGets the unweighted average of the observations.- Returns:
- A double representing the average or Double.NaN if no observations.
-
get2ndCentralMoment
public final double get2ndCentralMoment()
Returns the 2nd statistical central moment- Returns:
- the 2nd statistical central moment
-
get3rdCentralMoment
public final double get3rdCentralMoment()
Returns the 3rd statistical central moment- Returns:
- the 3rd statistical central moment
-
get4thCentralMoment
public final double get4thCentralMoment()
Returns the 4th statistical central moment- Returns:
- the 4th statistical central moment
-
getCentralMoments
public final double[] getCentralMoments()
The 0th moment is the count, the 1st central moment zero, the 2nd, 3rd, and 4th central moments- Returns:
- an array holding the central moments, 0, 1, 2, 3, 4
-
get2ndRawMoment
public final double get2ndRawMoment()
Returns the 2nd statistical raw moment (about zero)- Returns:
- the 2nd statistical raw moment (about zero)
-
get3rdRawMoment
public final double get3rdRawMoment()
Returns the 3rd statistical raw moment (about zero)- Returns:
- the 3rd statistical raw moment (about zero)
-
get4thRawMoment
public final double get4thRawMoment()
Returns the 4th statistical raw moment (about zero)- Returns:
- the 4th statistical raw moment (about zero)
-
getDeviationSumOfSquares
public final double getDeviationSumOfSquares()
Description copied from interface:StatisticAccessorIfcGets 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
-
getVariance
public final double getVariance()
Description copied from interface:StatisticAccessorIfcGets the sample variance of the observations.- Returns:
- A double representing the generate variance or Double.NaN if 1 or less observations.
-
getMin
public final double getMin()
Description copied from interface:StatisticAccessorIfcGets the minimum of the observations.- Returns:
- A double representing the minimum
-
getMax
public final double getMax()
Description copied from interface:StatisticAccessorIfcGets the maximum of the observations.- Returns:
- A double representing the maximum
-
getLastValue
public final double getLastValue()
Description copied from interface:StatisticAccessorIfcGets the last observed data point- Returns:
- A double representing the last observations
-
getKurtosis
public final double getKurtosis()
Description copied from interface:StatisticAccessorIfcGets the kurtosis of the data- Returns:
- A double representing the kurtosis
-
getSkewness
public final double getSkewness()
Description copied from interface:StatisticAccessorIfcGets the skewness of the data- Returns:
- A double representing the skewness
-
checkMean
public final boolean checkMean(double mean)
Checks if the supplied value falls within getAverage() +/- getHalfWidth()- Parameters:
mean- the value to check- Returns:
- true if the supplied value falls within getAverage() +/- getHalfWidth()
-
getHalfWidth
public double getHalfWidth(double level)
Returns the half-width for a confidence interval on the mean with confidence level based on StudentT distribution- Parameters:
level- the confidence level- Returns:
- the half-width
-
getStandardError
public final double getStandardError()
Description copied from interface:StatisticAccessorIfcGets 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
-
getLeadingDigitRule
public final int getLeadingDigitRule(double a)
Description copied from interface:StatisticAccessorIfcComputes 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
-
getLag1Covariance
public final double getLag1Covariance()
Description copied from interface:StatisticAccessorIfcGets 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
-
getLag1Correlation
public final double getLag1Correlation()
Description copied from interface:StatisticAccessorIfcGets 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
-
getVonNeumannLag1TestStatistic
public final double getVonNeumannLag1TestStatistic()
Description copied from interface:StatisticAccessorIfcGets 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:StatisticAccessorIfcReturns the asymptotic p-value for the Von Nueumann Lag-1 Test Statistic:Normal.stdNormalComplementaryCDF(getVonNeumannLag1TestStatistic());
- Returns:
- the p-value
-
getObsWeightedSum
public final double getObsWeightedSum()
Returns the observation weighted sum of the data i.e. sum = sum + j*x where j is the observation number and x is jth observation- Returns:
- the observation weighted sum of the data
-
collect
public void collect(double x)
Description copied from interface:CollectorIfcCollect on the supplied value- Parameters:
x- a double representing the observation
-
reset
public void reset()
Description copied from interface:CollectorIfcResets the collector as if no observations had been collected.
-
asString
public java.lang.String asString()
-
toString
public java.lang.String toString()
Description copied from interface:StatisticAccessorIfcReturns a String representation of the Statistic- Specified by:
toStringin interfaceStatisticAccessorIfc- Overrides:
toStringin classjava.lang.Object- Returns:
- A String with basic summary statistics
-
getSummaryStatistics
public java.lang.String getSummaryStatistics()
Returns the summary statistics values Name Count Average Std. Dev.- Returns:
- the string of summary statistics
-
getSummaryStatisticsHeader
public java.lang.String getSummaryStatisticsHeader()
Returns the header for the summary statistics Name Count Average Std. Dev.- Returns:
- the header
-
estimateSampleSize
public final long estimateSampleSize(double desiredHW)
Estimates the number of observations needed in order to obtain a getConfidenceLevel() confidence interval with plus/minus the provided half-width- Parameters:
desiredHW- the desired half-width, must be greater than zero- Returns:
- the estimated sample size
-
estimateSampleSize
public static long estimateSampleSize(double desiredHW, double stdDev, double level)Estimate the sample size based on a normal approximation- Parameters:
desiredHW- the desired half-width (must be bigger than 0)stdDev- the standard deviation (must be bigger than or equal to 0)level- the confidence level (must be between 0 and 1)- Returns:
- the estimated sample size
-
-