Struct average::WeightedAverage [] [src]

pub struct WeightedAverage { /* 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::WeightedAverage;

let a: WeightedAverage = (1..6).zip(1..6)
    .map(|(x, w)| (f64::from(x), f64::from(w))).collect();
println!("The weighted average is {} ± {}.", a.weighted_mean(), a.error());

Methods

impl WeightedAverage
[src]

Create a new weighted and unweighted average estimator.

Add a weighted element sampled from the population.

Determine whether the sample is empty.

Return the sum of the weights.

Return the sum of the squared weights.

Estimate the weighted mean of the sequence.

Estimate the unweighted mean of the sequence.

Return 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 sequence.

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.

Merge another sample into this one.

Example

use average::WeightedAverage;

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: WeightedAverage = weighted_sequence.iter().map(|&x| x).collect();
let mut avg_left: WeightedAverage = left.iter().map(|&x| x).collect();
let avg_right: WeightedAverage = right.iter().map(|&x| x).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);

Trait Implementations

impl Debug for WeightedAverage
[src]

Formats the value using the given formatter.

impl Clone for WeightedAverage
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl Default for WeightedAverage
[src]

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

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

Creates a value from an iterator. Read more