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

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));

Methods

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

fn sample<R: Rng>(&self, r: &mut R) -> f64[src]

Generate a random sample from a fisher-snedecor distribution using r as the source of randomness.

Examples

use rand::StdRng;
use statrs::distribution::{FisherSnedecor, Distribution};

let mut r = rand::StdRng::new().unwrap();
let n = FisherSnedecor::new(2.0, 2.0).unwrap();
print!("{}", n.sample::<StdRng>(&mut r));

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

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

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

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

This example is not tested
0

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

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

This example is not tested
d2 / (d2 - 2)

where d2 is the second degree of freedom

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

This example is not tested
d2 / (d2 - 2)

where d2 is the second degree of freedom

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

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

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

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

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

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

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

This example is not tested
((d1 - 2) / d1) * (d2 / (d2 + 2))

where d1 is the first degree of freedom and 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

This example is not tested
((d1 - 2) / d1) * (d2 / (d2 + 2))

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

impl Copy for FisherSnedecor[src]

impl Clone for FisherSnedecor[src]

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

Performs copy-assignment from source. Read more

impl PartialEq<FisherSnedecor> for FisherSnedecor[src]

impl Debug for FisherSnedecor[src]

impl IndependentSample<f64> for FisherSnedecor[src]

fn ind_sample<R: Rng>(&self, r: &mut R) -> f64[src]

Generate a random independent sample from a fisher-snedecor distribution using r as the source of randomness. Refer here for implementation details.

impl Sample<f64> for FisherSnedecor[src]

fn sample<R: Rng>(&mut self, r: &mut R) -> f64[src]

Generate a random sample from a fisher-snedecor distribution using r as the source of randomness. Refer here for implementation details.

Auto Trait Implementations

impl Send for FisherSnedecor

impl Unpin for FisherSnedecor

impl Sync for FisherSnedecor

impl UnwindSafe for FisherSnedecor

impl RefUnwindSafe for FisherSnedecor

Blanket Implementations

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

type Owned = T

The resulting type after obtaining ownership.

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

impl<T> From<T> for 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]