# [−][src]Trait statrs::statistics::Variance

The `Variance`

trait specifies that an object has a closed form solution for
its variance(s). Requires `Mean`

since a closed form solution to
variance by definition requires a closed form mean.

## Required methods

`fn variance(&self) -> T`

Returns the variance. May panic depending on the implementor.

# Examples

use statrs::statistics::Variance; use statrs::distribution::Uniform; let n = Uniform::new(0.0, 1.0).unwrap(); assert_eq!(1.0 / 12.0, n.variance());

`fn std_dev(&self) -> T`

Returns the standard deviation. May panic depending on the implementor.

# Examples

use statrs::statistics::Variance; use statrs::distribution::Uniform; let n = Uniform::new(0.0, 1.0).unwrap(); assert_eq!((1f64 / 12f64).sqrt(), n.std_dev());

## Implementations on Foreign Types

`impl Variance<f64> for [f64]`

[src]

`fn variance(&self) -> f64`

[src]

Estimates the unbiased population variance from the provided samples

# Remarks

On a dataset of size `N`

, `N-1`

is used as a normalizer (Bessel's
correction).

Returns `f64::NAN`

if data has less than two entries or if any entry is
`f64::NAN`

# Examples

use std::f64; use statrs::statistics::Variance; let x = []; assert!(x.variance().is_nan()); let y = [0.0, f64::NAN, 3.0, -2.0]; assert!(y.variance().is_nan()); let z = [0.0, 3.0, -2.0]; assert_eq!(z.variance(), 19.0 / 3.0);

`fn std_dev(&self) -> f64`

[src]

Estimates the unbiased population standard deviation from the provided samples

# Remarks

On a dataset of size `N`

, `N-1`

is used as a normalizer (Bessel's
correction).

Returns `f64::NAN`

if data has less than two entries or if any entry is
`f64::NAN`

# Examples

use std::f64; use statrs::statistics::Variance; let x = []; assert!(x.std_dev().is_nan()); let y = [0.0, f64::NAN, 3.0, -2.0]; assert!(y.std_dev().is_nan()); let z = [0.0, 3.0, -2.0]; assert_eq!(z.std_dev(), (19f64 / 3.0).sqrt());

## Implementors

`impl Variance<f64> for Bernoulli`

[src]

`fn variance(&self) -> f64`

[src]

`fn std_dev(&self) -> f64`

[src]

Returns the standard deviation of the bernoulli distribution

# Formula

sqrt(p * (1 - p))

`impl Variance<f64> for Beta`

[src]

`fn variance(&self) -> f64`

[src]

Returns the variance of the beta distribution

# Remarks

Returns `f64::NAN`

if either `shape_a`

or `shape_b`

are
positive infinity

# Formula

(α * β) / ((α + β)^2 * (α + β + 1))

where `α`

is shapeA and `β`

is shapeB

`fn std_dev(&self) -> f64`

[src]

`impl Variance<f64> for Binomial`

[src]

`fn variance(&self) -> f64`

[src]

Returns the variance of the binomial distribution

# Formula

n * p * (1 - p)

`fn std_dev(&self) -> f64`

[src]

Returns the standard deviation of the binomial distribution

# Formula

sqrt(n * p * (1 - p))

`impl Variance<f64> for Categorical`

[src]

`fn variance(&self) -> f64`

[src]

Returns the variance of the categorical distribution

# Formula

Σ(p_j * (j - μ)^2)

where `p_j`

is the `j`

th probability mass, `μ`

is the mean,
`Σ`

is the sum from `0`

to `k - 1`

,
and `k`

is the number of categories

`fn std_dev(&self) -> f64`

[src]

Returns the standard deviation of the categorical distribution

# Formula

sqrt(Σ(p_j * (j - μ)^2))

where `p_j`

is the `j`

th probability mass, `μ`

is the mean,
`Σ`

is the sum from `0`

to `k - 1`

,
and `k`

is the number of categories

`impl Variance<f64> for Chi`

[src]

`fn variance(&self) -> f64`

[src]

Returns the variance of the chi distribution

# Remarks

Returns `NaN`

if `freedom`

is `INF`

# Formula

k - μ^2

where `k`

is degrees of freedom and `μ`

is the mean
of the distribution

`fn std_dev(&self) -> f64`

[src]

`impl Variance<f64> for ChiSquared`

[src]

`fn variance(&self) -> f64`

[src]

Returns the variance of the chi-squared distribution

# Formula

`2k`

