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 theOneWayAnovaImplinterface.Uses the
commons-math F Distribution implementationto 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 doubleanovaFValue(java.util.Collection<double[]> categoryData)Computes the ANOVA F-value for a collection ofdouble[]arrays.doubleanovaPValue(java.util.Collection<double[]> categoryData)Computes the ANOVA P-value for a collection ofdouble[]arrays.booleananovaTest(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, MathExceptionComputes the ANOVA F-value for a collection ofdouble[]arrays.Preconditions:
- The categoryData
Collectionmust containdouble[]arrays. - There must be at least two
double[]arrays in thecategoryDatacollection 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:
anovaFValuein interfaceOneWayAnova- Parameters:
categoryData-Collectionofdouble[]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, MathExceptionComputes the ANOVA P-value for a collection ofdouble[]arrays.Preconditions:
- The categoryData
Collectionmust containdouble[]arrays. - There must be at least two
double[]arrays in thecategoryDatacollection and each of these arrays must contain at least two values.
This implementation uses the
commons-math F Distribution implementationto estimate the exact p-value, using the formulap = 1 - cumulativeProbability(F)
whereFis the F value andcumulativeProbabilityis the commons-math implementation of the F distribution.- Specified by:
anovaPValuein interfaceOneWayAnova- Parameters:
categoryData-Collectionofdouble[]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, MathExceptionPerforms an ANOVA test, evaluating the null hypothesis that there is no difference among the means of the data categories.Preconditions:
- The categoryData
Collectionmust containdouble[]arrays. - There must be at least two
double[]arrays in thecategoryDatacollection 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 implementationto estimate the exact p-value, using the formulap = 1 - cumulativeProbability(F)
whereFis the F value andcumulativeProbabilityis the commons-math implementation of the F distribution.True is returned iff the estimated p-value is less than alpha.
- Specified by:
anovaTestin interfaceOneWayAnova- Parameters:
categoryData-Collectionofdouble[]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
-
-