Class HypergeometricDistributionImpl
- java.lang.Object
-
- org.apache.commons.math.distribution.AbstractDistribution
-
- org.apache.commons.math.distribution.AbstractIntegerDistribution
-
- org.apache.commons.math.distribution.HypergeometricDistributionImpl
-
- All Implemented Interfaces:
java.io.Serializable
,DiscreteDistribution
,Distribution
,HypergeometricDistribution
,IntegerDistribution
public class HypergeometricDistributionImpl extends AbstractIntegerDistribution implements HypergeometricDistribution, java.io.Serializable
The default implementation ofHypergeometricDistribution
.- Version:
- $Revision: 1054524 $ $Date: 2011-01-03 05:59:18 +0100 (lun. 03 janv. 2011) $
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class org.apache.commons.math.distribution.AbstractIntegerDistribution
randomData
-
-
Constructor Summary
Constructors Constructor Description HypergeometricDistributionImpl(int populationSize, int numberOfSuccesses, int sampleSize)
Construct a new hypergeometric distribution with the given the population size, the number of successes in the population, and the sample size.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description double
cumulativeProbability(int x)
For this distribution, X, this method returns P(X ≤ x).protected int
getDomainLowerBound(double p)
Access the domain value lower bound, based onp
, used to bracket a PDF root.protected int
getDomainUpperBound(double p)
Access the domain value upper bound, based onp
, used to bracket a PDF root.int
getNumberOfSuccesses()
Access the number of successes.protected double
getNumericalMean()
Returns the mean.double
getNumericalVariance()
Returns the variance.int
getPopulationSize()
Access the population size.int
getSampleSize()
Access the sample size.int
getSupportLowerBound()
Returns the lower bound for the support for the distribution.int
getSupportUpperBound()
Returns the upper bound for the support of the distribution.double
probability(int x)
For this distribution, X, this method returns P(X = x).void
setNumberOfSuccesses(int num)
Deprecated.as of 2.1 (class will become immutable in 3.0)void
setPopulationSize(int size)
Deprecated.as of 2.1 (class will become immutable in 3.0)void
setSampleSize(int size)
Deprecated.as of 2.1 (class will become immutable in 3.0)double
upperCumulativeProbability(int x)
For this distribution, X, this method returns P(X ≥ x).-
Methods inherited from class org.apache.commons.math.distribution.AbstractIntegerDistribution
cumulativeProbability, cumulativeProbability, cumulativeProbability, inverseCumulativeProbability, isSupportLowerBoundInclusive, isSupportUpperBoundInclusive, probability, reseedRandomGenerator, sample, sample
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.commons.math.distribution.DiscreteDistribution
probability
-
Methods inherited from interface org.apache.commons.math.distribution.Distribution
cumulativeProbability, cumulativeProbability
-
Methods inherited from interface org.apache.commons.math.distribution.IntegerDistribution
cumulativeProbability, inverseCumulativeProbability
-
-
-
-
Constructor Detail
-
HypergeometricDistributionImpl
public HypergeometricDistributionImpl(int populationSize, int numberOfSuccesses, int sampleSize)
Construct a new hypergeometric distribution with the given the population size, the number of successes in the population, and the sample size.- Parameters:
populationSize
- the population size.numberOfSuccesses
- number of successes in the population.sampleSize
- the sample size.
-
-
Method Detail
-
cumulativeProbability
public double cumulativeProbability(int x)
For this distribution, X, this method returns P(X ≤ x).- Specified by:
cumulativeProbability
in interfaceIntegerDistribution
- Specified by:
cumulativeProbability
in classAbstractIntegerDistribution
- Parameters:
x
- the value at which the PDF is evaluated.- Returns:
- PDF for this distribution.
-
getDomainLowerBound
protected int getDomainLowerBound(double p)
Access the domain value lower bound, based onp
, used to bracket a PDF root.- Specified by:
getDomainLowerBound
in classAbstractIntegerDistribution
- Parameters:
p
- the desired probability for the critical value- Returns:
- domain value lower bound, i.e. P(X < lower bound) <
p
-
getDomainUpperBound
protected int getDomainUpperBound(double p)
Access the domain value upper bound, based onp
, used to bracket a PDF root.- Specified by:
getDomainUpperBound
in classAbstractIntegerDistribution
- Parameters:
p
- the desired probability for the critical value- Returns:
- domain value upper bound, i.e. P(X < upper bound) >
p
-
getNumberOfSuccesses
public int getNumberOfSuccesses()
Access the number of successes.- Specified by:
getNumberOfSuccesses
in interfaceHypergeometricDistribution
- Returns:
- the number of successes.
-
getPopulationSize
public int getPopulationSize()
Access the population size.- Specified by:
getPopulationSize
in interfaceHypergeometricDistribution
- Returns:
- the population size.
-
getSampleSize
public int getSampleSize()
Access the sample size.- Specified by:
getSampleSize
in interfaceHypergeometricDistribution
- Returns:
- the sample size.
-
probability
public double probability(int x)
For this distribution, X, this method returns P(X = x).- Specified by:
probability
in interfaceIntegerDistribution
- Parameters:
x
- the value at which the PMF is evaluated.- Returns:
- PMF for this distribution.
-
setNumberOfSuccesses
@Deprecated public void setNumberOfSuccesses(int num)
Deprecated.as of 2.1 (class will become immutable in 3.0)Modify the number of successes.- Specified by:
setNumberOfSuccesses
in interfaceHypergeometricDistribution
- Parameters:
num
- the new number of successes.- Throws:
java.lang.IllegalArgumentException
- ifnum
is negative.
-
setPopulationSize
@Deprecated public void setPopulationSize(int size)
Deprecated.as of 2.1 (class will become immutable in 3.0)Modify the population size.- Specified by:
setPopulationSize
in interfaceHypergeometricDistribution
- Parameters:
size
- the new population size.- Throws:
java.lang.IllegalArgumentException
- ifsize
is not positive.
-
setSampleSize
@Deprecated public void setSampleSize(int size)
Deprecated.as of 2.1 (class will become immutable in 3.0)Modify the sample size.- Specified by:
setSampleSize
in interfaceHypergeometricDistribution
- Parameters:
size
- the new sample size.- Throws:
java.lang.IllegalArgumentException
- ifsize
is negative.
-
upperCumulativeProbability
public double upperCumulativeProbability(int x)
For this distribution, X, this method returns P(X ≥ x).- Parameters:
x
- the value at which the CDF is evaluated.- Returns:
- upper tail CDF for this distribution.
- Since:
- 1.1
-
getSupportLowerBound
public int getSupportLowerBound()
Returns the lower bound for the support for the distribution. For population sizeN
, number of successesm
, and sample sizen
, the lower bound of the support ismax(0, n + m - N)
- Returns:
- lower bound of the support
- Since:
- 2.2
-
getSupportUpperBound
public int getSupportUpperBound()
Returns the upper bound for the support of the distribution. For number of successesm
and sample sizen
, the upper bound of the support ismin(m, n)
- Returns:
- upper bound of the support
- Since:
- 2.2
-
getNumericalMean
protected double getNumericalMean()
Returns the mean. For population sizeN
, number of successesm
, and sample sizen
, the mean isn * m / N
- Returns:
- the mean
- Since:
- 2.2
-
getNumericalVariance
public double getNumericalVariance()
Returns the variance. For population sizeN
, number of successesm
, and sample sizen
, the variance is[ n * m * (N - n) * (N - m) ] / [ N^2 * (N - 1) ]
- Returns:
- the variance
- Since:
- 2.2
-
-