Trait rstats::Stats[][src]

pub trait Stats {
Show 21 methods fn vmag(self) -> f64;
fn vmagsq(self) -> f64;
fn vinverse(self) -> Vec<f64>;
fn negv(self) -> Vec<f64>;
fn vunit(self) -> Vec<f64>;
fn pdf(self) -> Vec<f64>;
fn entropy(self) -> f64;
fn autocorr(self) -> f64;
fn lintrans(self) -> Vec<f64>;
fn symmatrix(self) -> Vec<Vec<f64>>; fn amean(self) -> Result<f64>
    where
        Self: Sized
, { ... }
fn ameanstd(self) -> Result<MStats>
    where
        Self: Sized
, { ... }
fn awmean(self) -> Result<f64>
    where
        Self: Sized
, { ... }
fn awmeanstd(self) -> Result<MStats>
    where
        Self: Sized
, { ... }
fn hmean(self) -> Result<f64>
    where
        Self: Sized
, { ... }
fn hwmean(self) -> Result<f64>
    where
        Self: Sized
, { ... }
fn gmean(self) -> Result<f64>
    where
        Self: Sized
, { ... }
fn gmeanstd(self) -> Result<MStats>
    where
        Self: Sized
, { ... }
fn gwmean(self) -> Result<f64>
    where
        Self: Sized
, { ... }
fn gwmeanstd(self) -> Result<MStats>
    where
        Self: Sized
, { ... }
fn median(self) -> Result<Med>
    where
        Self: Sized
, { ... }
}
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. There is just one limitation: data of end type i64 has to be explicitly converted to f64. That is to raise awareness that, in this particular case, some precision may be lost. Function statsg::i64tof64(&s) will convert the whole slice.

Required methods

Vector magnitude

Vector magnitude squared (sum of squares)

Vector with inverse magnitude

Unit vector

Probability density function of a sorted slice

Information (entropy) in nats

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

Linear transform to interval [0,1]

Reconstructs the full symmetric square matrix from its lower diagonal compact form, produced by covar, covone, wcovar

Provided methods

Arithmetic mean

Arithmetic mean and standard deviation

Weighted arithmetic mean

Weighted arithmetic men and standard deviation

Harmonic mean

Weighted harmonic mean

Geometric mean

Geometric mean and standard deviation ratio

Weighed geometric mean

Weighted geometric mean and standard deviation ratio

Median and quartiles

Implementations on Foreign Types

Vector magnitude

Vector magnitude squared (sum of squares)

Vector with inverse magnitude

Unit vector

Arithmetic 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.as_slice().amean().unwrap(),7.5_f64);

Arithmetic mean and (population) standard deviation 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.];
let res = v1.as_slice().ameanstd().unwrap();
assert_eq!(res.mean,7.5_f64);
assert_eq!(res.std,4.031128874149275_f64);

Linearly weighted arithmetic mean of an f64 slice.
Linearly descending weights from n down to one.
Time dependent data should be in the stack order - the last being the oldest.

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.as_slice().awmean().unwrap(),5.333333333333333_f64);

Linearly weighted arithmetic mean and standard deviation of an f64 slice.
Linearly descending weights from n down to one.
Time dependent data should be in the stack order - the last being the oldest.

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.as_slice().awmeanstd().unwrap();
assert_eq!(res.mean,5.333333333333333_f64);
assert_eq!(res.std,3.39934634239519_f64);

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.as_slice().hmean().unwrap(),4.305622526633627_f64);

Linearly weighted harmonic mean of an f64 slice.
Linearly descending weights from n down to one.
Time dependent data should be in the stack order - the last being the oldest.

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.as_slice().hwmean().unwrap(),3.019546395306663_f64);

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.as_slice().gmean().unwrap(),6.045855171418503_f64);

Linearly weighted geometric mean of an i64 slice.
Descending weights from n down to one.
Time dependent data should be in the stack order - the last being the oldest.
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 data is not allowed - would at best only produce zero result.

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.as_slice().gwmean().unwrap(),4.144953510241978_f64);

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.as_slice().gmeanstd().unwrap();
assert_eq!(res.mean,6.045855171418503_f64);
assert_eq!(res.std,2.1084348239406303_f64);

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.as_slice().gwmeanstd().unwrap();
assert_eq!(res.mean,4.144953510241978_f64);
assert_eq!(res.std,2.1572089236412597_f64);

Median of a &[T] slice

Example
use rstats::{Stats};
let v1 = vec![1_u8,2,3,4,5,6,7,8,9,10,11,12,13,14];
let res = &v1.median().unwrap();
assert_eq!(res.median,7.5_f64);
assert_eq!(res.lquartile,4.25_f64);
assert_eq!(res.uquartile,10.75_f64);

Probability density function of a sorted slice with repeats

Information (entropy) (in nats)

(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(),0.9984603532054123_f64);

Linear transform to interval [0,1]

Reconstructs the full symmetric square matrix from its lower diagonal compact form, as produced by covar, covone, wcovar

Implementors