MathPHP\Probability\Distribution\Discrete\Multinomial::PMF PHP 메소드

PMF() 공개 정적인 메소드

https://en.wikipedia.org/wiki/Multinomial_distribution n! pmf = ------- p₁ˣ¹⋯pkˣᵏ x₁!⋯xk! n = number of trials (sum of the frequencies) = x₁ + x₂ + ⋯ xk
public static PMF ( array $frequencies, array $probabilities ) : float
$frequencies array
$probabilities array
리턴 float
    public static function PMF(array $frequencies, array $probabilities) : float
    {
        // Must have a probability for each frequency
        if (count($frequencies) !== count($probabilities)) {
            throw new Exception\BadDataException('Number of frequencies does not match number of probabilities.');
        }
        // Probabilities must add up to 1
        if (round(array_sum($probabilities), 1) != 1) {
            throw new Exception\BadDataException('Probabilities do not add up to 1.');
        }
        $n = array_sum($frequencies);
        $n! = Combinatorics::factorial($n);
        $x₁!⋯xk! = array_product(array_map('MathPHP\\Probability\\Combinatorics::factorial', $frequencies));
        $p₁ˣ¹⋯pkˣᵏ = array_product(array_map(function ($x, $p) {
            return $p ** $x;
        }, $frequencies, $probabilities));
        return $n! / $x₁!⋯xk! * $p₁ˣ¹⋯pkˣᵏ;
    }
Multinomial