nyx_space::mc

Trait Stats

pub trait Stats {
Show 26 methods // Required methods fn vmag(self) -> f64; fn vmagsq(self) -> f64; fn vreciprocal(self) -> Result<Vec<f64>, RError<String>>; fn vinverse(self) -> Result<Vec<f64>, RError<String>>; fn negv(self) -> Result<Vec<f64>, RError<String>>; fn vunit(self) -> Result<Vec<f64>, RError<String>>; fn hmad(self) -> Result<f64, RError<String>>; fn amean(self) -> Result<f64, RError<String>>; fn medmad(self) -> Result<Params, RError<String>>; fn ameanstd(self) -> Result<Params, RError<String>>; fn awmean(self) -> Result<f64, RError<String>>; fn awmeanstd(self) -> Result<Params, RError<String>>; fn hmean(self) -> Result<f64, RError<String>>; fn hmeanstd(self) -> Result<Params, RError<String>>; fn hwmean(self) -> Result<f64, RError<String>>; fn hwmeanstd(self) -> Result<Params, RError<String>>; fn gmean(self) -> Result<f64, RError<String>>; fn gmeanstd(self) -> Result<Params, RError<String>>; fn gwmean(self) -> Result<f64, RError<String>>; fn gwmeanstd(self) -> Result<Params, RError<String>>; fn pdf(self) -> Vec<f64>; fn entropy(self) -> f64; fn autocorr(self) -> Result<f64, RError<String>>; fn lintrans(self) -> Result<Vec<f64>, RError<String>>; fn dfdt(self, centre: f64) -> Result<f64, RError<String>>; fn house_reflector(self) -> Vec<f64>;
}
Expand description

Statistical measures of a single variable (one generic vector of data) and vector algebra applicable to a single (generic) vector. Thus these methods take no arguments.

Required Methods§

fn vmag(self) -> f64

Vector magnitude

fn vmagsq(self) -> f64

Vector magnitude squared (sum of squares)

fn vreciprocal(self) -> Result<Vec<f64>, RError<String>>

vector with reciprocal components

fn vinverse(self) -> Result<Vec<f64>, RError<String>>

vector with inverse magnitude

fn negv(self) -> Result<Vec<f64>, RError<String>>

negated vector (all components swap sign)

fn vunit(self) -> Result<Vec<f64>, RError<String>>

Unit vector

fn hmad(self) -> Result<f64, RError<String>>

Harmonic spread from median

fn amean(self) -> Result<f64, RError<String>>

Arithmetic mean

fn medmad(self) -> Result<Params, RError<String>>

Median and Mad packed into Params struct

fn ameanstd(self) -> Result<Params, RError<String>>

Arithmetic mean and standard deviation

fn awmean(self) -> Result<f64, RError<String>>

Weighted arithmetic mean

fn awmeanstd(self) -> Result<Params, RError<String>>

Weighted arithmetic men and standard deviation

fn hmean(self) -> Result<f64, RError<String>>

Harmonic mean

fn hmeanstd(self) -> Result<Params, RError<String>>

Harmonic mean and experimental standard deviation

fn hwmean(self) -> Result<f64, RError<String>>

Weighted harmonic mean

fn hwmeanstd(self) -> Result<Params, RError<String>>

Weighted harmonic mean and standard deviation

fn gmean(self) -> Result<f64, RError<String>>

Geometric mean

fn gmeanstd(self) -> Result<Params, RError<String>>

Geometric mean and standard deviation ratio

fn gwmean(self) -> Result<f64, RError<String>>

Weighed geometric mean

fn gwmeanstd(self) -> Result<Params, RError<String>>

Weighted geometric mean and standard deviation ratio

fn pdf(self) -> Vec<f64>

Probability density function of a sorted slice

fn entropy(self) -> f64

Information (entropy) in nats

fn autocorr(self) -> Result<f64, RError<String>>

(Auto)correlation coefficient of pairs of successive values of (time series) variable.

fn lintrans(self) -> Result<Vec<f64>, RError<String>>

Linear transform to interval [0,1]

fn dfdt(self, centre: f64) -> Result<f64, RError<String>>

Linearly weighted approximate time series derivative at the last (present time) point.

fn house_reflector(self) -> Vec<f64>

Householder reflection

Implementations on Foreign Types§

§

impl<T> Stats for &[T]
where T: Clone + PartialOrd + Into<f64>,

§

fn vmag(self) -> f64

Vector magnitude

§

fn vmagsq(self) -> f64

Vector magnitude squared (sum of squares)

§

fn vreciprocal(self) -> Result<Vec<f64>, RError<String>>

Vector with reciprocal components

§

fn vinverse(self) -> Result<Vec<f64>, RError<String>>

Vector with inverse magnitude

§

fn vunit(self) -> Result<Vec<f64>, RError<String>>

Unit vector

§

fn hmad(self) -> Result<f64, RError<String>>

Harmonic spread from median

§

fn amean(self) -> Result<f64, RError<String>>

Arithmetic mean

§Example
use rstats::Stats;
let v1 = vec![1_f64,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.];
assert_eq!(v1.amean().unwrap(),7.5_f64);
§

fn medmad(self) -> Result<Params, RError<String>>

Median and Mad packed into in Params struct

§

fn ameanstd(self) -> Result<Params, RError<String>>

