Struct statrs::distribution::Categorical
source · pub struct Categorical { /* private fields */ }
Expand description
Implements the Categorical distribution, also known as the generalized Bernoulli or discrete distribution
Examples
use statrs::distribution::{Categorical, Discrete};
use statrs::statistics::Distribution;
use statrs::prec;
let n = Categorical::new(&[0.0, 1.0, 2.0]).unwrap();
assert!(prec::almost_eq(n.mean().unwrap(), 5.0 / 3.0, 1e-15));
assert_eq!(n.pmf(1), 1.0 / 3.0);
Implementations§
source§impl Categorical
impl Categorical
sourcepub fn new(prob_mass: &[f64]) -> Result<Categorical>
pub fn new(prob_mass: &[f64]) -> Result<Categorical>
Constructs a new categorical distribution
with the probabilities masses defined by prob_mass
Errors
Returns an error if prob_mass
is empty, the sum of
the elements in prob_mass
is 0, or any element is less than
0 or is f64::NAN
Note
The elements in prob_mass
do not need to be normalized
Examples
use statrs::distribution::Categorical;
let mut result = Categorical::new(&[0.0, 1.0, 2.0]);
assert!(result.is_ok());
result = Categorical::new(&[0.0, -1.0, 2.0]);
assert!(result.is_err());
Trait Implementations§
source§impl Clone for Categorical
impl Clone for Categorical
source§fn clone(&self) -> Categorical
fn clone(&self) -> Categorical
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for Categorical
impl Debug for Categorical
source§impl DiscreteCDF<u64, f64> for Categorical
impl DiscreteCDF<u64, f64> for Categorical
source§impl Distribution<f64> for Categorical
impl Distribution<f64> for Categorical
source§fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> f64
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> f64
Generate a random value of
T
, using rng
as the source of randomness.source§impl Distribution<f64> for Categorical
impl Distribution<f64> for Categorical
source§fn mean(&self) -> Option<f64>
fn mean(&self) -> Option<f64>
Returns the mean of the categorical distribution
Formula
ⓘ
Σ(j * p_j)
where p_j
is the j
th probability mass,
Σ
is the sum from 0
to k - 1
,
and k
is the number of categories
source§fn variance(&self) -> Option<f64>
fn variance(&self) -> Option<f64>
Returns the variance of the categorical distribution
Formula
ⓘ
Σ(p_j * (j - μ)^2)
where p_j
is the j
th probability mass, μ
is the mean,
Σ
is the sum from 0
to k - 1
,
and k
is the number of categories
source§impl Max<u64> for Categorical
impl Max<u64> for Categorical
source§impl Median<f64> for Categorical
impl Median<f64> for Categorical
source§impl Min<u64> for Categorical
impl Min<u64> for Categorical
source§impl PartialEq<Categorical> for Categorical
impl PartialEq<Categorical> for Categorical
source§fn eq(&self, other: &Categorical) -> bool
fn eq(&self, other: &Categorical) -> bool
impl StructuralPartialEq for Categorical
Auto Trait Implementations§
impl RefUnwindSafe for Categorical
impl Send for Categorical
impl Sync for Categorical
impl Unpin for Categorical
impl UnwindSafe for Categorical
Blanket Implementations§
source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.