[][src]Struct statrs::distribution::Pareto

pub struct Pareto { /* fields omitted */ }

Implements the Pareto distribution

Examples

use statrs::distribution::{Pareto, Continuous};
use statrs::statistics::Mean;
use statrs::prec;

let p = Pareto::new(1.0, 2.0).unwrap();
assert_eq!(p.mean(), 2.0);
assert!(prec::almost_eq(p.pdf(2.0), 0.25, 1e-15));

Methods

impl Pareto[src]

pub fn new(scale: f64, shape: f64) -> Result<Pareto>[src]

Constructs a new Pareto distribution with scale scale, and shape shape.

Errors

Returns an error if any of scale or shape are NaN. Returns an error if scale <= 0.0 or shape <= 0.0

Examples

use statrs::distribution::Pareto;

let mut result = Pareto::new(1.0, 2.0);
assert!(result.is_ok());

result = Pareto::new(0.0, 0.0);
assert!(result.is_err());

pub fn scale(&self) -> f64[src]

Returns the scale of the Pareto distribution

Examples

use statrs::distribution::Pareto;

let n = Pareto::new(1.0, 2.0).unwrap();
assert_eq!(n.scale(), 1.0);

pub fn shape(&self) -> f64[src]

Returns the shape of the Pareto distribution

Examples

use statrs::distribution::Pareto;

let n = Pareto::new(1.0, 2.0).unwrap();
assert_eq!(n.shape(), 2.0);

Trait Implementations

impl Univariate<f64, f64> for Pareto[src]

fn cdf(&self, x: f64) -> f64[src]

Calculates the cumulative distribution function for the Pareto distribution at x

Formula

This example is not tested
if x < x_m {
    0
} else {
    1 - (x_m/x)^α
}

where x_m is the scale and α is the shape

impl Continuous<f64, f64> for Pareto[src]

fn pdf(&self, x: f64) -> f64[src]

Calculates the probability density function for the Pareto distribution at x

Formula

This example is not tested
if x < x_m {
    0
} else {
    (α * x_m^α)/(x^(α + 1))
}

where x_m is the scale and α is the shape

fn ln_pdf(&self, x: f64) -> f64[src]

Calculates the log probability density function for the Pareto distribution at x

Formula

This example is not tested
if x < x_m {
    -INF
} else {
    ln(α) + α*ln(x_m) - (α + 1)*ln(x)
}

where x_m is the scale and α is the shape

impl Min<f64> for Pareto[src]

fn min(&self) -> f64[src]

Returns the minimum value in the domain of the Pareto distribution representable by a double precision float

Formula

This example is not tested
x_m

where x_m is the scale

impl Max<f64> for Pareto[src]

fn max(&self) -> f64[src]

Returns the maximum value in the domain of the Pareto distribution representable by a double precision float

Formula

This example is not tested
INF

impl Mean<f64> for Pareto[src]

fn mean(&self) -> f64[src]

Returns the mean of the Pareto distribution

Formula

This example is not tested
if α <= 1 {
    INF
} else {
    (α * x_m)/(α - 1)
}

where x_m is the scale and α is the shape

impl Variance<f64> for Pareto[src]

fn variance(&self) -> f64[src]

Returns the variance of the Pareto distribution

Formula

This example is not tested
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

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

where x_m is the scale and α is the shape

impl Entropy<f64> for Pareto[src]

fn entropy(&self) -> f64[src]

Returns the entropy for the Pareto distribution

Formula

This example is not tested
ln(α/x_m) - 1/α - 1

where x_m is the scale and α is the shape

impl Skewness<f64> for Pareto[src]

fn skewness(&self) -> f64[src]

Returns the skewness of the Pareto distribution

Panics

If α <= 3.0

where α is the shape

Formula

This example is not tested
    (2*(α + 1)/(α - 3))*sqrt((α - 2)/α)

where α is the shape

impl CheckedSkewness<f64> for Pareto[src]

fn checked_skewness(&self) -> Result<f64>[src]

Returns the skewness of the Pareto distribution

Errors

If α <= 3.0

where α is the shape

Formula

This example is not tested
    (2*(α + 1)/(α - 3))*sqrt((α - 2)/α)

where α is the shape

impl Median<f64> for Pareto[src]

fn median(&self) -> f64[src]

Returns the median of the Pareto distribution

Formula

This example is not tested
x_m*2^(1/α)

where x_m is the scale and α is the shape

impl Mode<f64> for Pareto[src]

fn mode(&self) -> f64[src]

Returns the mode of the Pareto distribution

Formula

This example is not tested
x_m

where x_m is the scale

impl Copy for Pareto[src]

impl PartialEq<Pareto> for Pareto[src]

impl Clone for Pareto[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl Debug for Pareto[src]

impl Distribution<f64> for Pareto[src]

fn sample_iter<R>(&'a self, rng: &'a mut R) -> DistIter<'a, Self, R, T> where
    R: Rng
[src]

Create an iterator that generates random values of T, using rng as the source of randomness. Read more

Auto Trait Implementations

impl Send for Pareto

impl Sync for Pareto

Blanket Implementations

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]