Struct statrs::distribution::Multinomial [−][src]
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]);
Implementations
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> 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 Clone for Multinomial
[src]
fn clone(&self) -> Multinomial
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for Multinomial
[src]
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 Distribution<Vec<f64, Global>> for Multinomial
[src]
fn sample<R: Rng + ?Sized>(&self, r: &mut R) -> Vec<f64>
[src]
pub fn sample_iter<R>(self, rng: R) -> DistIter<Self, R, T> where
R: Rng,
[src]
R: Rng,
impl Mean<Vec<f64, Global>> 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 PartialEq<Multinomial> for Multinomial
[src]
fn eq(&self, other: &Multinomial) -> bool
[src]
fn ne(&self, other: &Multinomial) -> bool
[src]
impl Skewness<Vec<f64, Global>> 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 StructuralPartialEq for Multinomial
[src]
impl Variance<Vec<f64, Global>> 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
Auto Trait Implementations
impl RefUnwindSafe for Multinomial
impl Send for Multinomial
impl Sync for Multinomial
impl Unpin for Multinomial
impl UnwindSafe for Multinomial
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &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> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
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.
pub 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.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
[src]
V: MultiLane<T>,