Struct statrs::distribution::FisherSnedecor[][src]

pub struct FisherSnedecor { /* fields omitted */ }

Implements the Fisher-Snedecor distribution also commonly known as the F-distribution

Examples

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

let n = FisherSnedecor::new(3.0, 3.0).unwrap();
assert_eq!(n.mean(), 3.0);
assert!(prec::almost_eq(n.pdf(1.0), 0.318309886183790671538, 1e-15));

Implementations

impl FisherSnedecor[src]

pub fn new(freedom_1: f64, freedom_2: f64) -> Result<FisherSnedecor>[src]

Constructs a new fisher-snedecor distribution with degrees of freedom freedom_1 and freedom_2

Errors

Returns an error if freedom_1 or freedom_2 are NaN. Also returns an error if freedom_1 <= 0.0 or freedom_2 <= 0.0

Examples

use statrs::distribution::FisherSnedecor;

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

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

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

Returns the first degree of freedom for the fisher-snedecor distribution

Examples

use statrs::distribution::FisherSnedecor;

let n = FisherSnedecor::new(2.0, 3.0).unwrap();
assert_eq!(n.freedom_1(), 2.0);

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

Returns the second degree of freedom for the fisher-snedecor distribution

Examples

use statrs::distribution::FisherSnedecor;

let n = FisherSnedecor::new(2.0, 3.0).unwrap();
assert_eq!(n.freedom_2(), 3.0);

Trait Implementations

impl CheckedMean<f64> for FisherSnedecor[src]

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

Returns the mean of the fisher-snedecor distribution

Errors

If freedom_2 <= 2.0

Remarks

Returns NaN if freedom_2 is INF

Formula

d2 / (d2 - 2)

where d2 is the second degree of freedom

impl CheckedMode<f64> for FisherSnedecor[src]

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

Returns the mode for the fisher-snedecor distribution

Errors

If freedom_1 <= 2.0

Remarks

Returns NaN if freedom_1 or freedom_2 is INF

Formula

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

where d1 is the first degree of freedom and d2 is the second degree of freedom

impl CheckedSkewness<f64> for FisherSnedecor[src]

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

Returns the skewness of the fisher-snedecor distribution

Errors

If freedom_2 <= 6.0

Remarks

Returns NaN if freedom_1 or freedom_2 is INF

Formula

((2d1 + d2 - 2) * sqrt(8 * (d2 - 4))) / ((d2 - 6) * sqrt(d1 * (d1 + d2
- 2)))

where d1 is the first degree of freedom and d2 is the second degree of freedom

impl CheckedVariance<f64> for FisherSnedecor[src]

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

Returns the variance of the fisher-snedecor distribution

Errors

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 checked_std_dev(&self) -> Result<f64>[src]

Returns the standard deviation of the fisher-snedecor distribution

Errors

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 Clone for FisherSnedecor[src]

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

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

Calculates the probability density function for the fisher-snedecor distribution at x

Remarks

Returns NaN if freedom_1, freedom_2 is INF, or x is +INF or -INF

Formula

sqrt(((d1 * x) ^ d1 * d2 ^ d2) / (d1 * x + d2) ^ (d1 + d2)) / (x * β(d1
/ 2, d2 / 2))

where d1 is the first degree of freedom, d2 is the second degree of freedom, and β is the beta function

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

Calculates the log probability density function for the fisher-snedecor distribution at x

Remarks

Returns NaN if freedom_1, freedom_2 is INF, or x is +INF or -INF

Formula

ln(sqrt(((d1 * x) ^ d1 * d2 ^ d2) / (d1 * x + d2) ^ (d1 + d2)) / (x *
β(d1 / 2, d2 / 2)))

where d1 is the first degree of freedom, d2 is the second degree of freedom, and β is the beta function

impl Copy for FisherSnedecor[src]

impl Debug for FisherSnedecor[src]

impl Distribution<f64> for FisherSnedecor[src]

impl Max<f64> for FisherSnedecor[src]

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

Returns the maximum value in the domain of the fisher-snedecor distribution representable by a double precision float

Formula

INF

impl Mean<f64> for FisherSnedecor[src]

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

Returns the mean of the fisher-snedecor distribution

Panics

If freedom_2 <= 2.0

Remarks

Returns NaN if freedom_2 is INF

Formula

d2 / (d2 - 2)

where d2 is the second degree of freedom

impl Min<f64> for FisherSnedecor[src]

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

Returns the minimum value in the domain of the fisher-snedecor distribution representable by a double precision float

Formula

0

impl Mode<f64> for FisherSnedecor[src]

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

Returns the mode for the fisher-snedecor distribution

Panics

If freedom_1 <= 2.0

Remarks

Returns NaN if freedom_1 or freedom_2 is INF

Formula

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

where d1 is the first degree of freedom and d2 is the second degree of freedom

impl PartialEq<FisherSnedecor> for FisherSnedecor[src]

impl Skewness<f64> for FisherSnedecor[src]

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

Returns the skewness of the fisher-snedecor distribution

Panics

If freedom_2 <= 6.0

Remarks

Returns NaN if freedom_1 or freedom_2 is INF

Formula

((2d1 + d2 - 2) * sqrt(8 * (d2 - 4))) / ((d2 - 6) * sqrt(d1 * (d1 + d2
- 2)))

where d1 is the first degree of freedom and d2 is the second degree of freedom

impl StructuralPartialEq for FisherSnedecor[src]

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

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

Calculates the cumulative distribution function for the fisher-snedecor distribution at x

Formula

I_((d1 * x) / (d1 * x + d2))(d1 / 2, d2 / 2)

where d1 is the first degree of freedom, d2 is the second degree of freedom, and I is the regularized incomplete beta function

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

Auto Trait Implementations

impl RefUnwindSafe for FisherSnedecor

impl Send for FisherSnedecor

impl Sync for FisherSnedecor

impl Unpin for FisherSnedecor

impl UnwindSafe for FisherSnedecor

Blanket Implementations

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

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

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

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

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

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

type Owned = T

The resulting type after obtaining ownership.

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<V, T> VZip<V> for T where
    V: MultiLane<T>, 
[src]