alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Commons Math example source code file (ChiSquareTest.java)

This example Commons Math source code file (ChiSquareTest.java) is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - Commons Math tags/keywords

chisquaretest, chisquaretest, illegalargumentexception, illegalargumentexception, mathexception, mathexception

The Commons Math ChiSquareTest.java source code

/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.commons.math.stat.inference;

import org.apache.commons.math.MathException;

/**
 * An interface for Chi-Square tests.
 * <p>This interface handles only known distributions. If the distribution is
 * unknown and should be provided by a sample, then the {@link UnknownDistributionChiSquareTest
 * UnknownDistributionChiSquareTest} extended interface should be used instead.</p>
 * @version $Revision: 811685 $ $Date: 2009-09-05 13:36:48 -0400 (Sat, 05 Sep 2009) $
 */
public interface ChiSquareTest {

     /**
     * Computes the <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda35f.htm">
     * Chi-Square statistic</a> comparing observed and expected
     * frequency counts.
     * <p>
     * This statistic can be used to perform a Chi-Square test evaluating the null hypothesis that
     *  the observed counts follow the expected distribution.</p>
     * <p>
     * <strong>Preconditions: 
    * <li>Expected counts must all be positive. * </li> * <li>Observed counts must all be >= 0. * </li> * <li>The observed and expected arrays must have the same length and * their common length must be at least 2. * </li>

* If any of the preconditions are not met, an * <code>IllegalArgumentException is thrown.

* * @param observed array of observed frequency counts * @param expected array of expected frequency counts * @return chiSquare statistic * @throws IllegalArgumentException if preconditions are not met */ double chiSquare(double[] expected, long[] observed) throws IllegalArgumentException; /** * Returns the <i>observed significance level, or observed * frequency counts to those in the <code>expected array. * <p> * 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.</p> * <p> * <strong>Preconditions:
    * <li>Expected counts must all be positive. * </li> * <li>Observed counts must all be >= 0. * </li> * <li>The observed and expected arrays must have the same length and * their common length must be at least 2. * </li>

* If any of the preconditions are not met, an * <code>IllegalArgumentException is thrown.

* * @param observed array of observed frequency counts * @param expected array of expected frequency counts * @return p-value * @throws IllegalArgumentException if preconditions are not met * @throws MathException if an error occurs computing the p-value */ double chiSquareTest(double[] expected, long[] observed) throws IllegalArgumentException, MathException; /** * Performs a <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda35f.htm"> * Chi-square goodness of fit test</a> evaluating the null hypothesis that the observed counts * conform to the frequency distribution described by the expected counts, with * significance level <code>alpha. Returns true iff the null hypothesis can be rejected * with 100 * (1 - alpha) percent confidence. * <p> * <strong>Example:
* To test the hypothesis that <code>observed follows * <code>expected at the 99% level, use

* <code>chiSquareTest(expected, observed, 0.01)

* <p> * <strong>Preconditions:
    * <li>Expected counts must all be positive. * </li> * <li>Observed counts must all be >= 0. * </li> * <li>The observed and expected arrays must have the same length and * their common length must be at least 2. * <li> 0 < alpha < 0.5 * </li>

* If any of the preconditions are not met, an * <code>IllegalArgumentException is thrown.

* * @param observed array of observed frequency counts * @param expected array of expected frequency counts * @param alpha significance level of the test * @return true iff null hypothesis can be rejected with confidence * 1 - alpha * @throws IllegalArgumentException if preconditions are not met * @throws MathException if an error occurs performing the test */ boolean chiSquareTest(double[] expected, long[] observed, double alpha) throws IllegalArgumentException, MathException; /** * Computes the Chi-Square statistic associated with a * <a href="http://www.itl.nist.gov/div898/handbook/prc/section4/prc45.htm"> * chi-square test of independence</a> based on the input counts * array, viewed as a two-way table. * <p> * The rows of the 2-way table are * <code>count[0], ... , count[count.length - 1]

* <p> * <strong>Preconditions:
    * <li>All counts must be >= 0. * </li> * <li>The count array must be rectangular (i.e. all count[i] subarrays * must have the same length). * </li> * <li>The 2-way table represented by counts must have at * least 2 columns and at least 2 rows. * </li> * </li>

* If any of the preconditions are not met, an * <code>IllegalArgumentException is thrown.

* * @param counts array representation of 2-way table * @return chiSquare statistic * @throws IllegalArgumentException if preconditions are not met */ double chiSquare(long[][] counts) throws IllegalArgumentException; /** * Returns the <i>observed significance level, or
counts * array, viewed as a two-way table. * <p> * The rows of the 2-way table are * <code>count[0], ... , count[count.length - 1]

* <p> * <strong>Preconditions:
    * <li>All counts must be >= 0. * </li> * <li>The count array must be rectangular (i.e. all count[i] subarrays must have the same length). * </li> * <li>The 2-way table represented by counts must have at least 2 columns and * at least 2 rows. * </li> * </li>

* If any of the preconditions are not met, an * <code>IllegalArgumentException is thrown.

* * @param counts array representation of 2-way table * @return p-value * @throws IllegalArgumentException if preconditions are not met * @throws MathException if an error occurs computing the p-value */ double chiSquareTest(long[][] counts) throws IllegalArgumentException, MathException; /** * Performs a <a href="http://www.itl.nist.gov/div898/handbook/prc/section4/prc45.htm"> * chi-square test of independence</a> 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 <code>alpha. Returns true iff the null hypothesis can be rejected * with 100 * (1 - alpha) percent confidence. * <p> * The rows of the 2-way table are * <code>count[0], ... , count[count.length - 1]

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

* <code>chiSquareTest(counts, 0.01)

* <p> * <strong>Preconditions:
    * <li>All counts must be >= 0. * </li> * <li>The count array must be rectangular (i.e. all count[i] subarrays must have the same length). * </li> * <li>The 2-way table represented by counts must have at least 2 columns and * at least 2 rows. * </li> * </li>

* If any of the preconditions are not met, an * <code>IllegalArgumentException is thrown.

* * @param counts array representation of 2-way table * @param alpha significance level of the test * @return true iff null hypothesis can be rejected with confidence * 1 - alpha * @throws IllegalArgumentException if preconditions are not met * @throws MathException if an error occurs performing the test */ boolean chiSquareTest(long[][] counts, double alpha) throws IllegalArgumentException, MathException; }
... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.