Class OneWayAnovaImpl
- java.lang.Object
-
- org.apache.commons.math.stat.inference.OneWayAnovaImpl
-
- All Implemented Interfaces:
OneWayAnova
public class OneWayAnovaImpl extends java.lang.Object implements OneWayAnova
Implements one-way ANOVA statistics defined in theOneWayAnovaImpl
interface.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
- Since:
- 1.2
-
-
Constructor Summary
Constructors Constructor Description OneWayAnovaImpl()
Default constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description double
anovaFValue(java.util.Collection<double[]> categoryData)
Computes the ANOVA F-value for a collection ofdouble[]
arrays.double
anovaPValue(java.util.Collection<double[]> categoryData)
Computes the ANOVA P-value for a collection ofdouble[]
arrays.boolean
anovaTest(java.util.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.
-
-
-
Method Detail
-
anovaFValue
public double anovaFValue(java.util.Collection<double[]> categoryData) throws java.lang.IllegalArgumentException, MathException
Computes the ANOVA F-value for a collection ofdouble[]
arrays.Preconditions:
- The categoryData
Collection
must containdouble[]
arrays. - There must be at least two
double[]
arrays in thecategoryData
collection and each of these arrays must contain at least two values.
This implementation computes the F statistic using the definitional formula
F = msbg/mswg
wheremsbg = between group mean square mswg = within group mean square
are as defined here- Specified by:
anovaFValue
in interfaceOneWayAnova
- Parameters:
categoryData
-Collection
ofdouble[]
arrays each containing data for one category- Returns:
- Fvalue
- Throws:
java.lang.IllegalArgumentException
- if the preconditions are not metMathException
- if the statistic can not be computed do to a convergence or other numerical error.
- The categoryData
-
anovaPValue
public double anovaPValue(java.util.Collection<double[]> categoryData) throws java.lang.IllegalArgumentException, MathException
Computes the ANOVA P-value for a collection ofdouble[]
arrays.Preconditions:
- The categoryData
Collection
must containdouble[]
arrays. - There must be at least two
double[]
arrays in thecategoryData
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 formulap = 1 - cumulativeProbability(F)
whereF
is the F value andcumulativeProbability
is the commons-math implementation of the F distribution.- Specified by:
anovaPValue
in interfaceOneWayAnova
- Parameters:
categoryData
-Collection
ofdouble[]
arrays each containing data for one category- Returns:
- Pvalue
- Throws:
java.lang.IllegalArgumentException
- if the preconditions are not metMathException
- if the statistic can not be computed do to a convergence or other numerical error.
- The categoryData
-
anovaTest
public boolean anovaTest(java.util.Collection<double[]> categoryData, double alpha) throws java.lang.IllegalArgumentException, MathException
Performs an ANOVA test, evaluating the null hypothesis that there is no difference among the means of the data categories.Preconditions:
- The categoryData
Collection
must containdouble[]
arrays. - There must be at least two
double[]
arrays in thecategoryData
collection and each of these arrays must contain at least two values. - alpha must be strictly greater than 0 and less than or equal to 0.5.
This implementation uses the
commons-math F Distribution implementation
to estimate the exact p-value, using the formulap = 1 - cumulativeProbability(F)
whereF
is the F value andcumulativeProbability
is the commons-math implementation of the F distribution.True is returned iff the estimated p-value is less than alpha.
- Specified by:
anovaTest
in interfaceOneWayAnova
- Parameters:
categoryData
-Collection
ofdouble[]
arrays each containing data for one categoryalpha
- significance level of the test- Returns:
- true if the null hypothesis can be rejected with confidence 1 - alpha
- Throws:
java.lang.IllegalArgumentException
- if the preconditions are not metMathException
- if the statistic can not be computed do to a convergence or other numerical error.
- The categoryData
-
-