where `k`

is the degrees of freedom

`fn std_dev(&self) -> f64`

[src]

Returns the standard deviation of the chi-squared distribution

# Formula

sqrt(2k)

where `k`

is the degrees of freedom

`impl Variance<f64> for DiscreteUniform`

[src]

`fn variance(&self) -> f64`

[src]

Returns the variance of the discrete uniform distribution

# Formula

((max - min + 1)^2 - 1) / 12

`fn std_dev(&self) -> f64`

[src]

Returns the standard deviation of the discrete uniform distribution

# Formula

sqrt(((max - min + 1)^2 - 1) / 12)

`impl Variance<f64> for Erlang`

[src]

`fn variance(&self) -> f64`

[src]

Returns the variance of the erlang distribution

# Formula

k / λ^2

where `α`

is the shape and `λ`

is the rate

`fn std_dev(&self) -> f64`

[src]

Returns the standard deviation of the erlang distribution

# Formula

sqrt(k) / λ

where `k`

is the shape and `λ`

is the rate

`impl Variance<f64> for Exponential`

[src]

`fn variance(&self) -> f64`

[src]

Returns the variance of the exponential distribution

# Formula

1 / λ^2

where `λ`

is the rate

`fn std_dev(&self) -> f64`

[src]

Returns the standard deviation of the exponential distribution

# Formula

sqrt(1 / λ^2)

where `λ`

is the rate

`impl Variance<f64> for FisherSnedecor`

[src]

`fn variance(&self) -> f64`

[src]

Returns the variance of the fisher-snedecor distribution

# Panics

If `freedom_2 <= 4.0`

# Remarks

Returns `NaN`

if `freedom_1`

or `freedom_2`

is `INF`

# Formula

(2 * d2^2 * (d1 + d2 - 2)) / (d1 * (d2 - 2)^2 * (d2 - 4))

where `d1`

is the first degree of freedom and `d2`

is
the second degree of freedom

`fn std_dev(&self) -> f64`

[src]

Returns the standard deviation of the fisher-snedecor distribution

# Panics

If `freedom_2 <= 4.0`

# Remarks

Returns `NaN`

if `freedom_1`

or `freedom_2`

is `INF`

# Formula

sqrt((2 * d2^2 * (d1 + d2 - 2)) / (d1 * (d2 - 2)^2 * (d2 - 4)))

where `d1`

is the first degree of freedom and `d2`

is
the second degree of freedom

`impl Variance<f64> for Gamma`

[src]

`fn variance(&self) -> f64`

[src]

Returns the variance of the gamma distribution

# Formula

α / β^2

where `α`

is the shape and `β`

is the rate

`fn std_dev(&self) -> f64`

[src]

Returns the standard deviation of the gamma distribution

# Formula

sqrt(α) / β

where `α`

is the shape and `β`

is the rate

`impl Variance<f64> for Geometric`

[src]

`fn variance(&self) -> f64`

[src]

Returns the standard deviation of the geometric distribution

# Formula

(1 - p) / p^2

`fn std_dev(&self) -> f64`

[src]

`impl Variance<f64> for Hypergeometric`

[src]

`fn variance(&self) -> f64`

[src]

Returns the variance of the hypergeometric distribution

# Panics

If `N <= 1`

# Formula

n * (K / N) * ((N - K) / N) * ((N - n) / (N - 1))

where `N`

is population, `K`

is successes, and `n`

is draws

`fn std_dev(&self) -> f64`

[src]

`impl Variance<f64> for InverseGamma`

[src]

`fn variance(&self) -> f64`

[src]

Returns the variance of the inverse gamma distribution

# Panics

If `shape <= 2.0`

# Formula

β^2 / ((α - 1)^2 * (α - 2))

where `α`

is the shape and `β`

is the rate

`fn std_dev(&self) -> f64`

[src]

`impl Variance<f64> for LogNormal`

[src]

`fn variance(&self) -> f64`

[src]

Returns the variance of the log-normal distribution

# Formula

(e^(σ^2) - 1) * e^(2μ + σ^2)

where `μ`

is the location and `σ`

is the scale

`fn std_dev(&self) -> f64`

[src]

Returns the standard deviation of the log-normal distribution

# Formula

sqrt((e^(σ^2) - 1) * e^(2μ + σ^2))

where `μ`

is the location and `σ`

is the scale

`impl Variance<f64> for Normal`

[src]

`fn variance(&self) -> f64`

[src]

Returns the variance of the normal distribution