Arithmetic mean and (population) standard deviation

§Example
use rstats::Stats;
let v1 = vec![1_f64,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.];
let res = v1.ameanstd().unwrap();
assert_eq!(res.centre,7.5_f64);
assert_eq!(res.spread,4.031128874149275_f64);
§

fn awmean(self) -> Result<f64, RError<String>>

Linearly weighted arithmetic mean of an f64 slice.
Linearly ascending weights from 1 to n.
Time dependent data should be in the order of time increasing. Then the most recent gets the most weight.

§Example
use rstats::Stats;
let v1 = vec![1_f64,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.];
assert_eq!(v1.awmean().unwrap(),9.666666666666666_f64);
§

fn awmeanstd(self) -> Result<Params, RError<String>>

Linearly weighted arithmetic mean and standard deviation of an f64 slice.
Linearly ascending weights from 1 to n.
Time dependent data should be in the order of time increasing.

§Example
use rstats::Stats;
let v1 = vec![1_f64,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.];
let res = v1.awmeanstd().unwrap();
assert_eq!(res.centre,9.666666666666666_f64);
assert_eq!(res.spread,3.399346342395192_f64);
§

fn hmean(self) -> Result<f64, RError<String>>

Harmonic mean of an f64 slice.

§Example
use rstats::Stats;
let v1 = vec![1_f64,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.];
assert_eq!(v1.hmean().unwrap(),4.305622526633627_f64);
§

fn hmeanstd(self) -> Result<Params, RError<String>>

Harmonic mean and standard deviation std is based on reciprocal moments

§Example
use rstats::Stats;
let v1 = vec![1_f64,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.];
let res = v1.hmeanstd().unwrap();
assert_eq!(res.centre,4.305622526633627_f64);
assert_eq!(res.spread,1.1996764516690959_f64);
§

fn hwmean(self) -> Result<f64, RError<String>>

Linearly weighted harmonic mean of an f64 slice.
Linearly ascending weights from 1 to n.
Time dependent data should be ordered by increasing time.

§Example
use rstats::Stats;
let v1 = vec![1_f64,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.];
assert_eq!(v1.hwmean().unwrap(),7.5_f64);
§

fn hwmeanstd(self) -> Result<Params, RError<String>>

Weighted harmonic mean and standard deviation std is based on reciprocal moments

§Example
use rstats::Stats;
let v1 = vec![1_f64,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.];
let res = v1.hmeanstd().unwrap();
assert_eq!(res.centre,4.305622526633627_f64);
assert_eq!(res.spread,1.1996764516690959_f64);
§

fn gmean(self) -> Result<f64, RError<String>>

Geometric mean of an i64 slice.
The geometric mean is just an exponential of an arithmetic mean of log data (natural logarithms of the data items).
The geometric mean is less sensitive to outliers near maximal value.
Zero valued data is not allowed!

§Example
use rstats::Stats;
let v1 = vec![1_f64,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.];
assert_eq!(v1.gmean().unwrap(),6.045855171418503_f64);
§

fn gmeanstd(self) -> Result<Params, RError<String>>

Geometric mean and std ratio of an f64 slice.
Zero valued data is not allowed.
Std of ln data becomes a ratio after conversion back.

§Example
use rstats::Stats;
let v1 = vec![1_f64,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.];
let res = v1.gmeanstd().unwrap();
assert_eq!(res.centre,6.045855171418503_f64);
assert_eq!(res.spread,2.1084348239406303_f64);
§

fn gwmean(self) -> Result<f64, RError<String>>

Linearly weighted geometric mean of an i64 slice.
Ascending weights from 1 down to n.
Time dependent data should be in time increasing order.
The geometric mean is an exponential of an arithmetic mean of log data (natural logarithms of the data items).
The geometric mean is less sensitive to outliers near maximal value.
Zero valued data is not allowed!

§Example
use rstats::Stats;
let v1 = vec![1_f64,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.];
assert_eq!(v1.gwmean().unwrap(),8.8185222496341_f64);
§

fn gwmeanstd(self) -> Result<Params, RError<String>>

Linearly weighted version of gmeanstd.

§Example
use rstats::Stats;
let v1 = vec![1_f64,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.];
let res = v1.gwmeanstd().unwrap();
assert_eq!(res.centre,8.8185222496341_f64);
assert_eq!(res.spread,1.626825493266009_f64);
§

fn pdf(self) -> Vec<f64>

Probability density function of a sorted slice with repeats. Repeats are counted and removed

§

fn entropy(self) -> f64

Information (entropy) (in nats)

§

fn autocorr(self) -> Result<f64, RError<String>>

(Auto)correlation coefficient of pairs of successive values of (time series) f64 variable.

§Example
use rstats::Stats;
let v1 = vec![1_f64,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.];
assert_eq!(v1.autocorr().unwrap(),0.9984603532054123_f64);
§

fn lintrans(self) -> Result<Vec<f64>, RError<String>>

Linear transform to interval [0,1]

§

fn dfdt(self, centre: f64) -> Result<f64, RError<String>>

Linearly weighted approximate time series derivative at the last point (present time). Weighted sum (backwards half filter), minus the median. Rising values return positive result and vice versa.

§

fn house_reflector(self) -> Vec<f64>

Householder reflector

§

fn negv(self) -> Result<Vec<f64>, RError<String>>

Implementors§