List of usage examples for org.apache.commons.math3.stat StatUtils varianceDifference
public static double varianceDifference(final double[] sample1, final double[] sample2, double meanDifference) throws DimensionMismatchException, NumberIsTooSmallException
From source file:embedded2.ESecure.TTest.java
/** * Computes a paired, 2-sample t-statistic based on the data in the input * arrays. The t-statistic returned is equivalent to what would be returned by * computing the one-sample t-statistic {@link #t(double, double[])}, with * <code>mu = 0</code> and the sample array consisting of the (signed) * differences between corresponding entries in <code>sample1</code> and * <code>sample2.</code>//ww w .ja v a 2 s .c o m * <p> * <strong>Preconditions</strong>: <ul> * <li>The input arrays must have the same length and their common length * must be at least 2. * </li></ul></p> * * @param sample1 array of sample data values * @param sample2 array of sample data values * @return t statistic * @throws NullArgumentException if the arrays are <code>null</code> * @throws NoDataException if the arrays are empty * @throws DimensionMismatchException if the length of the arrays is not equal * @throws NumberIsTooSmallException if the length of the arrays is < 2 */ public static double pairedT(final double[] sample1, final double[] sample2) throws NullArgumentException, NoDataException, DimensionMismatchException, NumberIsTooSmallException { checkSampleData(sample1); checkSampleData(sample2); double meanDifference = StatUtils.meanDifference(sample1, sample2); return t(meanDifference, 0, StatUtils.varianceDifference(sample1, sample2, meanDifference), sample1.length); }
From source file:embedded2.ESecure.TTest.java
/** * Returns the <i>observed significance level</i>, or * <i> p-value</i>, associated with a paired, two-sample, two-tailed t-test * based on the data in the input arrays. * <p>/*from w w w . j a v a 2 s .c o m*/ * The number returned is the smallest significance level * at which one can reject the null hypothesis that the mean of the paired * differences is 0 in favor of the two-sided alternative that the mean paired * difference is not equal to 0. For a one-sided test, divide the returned * value by 2.</p> * <p> * This test is equivalent to a one-sample t-test computed using * {@link #tTest(double, double[])} with <code>mu = 0</code> and the sample * array consisting of the signed differences between corresponding elements of * <code>sample1</code> and <code>sample2.</code></p> * <p> * <strong>Usage Note:</strong><br> * The validity of the p-value depends on the assumptions of the parametric * t-test procedure, as discussed * <a href="http://www.basic.nwu.edu/statguidefiles/ttest_unpaired_ass_viol.html"> * here</a></p> * <p> * <strong>Preconditions</strong>: <ul> * <li>The input array lengths must be the same and their common length must * be at least 2. * </li></ul></p> * * @param sample1 array of sample data values * @param sample2 array of sample data values * @return p-value for t-test * @throws NullArgumentException if the arrays are <code>null</code> * @throws NoDataException if the arrays are empty * @throws DimensionMismatchException if the length of the arrays is not equal * @throws NumberIsTooSmallException if the length of the arrays is < 2 * @throws MaxCountExceededException if an error occurs computing the p-value */ public static double pairedTTest(final double[] sample1, final double[] sample2) throws NullArgumentException, NoDataException, DimensionMismatchException, NumberIsTooSmallException, MaxCountExceededException { double meanDifference = StatUtils.meanDifference(sample1, sample2); return tTest(meanDifference, 0, StatUtils.varianceDifference(sample1, sample2, meanDifference), sample1.length); }