[−][src]Struct average::WeightedMeanWithError
Estimate the weighted and unweighted arithmetic mean and the unweighted variance of a sequence of numbers ("population").
This can be used to estimate the standard error of the weighted mean.
Example
use average::WeightedMeanWithError; let a: WeightedMeanWithError = (1..6).zip(1..6) .map(|(x, w)| (f64::from(x), f64::from(w))).collect(); println!("The weighted mean is {} ± {}.", a.weighted_mean(), a.error());
Methods
impl WeightedMeanWithError[src]
pub fn new() -> WeightedMeanWithError[src]
Create a new weighted and unweighted mean estimator.
pub fn add(&mut self, sample: f64, weight: f64)[src]
Add an observation sampled from the population.
pub fn is_empty(&self) -> bool[src]
Determine whether the sample is empty.
pub fn sum_weights(&self) -> f64[src]
Return the sum of the weights.
Returns 0 for an empty sample.
pub fn sum_weights_sq(&self) -> f64[src]
Return the sum of the squared weights.
Returns 0 for an empty sample.
pub fn weighted_mean(&self) -> f64[src]
Estimate the weighted mean of the population.
Returns 0 for an empty sample.
pub fn unweighted_mean(&self) -> f64[src]
Estimate the unweighted mean of the population.
Returns 0 for an empty sample.
pub fn len(&self) -> u64[src]
Return the sample size.
pub fn effective_len(&self) -> f64[src]
Calculate the effective sample size.
pub fn population_variance(&self) -> f64[src]
Calculate the unweighted population variance of the sample.
This is a biased estimator of the variance of the population.
pub fn sample_variance(&self) -> f64[src]
Calculate the unweighted sample variance.
This is an unbiased estimator of the variance of the population.
pub fn error(&self) -> f64[src]
Estimate the standard error of the weighted mean of the population.
Returns 0 if the sum of weights is 0.
This unbiased estimator assumes that the samples were independently drawn from the same population with constant variance.
Trait Implementations
impl Clone for WeightedMeanWithError[src]
fn clone(&self) -> WeightedMeanWithError[src]
fn clone_from(&mut self, source: &Self)1.0.0[src]
impl Debug for WeightedMeanWithError[src]
impl Default for WeightedMeanWithError[src]
fn default() -> WeightedMeanWithError[src]
impl<'a> FromIterator<&'a (f64, f64)> for WeightedMeanWithError[src]
fn from_iter<T>(iter: T) -> WeightedMeanWithError where
T: IntoIterator<Item = &'a (f64, f64)>, [src]
T: IntoIterator<Item = &'a (f64, f64)>,
impl FromIterator<(f64, f64)> for WeightedMeanWithError[src]
fn from_iter<T>(iter: T) -> WeightedMeanWithError where
T: IntoIterator<Item = (f64, f64)>, [src]
T: IntoIterator<Item = (f64, f64)>,
impl Merge for WeightedMeanWithError[src]
fn merge(&mut self, other: &WeightedMeanWithError)[src]
Merge another sample into this one.
Example
use average::{WeightedMeanWithError, Merge}; let weighted_sequence: &[(f64, f64)] = &[ (1., 0.1), (2., 0.2), (3., 0.3), (4., 0.4), (5., 0.5), (6., 0.6), (7., 0.7), (8., 0.8), (9., 0.9)]; let (left, right) = weighted_sequence.split_at(3); let avg_total: WeightedMeanWithError = weighted_sequence.iter().collect(); let mut avg_left: WeightedMeanWithError = left.iter().collect(); let avg_right: WeightedMeanWithError = right.iter().collect(); avg_left.merge(&avg_right); assert!((avg_total.weighted_mean() - avg_left.weighted_mean()).abs() < 1e-15); assert!((avg_total.error() - avg_left.error()).abs() < 1e-15);
Auto Trait Implementations
impl RefUnwindSafe for WeightedMeanWithError
impl Send for WeightedMeanWithError
impl Sync for WeightedMeanWithError
impl Unpin for WeightedMeanWithError
impl UnwindSafe for WeightedMeanWithError
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<Src, Scheme> ApproxFrom<Src, Scheme> for Src where
Scheme: ApproxScheme, [src]
Scheme: ApproxScheme,
type Err = NoError
The error type produced by a failed conversion.
fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>[src]
impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Src where
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme, [src]
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
The error type produced by a failed conversion.
fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>[src]
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T[src]
impl<T, Dst> ConvAsUtil<Dst> for T[src]
fn approx(self) -> Result<Dst, Self::Err> where
Self: ApproxInto<Dst, DefaultApprox>, [src]
Self: ApproxInto<Dst, DefaultApprox>,
fn approx_by<Scheme>(self) -> Result<Dst, Self::Err> where
Scheme: ApproxScheme,
Self: ApproxInto<Dst, Scheme>, [src]
Scheme: ApproxScheme,
Self: ApproxInto<Dst, Scheme>,
impl<T> ConvUtil for T[src]
fn approx_as<Dst>(self) -> Result<Dst, Self::Err> where
Self: ApproxInto<Dst, DefaultApprox>, [src]
Self: ApproxInto<Dst, DefaultApprox>,
fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err> where
Scheme: ApproxScheme,
Self: ApproxInto<Dst, Scheme>, [src]
Scheme: ApproxScheme,
Self: ApproxInto<Dst, Scheme>,
fn into_as<Dst>(self) -> Dst where
Self: Into<Dst>, [src]
Self: Into<Dst>,
fn try_as<Dst>(self) -> Result<Dst, Self::Err> where
Self: TryInto<Dst>, [src]
Self: TryInto<Dst>,
fn value_as<Dst>(self) -> Result<Dst, Self::Err> where
Self: ValueInto<Dst>, [src]
Self: ValueInto<Dst>,
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.
fn to_owned(&self) -> T[src]
fn clone_into(&self, target: &mut T)[src]
impl<Src> TryFrom<Src> for Src[src]
type Err = NoError
The error type produced by a failed conversion.
fn try_from(src: Src) -> Result<Src, <Src as TryFrom<Src>>::Err>[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.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<Src, Dst> TryInto<Dst> for Src where
Dst: TryFrom<Src>, [src]
Dst: TryFrom<Src>,
type Err = <Dst as TryFrom<Src>>::Err
The error type produced by a failed conversion.
fn try_into(self) -> Result<Dst, <Src as TryInto<Dst>>::Err>[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<Src> ValueFrom<Src> for Src[src]
type Err = NoError
The error type produced by a failed conversion.
fn value_from(src: Src) -> Result<Src, <Src as ValueFrom<Src>>::Err>[src]
impl<Src, Dst> ValueInto<Dst> for Src where
Dst: ValueFrom<Src>, [src]
Dst: ValueFrom<Src>,