[−][src]Struct statrs::distribution::Multinomial
Implements the Multinomial distribution which is a generalization of the Binomial distribution
Examples
use statrs::distribution::Multinomial; use statrs::statistics::Mean; let n = Multinomial::new(&[0.3, 0.7], 5).unwrap(); assert_eq!(n.mean(), [1.5, 3.5]);
Methods
impl Multinomial
[src]
pub fn new(p: &[f64], n: u64) -> Result<Multinomial>
[src]
Constructs a new multinomial distribution with probabilities p
and n
number of trials.
Errors
Returns an error if p
is empty, the sum of the elements
in p
is 0, or any element in p
is less than 0 or is f64::NAN
Note
The elements in p
do not need to be normalized
Examples
use statrs::distribution::Multinomial; let mut result = Multinomial::new(&[0.0, 1.0, 2.0], 3); assert!(result.is_ok()); result = Multinomial::new(&[0.0, -1.0, 2.0], 3); assert!(result.is_err());
pub fn p(&self) -> &[f64]
[src]
Returns the probabilities of the multinomial distribution as a slice
Examples
use statrs::distribution::Multinomial; let n = Multinomial::new(&[0.0, 1.0, 2.0], 3).unwrap(); assert_eq!(n.p(), [0.0, 1.0, 2.0]);
pub fn n(&self) -> u64
[src]
Returns the number of trials of the multinomial distribution
Examples
use statrs::distribution::Multinomial; let n = Multinomial::new(&[0.0, 1.0, 2.0], 3).unwrap(); assert_eq!(n.n(), 3);
Trait Implementations
impl<'a> Discrete<&'a [u64], f64> for Multinomial
[src]
fn pmf(&self, x: &[u64]) -> f64
[src]
Calculates the probability mass function for the multinomial
distribution
with the given x
's corresponding to the probabilities for this
distribution
Panics
If the elements in x
do not sum to n
or if the length of x
is not
equivalent to the length of p
Formula
(n! / x_1!...x_k!) * p_i^x_i for i in 1...k
where n
is the number of trials, p_i
is the i
th probability,
x_i
is the i
th x
value, and k
is the total number of
probabilities
fn ln_pmf(&self, x: &[u64]) -> f64
[src]
Calculates the log probability mass function for the multinomial
distribution
with the given x
's corresponding to the probabilities for this
distribution
Panics
If the elements in x
do not sum to n
or if the length of x
is not
equivalent to the length of p
Formula
ln((n! / x_1!...x_k!) * p_i^x_i) for i in 1...k
where n
is the number of trials, p_i
is the i
th probability,
x_i
is the i
th x
value, and k
is the total number of
probabilities
impl<'a> CheckedDiscrete<&'a [u64], f64> for Multinomial
[src]
fn checked_pmf(&self, x: &[u64]) -> Result<f64>
[src]
Calculates the probability mass function for the multinomial
distribution
with the given x
's corresponding to the probabilities for this
distribution
Errors
If the elements in x
do not sum to n
or if the length of x
is not
equivalent to the length of p
Formula
(n! / x_1!...x_k!) * p_i^x_i for i in 1...k
where n
is the number of trials, p_i
is the i
th probability,
x_i
is the i
th x
value, and k
is the total number of
probabilities
fn checked_ln_pmf(&self, x: &[u64]) -> Result<f64>
[src]
Calculates the log probability mass function for the multinomial
distribution
with the given x
's corresponding to the probabilities for this
distribution
Errors
If the elements in x
do not sum to n
or if the length of x
is not
equivalent to the length of p
Formula
ln((n! / x_1!...x_k!) * p_i^x_i) for i in 1...k
where n
is the number of trials, p_i
is the i
th probability,
x_i
is the i
th x
value, and k
is the total number of
probabilities
impl Mean<Vec<f64>> for Multinomial
[src]
fn mean(&self) -> Vec<f64>
[src]
Returns the mean of the multinomial distribution
Formula
n * p_i for i in 1...k
where n
is the number of trials, p_i
is the i
th probability,
and k
is the total number of probabilities
impl Variance<Vec<f64>> for Multinomial
[src]
fn variance(&self) -> Vec<f64>
[src]
Returns the variance of the multinomial distribution
Formula
n * p_i * (1 - p_1) for i in 1...k
where n
is the number of trials, p_i
is the i
th probability,
and k
is the total number of probabilities
fn std_dev(&self) -> Vec<f64>
[src]
Returns the standard deviation of the multinomial distribution
Formula
sqrt(n * p_i * (1 - p_1)) for i in 1...k
where n
is the number of trials, p_i
is the i
th probability,
and k
is the total number of probabilities
impl Skewness<Vec<f64>> for Multinomial
[src]
fn skewness(&self) -> Vec<f64>
[src]
Returns the skewness of the multinomial distribution
Formula
(1 - 2 * p_i) / (n * p_i * (1 - p_i)) for i in 1...k
where n
is the number of trials, p_i
is the i
th probability,
and k
is the total number of probabilities
impl PartialEq<Multinomial> for Multinomial
[src]
fn eq(&self, other: &Multinomial) -> bool
[src]
fn ne(&self, other: &Multinomial) -> bool
[src]
impl Clone for Multinomial
[src]
fn clone(&self) -> Multinomial
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl Debug for Multinomial
[src]
impl Distribution<Vec<f64>> for Multinomial
[src]
Auto Trait Implementations
impl Send for Multinomial
impl Sync for Multinomial
Blanket Implementations
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,