Interface ChiSquareTest

    • Method Detail

      • chiSquare

        double chiSquare​(double[] expected,
                         long[] observed)
                  throws java.lang.IllegalArgumentException
        Computes the Chi-Square statistic comparing observed and expected frequency counts.

        This statistic can be used to perform a Chi-Square test evaluating the null hypothesis that the observed counts follow the expected distribution.

        Preconditions:

        • Expected counts must all be positive.
        • Observed counts must all be >= 0.
        • The observed and expected arrays must have the same length and their common length must be at least 2.

        If any of the preconditions are not met, an IllegalArgumentException is thrown.

        Parameters:
        observed - array of observed frequency counts
        expected - array of expected frequency counts
        Returns:
        chiSquare statistic
        Throws:
        java.lang.IllegalArgumentException - if preconditions are not met
      • chiSquareTest

        double chiSquareTest​(double[] expected,
                             long[] observed)
                      throws java.lang.IllegalArgumentException,
                             MathException
        Returns the observed significance level, or p-value, associated with a Chi-square goodness of fit test comparing the observed frequency counts to those in the expected array.

        The number returned is the smallest significance level at which one can reject the null hypothesis that the observed counts conform to the frequency distribution described by the expected counts.

        Preconditions:

        • Expected counts must all be positive.
        • Observed counts must all be >= 0.
        • The observed and expected arrays must have the same length and their common length must be at least 2.

        If any of the preconditions are not met, an IllegalArgumentException is thrown.

        Parameters:
        observed - array of observed frequency counts
        expected - array of expected frequency counts
        Returns:
        p-value
        Throws:
        java.lang.IllegalArgumentException - if preconditions are not met
        MathException - if an error occurs computing the p-value
      • chiSquareTest

        boolean chiSquareTest​(double[] expected,
                              long[] observed,
                              double alpha)
                       throws java.lang.IllegalArgumentException,
                              MathException
        Performs a Chi-square goodness of fit test evaluating the null hypothesis that the observed counts conform to the frequency distribution described by the expected counts, with significance level alpha. Returns true iff the null hypothesis can be rejected with 100 * (1 - alpha) percent confidence.

        Example:
        To test the hypothesis that observed follows expected at the 99% level, use

        chiSquareTest(expected, observed, 0.01)

        Preconditions:

        • Expected counts must all be positive.
        • Observed counts must all be >= 0.
        • The observed and expected arrays must have the same length and their common length must be at least 2.
        • 0 < alpha < 0.5

        If any of the preconditions are not met, an IllegalArgumentException is thrown.

        Parameters:
        observed - array of observed frequency counts
        expected - array of expected frequency counts
        alpha - significance level of the test
        Returns:
        true iff null hypothesis can be rejected with confidence 1 - alpha
        Throws:
        java.lang.IllegalArgumentException - if preconditions are not met
        MathException - if an error occurs performing the test
      • chiSquare

        double chiSquare​(long[][] counts)
                  throws java.lang.IllegalArgumentException
        Computes the Chi-Square statistic associated with a chi-square test of independence based on the input counts array, viewed as a two-way table.

        The rows of the 2-way table are count[0], ... , count[count.length - 1]

        Preconditions:

        • All counts must be >= 0.
        • The count array must be rectangular (i.e. all count[i] subarrays must have the same length).
        • The 2-way table represented by counts must have at least 2 columns and at least 2 rows.

        If any of the preconditions are not met, an IllegalArgumentException is thrown.

        Parameters:
        counts - array representation of 2-way table
        Returns:
        chiSquare statistic
        Throws:
        java.lang.IllegalArgumentException - if preconditions are not met
      • chiSquareTest

        double chiSquareTest​(long[][] counts)
                      throws java.lang.IllegalArgumentException,
                             MathException
        Returns the observed significance level, or p-value, associated with a chi-square test of independence based on the input counts array, viewed as a two-way table.

        The rows of the 2-way table are count[0], ... , count[count.length - 1]

        Preconditions:

        • All counts must be >= 0.
        • The count array must be rectangular (i.e. all count[i] subarrays must have the same length).
        • The 2-way table represented by counts must have at least 2 columns and at least 2 rows.

        If any of the preconditions are not met, an IllegalArgumentException is thrown.

        Parameters:
        counts - array representation of 2-way table
        Returns:
        p-value
        Throws:
        java.lang.IllegalArgumentException - if preconditions are not met
        MathException - if an error occurs computing the p-value
      • chiSquareTest

        boolean chiSquareTest​(long[][] counts,
                              double alpha)
                       throws java.lang.IllegalArgumentException,
                              MathException
        Performs a chi-square test of independence evaluating the null hypothesis that the classifications represented by the counts in the columns of the input 2-way table are independent of the rows, with significance level alpha. Returns true iff the null hypothesis can be rejected with 100 * (1 - alpha) percent confidence.

        The rows of the 2-way table are count[0], ... , count[count.length - 1]

        Example:
        To test the null hypothesis that the counts in count[0], ... , count[count.length - 1] all correspond to the same underlying probability distribution at the 99% level, use

        chiSquareTest(counts, 0.01)

        Preconditions:

        • All counts must be >= 0.
        • The count array must be rectangular (i.e. all count[i] subarrays must have the same length).
        • The 2-way table represented by counts must have at least 2 columns and at least 2 rows.

        If any of the preconditions are not met, an IllegalArgumentException is thrown.

        Parameters:
        counts - array representation of 2-way table
        alpha - significance level of the test
        Returns:
        true iff null hypothesis can be rejected with confidence 1 - alpha
        Throws:
        java.lang.IllegalArgumentException - if preconditions are not met
        MathException - if an error occurs performing the test