public class OneWayAnova extends Object
Tests for differences between two or more categories of univariate data (for example, the body mass index of
accountants, lawyers, doctors and computer programmers). When two categories are given, this is equivalent to the
TTest
.
Uses the commons-math F Distribution implementation
to estimate exact p-values.
This implementation is based on a description at http://faculty.vassar.edu/lowry/ch13pt1.html
Abbreviations: bg = between groups, wg = within groups, ss = sum squared deviations
Constructor and Description |
---|
OneWayAnova() |
Modifier and Type | Method and Description |
---|---|
double |
anovaFValue(Collection<double[]> categoryData)
Computes the ANOVA F-value for a collection of
double[] arrays. |
double |
anovaPValue(Collection<double[]> categoryData)
Computes the ANOVA P-value for a collection of
double[] arrays. |
boolean |
anovaTest(Collection<double[]> categoryData,
double alpha)
Performs an ANOVA test, evaluating the null hypothesis that there
is no difference among the means of the data categories.
|
public double anovaFValue(Collection<double[]> categoryData)
double[]
arrays.
Preconditions:
Collection
must contain double[]
arrays.double[]
arrays in the categoryData
collection and each
of these arrays must contain at least two values.This implementation computes the F statistic using the definitional formula
F = msbg / mswgwhere
msbg = between group mean square mswg = within group mean squareare as defined here
categoryData
- Collection
of double[]
arrays each containing data for one categoryNullArgumentException
- if categoryData
is null
DimensionMismatchException
- if the length of the categoryData
array is less than 2 or a contained double[]
array does not have
at least two valuespublic double anovaPValue(Collection<double[]> categoryData)
double[]
arrays.
Preconditions:
Collection
must contain double[]
arrays.double[]
arrays in the categoryData
collection and each
of these arrays must contain at least two values.
This implementation uses the commons-math F Distribution implementation
to estimate the exact p-value, using the formula
p = 1 - cumulativeProbability(F)where
F
is the F value and cumulativeProbability
is the commons-math implementation of
the F distribution.
categoryData
- Collection
of double[]
arrays each containing data for one categoryNullArgumentException
- if categoryData
is null
DimensionMismatchException
- if the length of the categoryData
array is less than 2 or a contained double[]
array does not have
at least two valuesConvergenceException
- if the p-value can not be computed due to a convergence errorMaxCountExceededException
- if the maximum number of iterations is exceededpublic boolean anovaTest(Collection<double[]> categoryData, double alpha)
Preconditions:
Collection
must contain double[]
arrays.double[]
arrays in the categoryData
collection and each
of these arrays must contain at least two values.
This implementation uses the commons-math F Distribution implementation
to estimate the exact p-value, using the formula
p = 1 - cumulativeProbability(F)where
F
is the F value and cumulativeProbability
is the commons-math implementation of
the F distribution.
True is returned iff the estimated p-value is less than alpha.
categoryData
- Collection
of double[]
arrays each containing data for one categoryalpha
- significance level of the testNullArgumentException
- if categoryData
is null
DimensionMismatchException
- if the length of the categoryData
array is less than 2 or a contained double[]
array does not have
at least two valuesOutOfRangeException
- if alpha
is not in the range (0, 0.5]ConvergenceException
- if the p-value can not be computed due to a convergence errorMaxCountExceededException
- if the maximum number of iterations is exceededCopyright © 2020 CNES. All rights reserved.