Class BinomialTest

java.lang.Object
org.hipparchus.stat.inference.BinomialTest

public class BinomialTest extends Object
Implements binomial test statistics.

Exact test for the statistical significance of deviations from a theoretically expected distribution of observations into two categories.

See Also:
  • Constructor Details

    • BinomialTest

      public BinomialTest()
      Empty constructor.

      This constructor is not strictly necessary, but it prevents spurious javadoc warnings with JDK 18 and later.

      Since:
      3.0
  • Method Details

    • binomialTest

      public boolean binomialTest(int numberOfTrials, int numberOfSuccesses, double probability, AlternativeHypothesis alternativeHypothesis, double alpha)
      Returns whether the null hypothesis can be rejected with the given confidence level.

      Preconditions:

      • Number of trials must be ≥ 0.
      • Number of successes must be ≥ 0.
      • Number of successes must be ≤ number of trials.
      • Probability must be ≥ 0 and ≤ 1.
      Parameters:
      numberOfTrials - number of trials performed
      numberOfSuccesses - number of successes observed
      probability - assumed probability of a single trial under the null hypothesis
      alternativeHypothesis - type of hypothesis being evaluated (one- or two-sided)
      alpha - significance level of the test
      Returns:
      true if the null hypothesis can be rejected with confidence 1 - alpha
      Throws:
      MathIllegalArgumentException - if numberOfTrials or numberOfSuccesses is negative
      MathIllegalArgumentException - if probability is not between 0 and 1
      MathIllegalArgumentException - if numberOfTrials < numberOfSuccesses or if alternateHypothesis is null.
      See Also:
    • binomialTest

      public double binomialTest(int numberOfTrials, int numberOfSuccesses, double probability, AlternativeHypothesis alternativeHypothesis)
      Returns the observed significance level, or p-value, associated with a Binomial test.

      The number returned is the smallest significance level at which one can reject the null hypothesis. The form of the hypothesis depends on alternativeHypothesis.

      The p-Value represents the likelihood of getting a result at least as extreme as the sample, given the provided probability of success on a single trial. For single-sided tests, this value can be directly derived from the Binomial distribution. For the two-sided test, the implementation works as follows: we start by looking at the most extreme cases (0 success and n success where n is the number of trials from the sample) and determine their likelihood. The lower value is added to the p-Value (if both values are equal, both are added). Then we continue with the next extreme value, until we added the value for the actual observed sample.

      * Preconditions:

      • Number of trials must be ≥ 0.
      • Number of successes must be ≥ 0.
      • Number of successes must be ≤ number of trials.
      • Probability must be ≥ 0 and ≤ 1.
      Parameters:
      numberOfTrials - number of trials performed
      numberOfSuccesses - number of successes observed
      probability - assumed probability of a single trial under the null hypothesis
      alternativeHypothesis - type of hypothesis being evaluated (one- or two-sided)
      Returns:
      p-value
      Throws:
      MathIllegalArgumentException - if numberOfTrials or numberOfSuccesses is negative
      MathIllegalArgumentException - if probability is not between 0 and 1
      MathIllegalArgumentException - if numberOfTrials < numberOfSuccesses or if alternateHypothesis is null.
      See Also: