pub struct Variance { /* private fields */ }
Expand description
Estimate the arithmetic mean and the variance of a sequence of numbers (“population”).
This can be used to estimate the standard error of the mean.
§Example
use average::Variance;
let a: Variance = (1..6).map(f64::from).collect();
println!("The mean is {} ± {}.", a.mean(), a.error());
Implementations§
Source§impl Variance
impl Variance
Sourcepub fn mean(&self) -> f64
pub fn mean(&self) -> f64
Estimate the mean of the population.
Returns NaN for an empty sample.
Sourcepub fn sample_variance(&self) -> f64
pub fn sample_variance(&self) -> f64
Calculate the sample variance.
This is an unbiased estimator of the variance of the population.
Returns NaN for samples of size 1 or less.
Sourcepub fn population_variance(&self) -> f64
pub fn population_variance(&self) -> f64
Calculate the population variance of the sample.
This is a biased estimator of the variance of the population.
Returns NaN for an empty sample.
Sourcepub fn variance_of_mean(&self) -> f64
pub fn variance_of_mean(&self) -> f64
Estimate the variance of the mean of the population.
Returns NaN for an empty sample.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Variance
impl<'de> Deserialize<'de> for Variance
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<'a> Extend<&'a f64> for Variance
impl<'a> Extend<&'a f64> for Variance
Source§fn extend<T>(&mut self, iter: T)where
T: IntoIterator<Item = &'a f64>,
fn extend<T>(&mut self, iter: T)where
T: IntoIterator<Item = &'a f64>,
Extends a collection with the contents of an iterator. Read more
Source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
🔬This is a nightly-only experimental API. (
extend_one
)Extends a collection with exactly one element.
Source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
🔬This is a nightly-only experimental API. (
extend_one
)Reserves capacity in a collection for the given number of additional elements. Read more
Source§impl Extend<f64> for Variance
impl Extend<f64> for Variance
Source§fn extend<T>(&mut self, iter: T)where
T: IntoIterator<Item = f64>,
fn extend<T>(&mut self, iter: T)where
T: IntoIterator<Item = f64>,
Extends a collection with the contents of an iterator. Read more
Source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
🔬This is a nightly-only experimental API. (
extend_one
)Extends a collection with exactly one element.
Source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
🔬This is a nightly-only experimental API. (
extend_one
)Reserves capacity in a collection for the given number of additional elements. Read more
Source§impl<'a> FromIterator<&'a f64> for Variance
impl<'a> FromIterator<&'a f64> for Variance
Source§impl FromIterator<f64> for Variance
impl FromIterator<f64> for Variance
Source§impl<'a> FromParallelIterator<&'a f64> for Variance
Available on crate feature rayon
only.
impl<'a> FromParallelIterator<&'a f64> for Variance
Available on crate feature
rayon
only.Source§fn from_par_iter<I>(par_iter: I) -> Variance
fn from_par_iter<I>(par_iter: I) -> Variance
Creates an instance of the collection from the parallel iterator
par_iter
. Read moreSource§impl FromParallelIterator<f64> for Variance
Available on crate feature rayon
only.
impl FromParallelIterator<f64> for Variance
Available on crate feature
rayon
only.Source§fn from_par_iter<I>(par_iter: I) -> Variance
fn from_par_iter<I>(par_iter: I) -> Variance
Creates an instance of the collection from the parallel iterator
par_iter
. Read moreSource§impl Merge for Variance
impl Merge for Variance
Source§fn merge(&mut self, other: &Variance)
fn merge(&mut self, other: &Variance)
Merge another sample into this one.
§Example
use average::{Variance, Merge};
let sequence: &[f64] = &[1., 2., 3., 4., 5., 6., 7., 8., 9.];
let (left, right) = sequence.split_at(3);
let avg_total: Variance = sequence.iter().collect();
let mut avg_left: Variance = left.iter().collect();
let avg_right: Variance = right.iter().collect();
avg_left.merge(&avg_right);
assert_eq!(avg_total.mean(), avg_left.mean());
assert_eq!(avg_total.sample_variance(), avg_left.sample_variance());
Auto Trait Implementations§
impl Freeze for Variance
impl RefUnwindSafe for Variance
impl Send for Variance
impl Sync for Variance
impl Unpin for Variance
impl UnwindSafe for Variance
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<S, T> CastApprox<T> for Swhere
T: ConvApprox<S>,
impl<S, T> CastApprox<T> for Swhere
T: ConvApprox<S>,
Source§fn try_cast_approx(self) -> Result<T, Error>
fn try_cast_approx(self) -> Result<T, Error>
Source§fn cast_approx(self) -> T
fn cast_approx(self) -> T
Source§impl<S, T> CastFloat<T> for Swhere
T: ConvFloat<S>,
impl<S, T> CastFloat<T> for Swhere
T: ConvFloat<S>,
Source§fn cast_trunc(self) -> T
fn cast_trunc(self) -> T
Cast to integer, truncating Read more
Source§fn cast_nearest(self) -> T
fn cast_nearest(self) -> T
Cast to the nearest integer Read more
Source§fn cast_floor(self) -> T
fn cast_floor(self) -> T
Cast the floor to an integer Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more