|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.commons.math3.distribution.AbstractIntegerDistribution
org.apache.commons.math3.distribution.HypergeometricDistribution
public class HypergeometricDistribution
Implementation of the hypergeometric distribution.
Field Summary | |
---|---|
private int |
numberOfSuccesses
The number of successes in the population. |
private double |
numericalVariance
Cached numerical variance |
private boolean |
numericalVarianceIsCalculated
Whether or not the numerical variance has been calculated |
private int |
populationSize
The population size. |
private int |
sampleSize
The sample size. |
private static long |
serialVersionUID
Serializable version identifier. |
Fields inherited from class org.apache.commons.math3.distribution.AbstractIntegerDistribution |
---|
random, randomData |
Constructor Summary | |
---|---|
HypergeometricDistribution(int populationSize,
int numberOfSuccesses,
int sampleSize)
Construct a new hypergeometric distribution with the specified population size, number of successes in the population, and sample size. |
|
HypergeometricDistribution(RandomGenerator rng,
int populationSize,
int numberOfSuccesses,
int sampleSize)
Creates a new hypergeometric distribution. |
Method Summary | |
---|---|
protected double |
calculateNumericalVariance()
Used by getNumericalVariance() . |
double |
cumulativeProbability(int x)
For a random variable X whose values are distributed according
to this distribution, this method returns P(X <= x) . |
private int[] |
getDomain(int n,
int m,
int k)
Return the domain for the given hypergeometric distribution parameters. |
private int |
getLowerDomain(int n,
int m,
int k)
Return the lowest domain value for the given hypergeometric distribution parameters. |
int |
getNumberOfSuccesses()
Access the number of successes. |
double |
getNumericalMean()
Use this method to get the numerical value of the mean of this distribution. |
double |
getNumericalVariance()
Use this method to get the numerical value of the variance of this distribution. |
int |
getPopulationSize()
Access the population size. |
int |
getSampleSize()
Access the sample size. |
int |
getSupportLowerBound()
Access the lower bound of the support. |
int |
getSupportUpperBound()
Access the upper bound of the support. |
private int |
getUpperDomain(int m,
int k)
Return the highest domain value for the given hypergeometric distribution parameters. |
private double |
innerCumulativeProbability(int x0,
int x1,
int dx)
For this distribution, X , this method returns
P(x0 <= X <= x1) . |
boolean |
isSupportConnected()
Use this method to get information about whether the support is connected, i.e. |
double |
probability(int x)
For a random variable X whose values are distributed according
to this distribution, this method returns P(X = x) . |
double |
upperCumulativeProbability(int x)
For this distribution, X , this method returns P(X >= x) . |
Methods inherited from class org.apache.commons.math3.distribution.AbstractIntegerDistribution |
---|
cumulativeProbability, inverseCumulativeProbability, reseedRandomGenerator, sample, sample, solveInverseCumulativeProbability |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final long serialVersionUID
private final int numberOfSuccesses
private final int populationSize
private final int sampleSize
private double numericalVariance
private boolean numericalVarianceIsCalculated
Constructor Detail |
---|
public HypergeometricDistribution(int populationSize, int numberOfSuccesses, int sampleSize) throws NotPositiveException, NotStrictlyPositiveException, NumberIsTooLargeException
populationSize
- Population size.numberOfSuccesses
- Number of successes in the population.sampleSize
- Sample size.
NotPositiveException
- if numberOfSuccesses < 0
.
NotStrictlyPositiveException
- if populationSize <= 0
.
NumberIsTooLargeException
- if numberOfSuccesses > populationSize
,
or sampleSize > populationSize
.public HypergeometricDistribution(RandomGenerator rng, int populationSize, int numberOfSuccesses, int sampleSize) throws NotPositiveException, NotStrictlyPositiveException, NumberIsTooLargeException
rng
- Random number generator.populationSize
- Population size.numberOfSuccesses
- Number of successes in the population.sampleSize
- Sample size.
NotPositiveException
- if numberOfSuccesses < 0
.
NotStrictlyPositiveException
- if populationSize <= 0
.
NumberIsTooLargeException
- if numberOfSuccesses > populationSize
,
or sampleSize > populationSize
.Method Detail |
---|
public double cumulativeProbability(int x)
X
whose values are distributed according
to this distribution, this method returns P(X <= x)
. In other
words, this method represents the (cumulative) distribution function
(CDF) for this distribution.
x
- the point at which the CDF is evaluated
x
private int[] getDomain(int n, int m, int k)
n
- Population size.m
- Number of successes in the population.k
- Sample size.
private int getLowerDomain(int n, int m, int k)
n
- Population size.m
- Number of successes in the population.k
- Sample size.
public int getNumberOfSuccesses()
public int getPopulationSize()
public int getSampleSize()
private int getUpperDomain(int m, int k)
m
- Number of successes in the population.k
- Sample size.
public double probability(int x)
X
whose values are distributed according
to this distribution, this method returns P(X = x)
. In other
words, this method represents the probability mass function (PMF)
for the distribution.
x
- the point at which the PMF is evaluated
x
public double upperCumulativeProbability(int x)
X
, this method returns P(X >= x)
.
x
- Value at which the CDF is evaluated.
private double innerCumulativeProbability(int x0, int x1, int dx)
X
, this method returns
P(x0 <= X <= x1)
.
This probability is computed by summing the point probabilities for the
values x0, x0 + 1, x0 + 2, ..., x1
, in the order directed by
dx
.
x0
- Inclusive lower bound.x1
- Inclusive upper bound.dx
- Direction of summation (1 indicates summing from x0 to x1, and
0 indicates summing from x1 to x0).
P(x0 <= X <= x1)
.public double getNumericalMean()
N
, number of successes m
, and sample
size n
, the mean is n * m / N
.
Double.NaN
if it is not definedpublic double getNumericalVariance()
N
, number of successes m
, and sample
size n
, the variance is
[n * m * (N - n) * (N - m)] / [N^2 * (N - 1)]
.
Double.POSITIVE_INFINITY
or
Double.NaN
if it is not defined)protected double calculateNumericalVariance()
getNumericalVariance()
.
public int getSupportLowerBound()
inverseCumulativeProbability(0)
. In other words, this
method must return
inf {x in Z | P(X <= x) > 0}
.
N
, number of successes m
, and sample
size n
, the lower bound of the support is
max(0, n + m - N)
.
public int getSupportUpperBound()
inverseCumulativeProbability(1)
. In other words, this
method must return
inf {x in R | P(X <= x) = 1}
.
m
and sample size n
, the upper
bound of the support is min(m, n)
.
public boolean isSupportConnected()
true
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |