Struct statrs::distribution::FisherSnedecor
source · [−]pub struct FisherSnedecor { /* private fields */ }
Expand description
Implements the Fisher-Snedecor distribution also commonly known as the F-distribution
Examples
use statrs::distribution::{FisherSnedecor, Continuous};
use statrs::statistics::Distribution;
use statrs::prec;
let n = FisherSnedecor::new(3.0, 3.0).unwrap();
assert_eq!(n.mean().unwrap(), 3.0);
assert!(prec::almost_eq(n.pdf(1.0), 0.318309886183790671538, 1e-15));
Implementations
sourceimpl FisherSnedecor
impl FisherSnedecor
sourcepub fn new(freedom_1: f64, freedom_2: f64) -> Result<FisherSnedecor>
pub fn new(freedom_1: f64, freedom_2: f64) -> Result<FisherSnedecor>
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());
Trait Implementations
sourceimpl Clone for FisherSnedecor
impl Clone for FisherSnedecor
sourcefn clone(&self) -> FisherSnedecor
fn clone(&self) -> FisherSnedecor
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Continuous<f64, f64> for FisherSnedecor
impl Continuous<f64, f64> for FisherSnedecor
sourcefn pdf(&self, x: f64) -> f64
fn pdf(&self, x: f64) -> f64
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
sourcefn ln_pdf(&self, x: f64) -> f64
fn ln_pdf(&self, x: f64) -> f64
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
sourceimpl ContinuousCDF<f64, f64> for FisherSnedecor
impl ContinuousCDF<f64, f64> for FisherSnedecor
sourcefn cdf(&self, x: f64) -> f64
fn cdf(&self, x: f64) -> f64
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
sourcefn inverse_cdf(&self, p: T) -> K
fn inverse_cdf(&self, p: T) -> K
Due to issues with rounding and floating-point accuracy the default
implementation may be ill-behaved.
Specialized inverse cdfs should be used whenever possible.
Performs a binary search on the domain of cdf
to obtain an approximation
of F^-1(p) := inf { x | F(x) >= p }
. Needless to say, performance may
may be lacking. Read more
sourceimpl Debug for FisherSnedecor
impl Debug for FisherSnedecor
sourceimpl Distribution<f64> for FisherSnedecor
impl Distribution<f64> for FisherSnedecor
sourcefn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> f64
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> f64
Generate a random value of T
, using rng
as the source of randomness.
sourcefn sample_iter<R>(self, rng: R) -> DistIter<Self, R, T> where
R: Rng,
fn sample_iter<R>(self, rng: R) -> DistIter<Self, R, T> where
R: Rng,
Create an iterator that generates random values of T
, using rng
as
the source of randomness. Read more
sourceimpl Distribution<f64> for FisherSnedecor
impl Distribution<f64> for FisherSnedecor
sourcefn skewness(&self) -> Option<f64>
fn skewness(&self) -> Option<f64>
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
sourceimpl Max<f64> for FisherSnedecor
impl Max<f64> for FisherSnedecor
sourceimpl Min<f64> for FisherSnedecor
impl Min<f64> for FisherSnedecor
sourceimpl Mode<Option<f64>> for FisherSnedecor
impl Mode<Option<f64>> for FisherSnedecor
sourceimpl PartialEq<FisherSnedecor> for FisherSnedecor
impl PartialEq<FisherSnedecor> for FisherSnedecor
sourcefn eq(&self, other: &FisherSnedecor) -> bool
fn eq(&self, other: &FisherSnedecor) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &FisherSnedecor) -> bool
fn ne(&self, other: &FisherSnedecor) -> bool
This method tests for !=
.
impl Copy for FisherSnedecor
impl StructuralPartialEq for FisherSnedecor
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
sourcepub fn to_subset(&self) -> Option<SS>
pub fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
sourcepub fn is_in_subset(&self) -> bool
pub fn is_in_subset(&self) -> bool
Checks if self
is actually part of its subset T
(and can be converted to it).
sourcepub fn to_subset_unchecked(&self) -> SS
pub fn to_subset_unchecked(&self) -> SS
Use with care! Same as self.to_subset
but without any property checks. Always succeeds.
sourcepub fn from_subset(element: &SS) -> SP
pub fn from_subset(element: &SS) -> SP
The inclusion map: converts self
to the equivalent element of its superset.
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more