Struct average::WeightedMeanWithError[][src]

pub struct WeightedMeanWithError { /* fields omitted */ }

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]

Create a new weighted and unweighted mean estimator.

Add an observation sampled from the population.

Determine whether the sample is empty.

Return the sum of the weights.

Returns 0 for an empty sample.

Return the sum of the squared weights.

Returns 0 for an empty sample.

Estimate the weighted mean of the population.

Returns 0 for an empty sample.

Estimate the unweighted mean of the population.

Returns 0 for an empty sample.

Return the sample size.

Calculate the effective sample size.

Calculate the unweighted population variance of the sample.

This is a biased estimator of the variance of the population.

Calculate the unweighted sample variance.

This is an unbiased estimator of the variance of the population.

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 Debug for WeightedMeanWithError
[src]

Formats the value using the given formatter. Read more

impl Clone for WeightedMeanWithError
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl Merge for 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);

impl Default for WeightedMeanWithError
[src]

Returns the "default value" for a type. Read more

impl FromIterator<(f64, f64)> for WeightedMeanWithError
[src]

Creates a value from an iterator. Read more

impl<'a> FromIterator<&'a (f64, f64)> for WeightedMeanWithError
[src]

Creates a value from an iterator. Read more

Auto Trait Implementations