/** * @see org.apache.commons.math3.stat.inference.OneWayAnova#anovaFValue(Collection) * * @since 1.2 */ public static double oneWayAnovaFValue(final Collection<double[]> categoryData) throws NullArgumentException, DimensionMismatchException { return ONE_WAY_ANANOVA.anovaFValue(categoryData); }
/** * @see org.apache.commons.math3.stat.inference.OneWayAnova#anovaPValue(Collection) * * @since 1.2 */ public static double oneWayAnovaPValue(final Collection<double[]> categoryData) throws NullArgumentException, DimensionMismatchException, ConvergenceException, MaxCountExceededException { return ONE_WAY_ANANOVA.anovaPValue(categoryData); }
throws NullArgumentException, DimensionMismatchException { AnovaStats a = anovaStats(categoryData); return a.F;
@Override public Object doWork(Object... values) throws IOException { // at this point we know every incoming value is an array of BigDecimals List<double[]> anovaInput = Arrays.stream(values) // for each List, convert to double[] .map(value -> ((List<Number>)value).stream().mapToDouble(Number::doubleValue).toArray()) // turn into List<double[]> .collect(Collectors.toList()); OneWayAnova anova = new OneWayAnova(); double p = anova.anovaPValue(anovaInput); double f = anova.anovaFValue(anovaInput); Map<String,Number> m = new HashMap<>(); m.put("p-value", p); m.put("f-ratio", f); return new Tuple(m); }
/** * @see org.apache.commons.math3.stat.inference.OneWayAnova#anovaTest(Collection,double) * * @since 1.2 */ public static boolean oneWayAnovaTest(final Collection<double[]> categoryData, final double alpha) throws NullArgumentException, DimensionMismatchException, OutOfRangeException, ConvergenceException, MaxCountExceededException { return ONE_WAY_ANANOVA.anovaTest(categoryData, alpha); }
anovaImpl = new OneWayAnova(); p = anovaImpl.anovaPValue(categoryData); testStat = anovaImpl.anovaFValue(categoryData);
/** * @see org.apache.commons.math3.stat.inference.OneWayAnova#anovaTest(Collection,double) * * @since 1.2 */ public static boolean oneWayAnovaTest(final Collection<double[]> categoryData, final double alpha) throws NullArgumentException, DimensionMismatchException, OutOfRangeException, ConvergenceException, MaxCountExceededException { return ONE_WAY_ANANOVA.anovaTest(categoryData, alpha); }
/** * This method calls the method that actually does the calculations (except * P-value). * * @param categoryData * <code>Collection</code> of <code>double[]</code> arrays each * containing data for one category * @return computed AnovaStats * @throws NullArgumentException * if <code>categoryData</code> is <code>null</code> * @throws DimensionMismatchException * if the length of the <code>categoryData</code> array is less * than 2 or a contained <code>double[]</code> array does not * contain at least two values */ private AnovaStats anovaStats(final Collection<double[]> categoryData) throws NullArgumentException, DimensionMismatchException { MathUtils.checkNotNull(categoryData); final Collection<SummaryStatistics> categoryDataSummaryStatistics = new ArrayList<SummaryStatistics>(categoryData.size()); // convert arrays to SummaryStatistics for (final double[] data : categoryData) { final SummaryStatistics dataSummaryStatistics = new SummaryStatistics(); categoryDataSummaryStatistics.add(dataSummaryStatistics); for (final double val : data) { dataSummaryStatistics.addValue(val); } } return anovaStats(categoryDataSummaryStatistics, false); }
alpha, 0, 0.5); return anovaPValue(categoryData) < alpha;
/** * @see org.apache.commons.math3.stat.inference.OneWayAnova#anovaFValue(Collection) * * @since 1.2 */ public static double oneWayAnovaFValue(final Collection<double[]> categoryData) throws NullArgumentException, DimensionMismatchException { return ONE_WAY_ANANOVA.anovaFValue(categoryData); }
ConvergenceException, MaxCountExceededException { final AnovaStats a = anovaStats(categoryData);
/** * @see org.apache.commons.math3.stat.inference.OneWayAnova#anovaPValue(Collection) * * @since 1.2 */ public static double oneWayAnovaPValue(final Collection<double[]> categoryData) throws NullArgumentException, DimensionMismatchException, ConvergenceException, MaxCountExceededException { return ONE_WAY_ANANOVA.anovaPValue(categoryData); }
ConvergenceException, MaxCountExceededException { final AnovaStats a = anovaStats(categoryData, allowOneElementData);
alpha, 0, 0.5); return anovaPValue(categoryData) < alpha;
throws NullArgumentException, DimensionMismatchException { AnovaStats a = anovaStats(categoryData); return a.F;
alpha, 0, 0.5); return anovaPValue(categoryData) < alpha;
throws NullArgumentException, DimensionMismatchException { AnovaStats a = anovaStats(categoryData); return a.F;
/** * This method calls the method that actually does the calculations (except * P-value). * * @param categoryData * <code>Collection</code> of <code>double[]</code> arrays each * containing data for one category * @return computed AnovaStats * @throws NullArgumentException * if <code>categoryData</code> is <code>null</code> * @throws DimensionMismatchException * if the length of the <code>categoryData</code> array is less * than 2 or a contained <code>double[]</code> array does not * contain at least two values */ private AnovaStats anovaStats(final Collection<double[]> categoryData) throws NullArgumentException, DimensionMismatchException { MathUtils.checkNotNull(categoryData); final Collection<SummaryStatistics> categoryDataSummaryStatistics = new ArrayList<SummaryStatistics>(categoryData.size()); // convert arrays to SummaryStatistics for (final double[] data : categoryData) { final SummaryStatistics dataSummaryStatistics = new SummaryStatistics(); categoryDataSummaryStatistics.add(dataSummaryStatistics); for (final double val : data) { dataSummaryStatistics.addValue(val); } } return anovaStats(categoryDataSummaryStatistics, false); }
/** * This method calls the method that actually does the calculations (except * P-value). * * @param categoryData * <code>Collection</code> of <code>double[]</code> arrays each * containing data for one category * @return computed AnovaStats * @throws NullArgumentException * if <code>categoryData</code> is <code>null</code> * @throws DimensionMismatchException * if the length of the <code>categoryData</code> array is less * than 2 or a contained <code>double[]</code> array does not * contain at least two values */ private AnovaStats anovaStats(final Collection<double[]> categoryData) throws NullArgumentException, DimensionMismatchException { MathUtils.checkNotNull(categoryData); final Collection<SummaryStatistics> categoryDataSummaryStatistics = new ArrayList<SummaryStatistics>(categoryData.size()); // convert arrays to SummaryStatistics for (final double[] data : categoryData) { final SummaryStatistics dataSummaryStatistics = new SummaryStatistics(); categoryDataSummaryStatistics.add(dataSummaryStatistics); for (final double val : data) { dataSummaryStatistics.addValue(val); } } return anovaStats(categoryDataSummaryStatistics, false); }
ConvergenceException, MaxCountExceededException { final AnovaStats a = anovaStats(categoryData, allowOneElementData);