org.jfree.data.statistics

## Class Statistics

- java.lang.Object
- - org.jfree.data.statistics.Statistics

    public abstract class Statistics
    extends java.lang.Object

A utility class that provides some common statistical functions.

### Constructor Summary

Constructors
Constructor and Description
`Statistics()`

### Method Summary

Methods
`static double` `calculateMean(java.util.Collection values)` Returns the mean of a collection of `Number` objects.
`static double` `calculateMean(java.util.Collection values, boolean includeNullAndNaN)` Returns the mean of a collection of `Number` objects.
`static double` `calculateMean(java.lang.Number[] values)` Returns the mean of an array of numbers.
`static double` `calculateMean(java.lang.Number[] values, boolean includeNullAndNaN)` Returns the mean of an array of numbers.
`static double` `calculateMedian(java.util.List values)` Calculates the median for a list of values (`Number` objects).
`static double` `calculateMedian(java.util.List values, boolean copyAndSort)` Calculates the median for a list of values (`Number` objects).
`static double` `calculateMedian(java.util.List values, int start, int end)` Calculates the median for a sublist within a list of values (`Number` objects).
`static double` `calculateMedian(java.util.List values, int start, int end, boolean copyAndSort)` Calculates the median for a sublist within a list of values (`Number` objects).
`static double` `getCorrelation(java.lang.Number[] data1, java.lang.Number[] data2)` Calculates the correlation between two datasets.
`static double[]` `getLinearFit(java.lang.Number[] xData, java.lang.Number[] yData)` Fits a straight line to a set of (x, y) data, returning the slope and intercept.
`static double[][]` `getMovingAverage(java.lang.Number[] xData, java.lang.Number[] yData, int period)` Returns a data set for a moving average on the data set passed in.
`static double` `getSlope(java.lang.Number[] xData, java.lang.Number[] yData)` Finds the slope of a regression line using least squares.
`static double` `getStdDev(java.lang.Number[] data)` Returns the standard deviation of a set of numbers.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### Statistics

    public Statistics()

### Method Detail

#### calculateMean

    public static double calculateMean(java.lang.Number[] values)

Returns the mean of an array of numbers. This is equivalent to calling `calculateMean(values, true)`.

Parameters:
  `values` - the values (`null` not permitted).
Returns:
  The mean.

#### calculateMean

    public static double calculateMean(java.lang.Number[] values,
                       boolean includeNullAndNaN)

Returns the mean of an array of numbers.

Parameters:
  `values` - the values (`null` not permitted).
  `includeNullAndNaN` - a flag that controls whether or not `null` and `Double.NaN` values are included in the calculation (if either is present in the array, the result is `Double.NaN`).
Returns:
  The mean.
Since:
  1.0.3

#### calculateMean

    public static double calculateMean(java.util.Collection values)

Returns the mean of a collection of `Number` objects.

Parameters:
  `values` - the values (`null` not permitted).
Returns:
  The mean.

#### calculateMean

    public static double calculateMean(java.util.Collection values,
                       boolean includeNullAndNaN)

Returns the mean of a collection of `Number` objects.

Parameters:
  `values` - the values (`null` not permitted).
  `includeNullAndNaN` - a flag that controls whether or not `null` and `Double.NaN` values are included in the calculation (if either is present in the array, the result is `Double.NaN`).
Returns:
  The mean.
Since:
  1.0.3

#### calculateMedian

    public static double calculateMedian(java.util.List values)

Calculates the median for a list of values (`Number` objects). The list of values will be copied, and the copy sorted, before calculating the median. To avoid this step (if your list of values is already sorted), use the `calculateMedian(List, boolean)` method.

Parameters:
  `values` - the values (`null` permitted).
Returns:
  The median.

#### calculateMedian

    public static double calculateMedian(java.util.List values,
                         boolean copyAndSort)

Calculates the median for a list of values (`Number` objects). If `copyAndSort` is `false`, the list is assumed to be presorted in ascending order by value.

Parameters:
  `values` - the values (`null` permitted).
  `copyAndSort` - a flag that controls whether the list of values is copied and sorted.
Returns:
  The median.

#### calculateMedian

    public static double calculateMedian(java.util.List values,
                         int start,
                         int end)

Calculates the median for a sublist within a list of values (`Number` objects).

Parameters:
  `values` - the values, in any order (`null` not permitted).
  `start` - the start index.
  `end` - the end index.
Returns:
  The median.

#### calculateMedian

    public static double calculateMedian(java.util.List values,
                         int start,
                         int end,
                         boolean copyAndSort)

Calculates the median for a sublist within a list of values (`Number` objects). The entire list will be sorted if the `ascending</code< argument is <code>false`.

Parameters:
  `values` - the values (`null` not permitted).
  `start` - the start index.
  `end` - the end index.
  `copyAndSort` - a flag that that controls whether the list of values is copied and sorted.
Returns:
  The median.

#### getStdDev

    public static double getStdDev(java.lang.Number[] data)

Returns the standard deviation of a set of numbers.

Parameters:
  `data` - the data (`null` or zero length array not permitted).
Returns:
  The standard deviation of a set of numbers.

#### getLinearFit

    public static double[] getLinearFit(java.lang.Number[] xData,
                        java.lang.Number[] yData)

Fits a straight line to a set of (x, y) data, returning the slope and intercept.

Parameters:
  `xData` - the x-data (`null` not permitted).
  `yData` - the y-data (`null` not permitted).
Returns:
  A double array with the intercept in [0] and the slope in [1].

#### getSlope

    public static double getSlope(java.lang.Number[] xData,
                  java.lang.Number[] yData)

Finds the slope of a regression line using least squares.

Parameters:
  `xData` - the x-values (`null` not permitted).
  `yData` - the y-values (`null` not permitted).
Returns:
  The slope.

#### getCorrelation

    public static double getCorrelation(java.lang.Number[] data1,
                        java.lang.Number[] data2)

Calculates the correlation between two datasets. Both arrays should contain the same number of items. Null values are treated as zero.

Information about the correlation calculation was obtained from: http://trochim.human.cornell.edu/kb/statcorr.htm

Parameters:
  `data1` - the first dataset.
  `data2` - the second dataset.
Returns:
  The correlation.

#### getMovingAverage

    public static double[][] getMovingAverage(java.lang.Number[] xData,
                              java.lang.Number[] yData,
                              int period)

Returns a data set for a moving average on the data set passed in.

Parameters:
  `xData` - an array of the x data.
  `yData` - an array of the y data.
  `period` - the number of data points to average
Returns:
  A double[][] the length of the data set in the first dimension, with two doubles for x and y in the second dimension