PHP - Stats Dens PMF Hypergeometric() Function
Definition and Usage
The stats_dens_pmf_hypergeometric() function is a probability mass function of the hypergeometric distribution.
Syntax
float stats_dens_pmf_hypergeometric( float $n1, float $n2, float $N1, float $N2 )
Parameters
| Sr.No | Parameter | Description |
|---|---|---|
| 1 | n1 |
The number of success, at which the probability mass is calculatedv |
| 2 | n2 |
The number of failure of the distribution |
| 3 | N1 |
The number of success samples of the distribution |
| 4 | N2 |
The number of failure samples of the distribution |
Return Values
The stats_dens_pmf_hypergeometric() function can return the probability mass at n1 where the random variable can follow the hypergeometric distribution in which the number of failures is n2, the number of success samples is N1, and the number of failure samples is N2. This function can return false on failure.
Dependencies
This function was first introduced in statistics extension (PHP 4.0.0 and PEAR 1.4.0). We have used latest release of stats-2.0.3 (PHP 7.0.0 or newer and PEAR 1.4.0 or newer) for this tutorial.
Example
In the following example, we compute probability mass at each n1.
<?php
// check for each n1
foreach (range(0, 3) as $n1) {
var_dump(stats_dens_pmf_hypergeometric($n1, 1, 2, 3));
echo "<br>";
}
?>
Output
This will produce following result −
float(0.6) float(0.6) float(0.3) float(0)
Example
In the following example, we compute probability mass for each n2.
<?php
// check for each n2
foreach (range(0, 3) as $n2) {
var_dump(stats_dens_pmf_hypergeometric(1, $n2, 2, 3));
echo "<br>";
}
?>
Output
This will produce following result −
float(0.4) float(0.6) float(0.6) float(0.4)
Example
In the following example, we compute probability mass for each N1.
<?php
// check for each N1
foreach (range(0, 3) as $N1) {
var_dump(stats_dens_pmf_hypergeometric(1, 1, $N1, 3));
echo "<br>";
}
?>
Output
This will produce following result −
float(0) float(0.5) float(0.6) float(0.6)
Example
In the following example, we compute probability mass for each N2.
<?php
// check for each N2
foreach (range(1, 3) as $N2) {
var_dump(round(stats_dens_pmf_hypergeometric(1, 1, 2, $N2), 6));
echo "<br>";
}
?>
Output
This will produce following result −
float(0.666667) float(0.666667) float(0.6)
Example
Following is an error case. In the following example, we pass n1 + n2 > N1 + N2. A warning is displayed in logs.
<?php // error cases var_dump(stats_dens_pmf_hypergeometric(1, 3, 1, 2)); // n1 + n2 > N1 + N2 ?>
Output
This will produce following result and a warning in logs PHP Warning: stats_dens_pmf_hypergeometric(): possible division by zero - n1+n2 >= N1+N2
float(NAN)