# Formula

σ^2

where `σ`

is the standard deviation

`fn std_dev(&self) -> f64`

[src]

Returns the standard deviation of the normal distribution

# Remarks

This is the same standard deviation used to construct the distribution

`impl Variance<f64> for Pareto`

[src]

`fn variance(&self) -> f64`

[src]

Returns the variance of the Pareto distribution

# Formula

if α <= 2 { INF } else { (x_m/(α - 1))^2 * (α/(α - 2)) }

where `x_m`

is the scale and `α`

is the shape

`fn std_dev(&self) -> f64`

[src]

Returns the standard deviation of the Pareto distribution

# Formula

let variance = if α <= 2 { INF } else { (x_m/(α - 1))^2 * (α/(α - 2)) }; sqrt(variance)

where `x_m`

is the scale and `α`

is the shape

`impl Variance<f64> for Poisson`

[src]

`fn variance(&self) -> f64`

[src]

Returns the variance of the poisson distribution

# Formula

`λ`

where `λ`

is the rate

`fn std_dev(&self) -> f64`

[src]

Returns the standard deviation of the poisson distribution

# Formula

sqrt(λ)

where `λ`

is the rate

`impl Variance<f64> for StudentsT`

[src]

`fn variance(&self) -> f64`

[src]

Returns the variance of the student's t-distribution

# Panics

If `freedom <= 1.0`

# Formula

if v == INF { σ^2 } else if freedom > 2.0 { v * σ^2 / (v - 2) } else { INF }

where `σ`

is the scale and `v`

is the freedom

`fn std_dev(&self) -> f64`

[src]

`impl Variance<f64> for Triangular`

[src]

`fn variance(&self) -> f64`

[src]

Returns the variance of the triangular distribution

# Formula

(min^2 + max^2 + mode^2 - min * max - min * mode - max * mode) / 18

`fn std_dev(&self) -> f64`

[src]

Returns the standard deviation of the triangular distribution

# Formula

sqrt((min^2 + max^2 + mode^2 - min * max - min * mode - max * mode) / 18)

`impl Variance<f64> for Uniform`

[src]

`fn variance(&self) -> f64`

[src]

Returns the variance for the continuous uniform distribution

# Formula

(max - min)^2 / 12

`fn std_dev(&self) -> f64`

[src]

Returns the standard deviation for the continuous uniform distribution

# Formula

sqrt((max - min)^2 / 12)

`impl Variance<f64> for Weibull`

[src]

`fn variance(&self) -> f64`

[src]

Returns the variance of the weibull distribution

# Formula

λ^2 * (Γ(1 + 2 / k) - Γ(1 + 1 / k)^2)

where `k`

is the shape, `λ`

is the scale, and `Γ`

is
the gamma function

`fn std_dev(&self) -> f64`

[src]

Returns the standard deviation of the weibull distribution

# Formula

sqrt(λ^2 * (Γ(1 + 2 / k) - Γ(1 + 1 / k)^2))

where `k`

is the shape, `λ`

is the scale, and `Γ`

is
the gamma function

`impl Variance<Vec<f64>> for Dirichlet`

[src]

`fn variance(&self) -> Vec<f64>`

[src]

Returns the variances of the dirichlet distribution

# Formula

(α_i * (α_0 - α_i)) / (α_0^2 * (α_0 + 1))

for the `i`

th element where `α_i`

is the `i`

th concentration parameter
and `α_0`

is the sum of all concentration parameters

`fn std_dev(&self) -> Vec<f64>`

[src]

Returns the standard deviation of the dirichlet distribution

# Formula

sqrt((α_i * (α_0 - α_i)) / (α_0^2 * (α_0 + 1)))

for the `i`

th element where `α_i`

is the `i`

th concentration parameter
and `α_0`

is the sum of all concentration parameters

`impl Variance<Vec<f64>> for Multinomial`

[src]

`fn variance(&self) -> Vec<f64>`

[src]

Returns the variance of the multinomial distribution

# Formula

n * p_i * (1 - p_1) for i in 1...k

where `n`

is the number of trials, `p_i`

is the `i`

th probability,
and `k`

is the total number of probabilities

`fn std_dev(&self) -> Vec<f64>`

[src]

Returns the standard deviation of the multinomial distribution

# Formula

sqrt(n * p_i * (1 - p_1)) for i in 1...k

where `n`

is the number of trials, `p_i`

is the `i`

th probability,
and `k`

is the total number of probabilities