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§
source§impl 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§
source§impl Clone for FisherSnedecor
impl Clone for FisherSnedecor
source§fn clone(&self) -> FisherSnedecor
fn clone(&self) -> FisherSnedecor
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Continuous<f64, f64> for FisherSnedecor
impl Continuous<f64, f64> for FisherSnedecor
source§fn 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
source§fn 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
source§impl ContinuousCDF<f64, f64> for FisherSnedecor
impl ContinuousCDF<f64, f64> for FisherSnedecor
source§fn inverse_cdf(&self, p: T) -> K
fn inverse_cdf(&self, p: T) -> K
cdf
to obtain an approximation
of F^-1(p) := inf { x | F(x) >= p }
. Needless to say, performance may
may be lacking.source§impl Debug for FisherSnedecor
impl Debug for FisherSnedecor
source§impl Distribution<f64> for FisherSnedecor
impl Distribution<f64> for FisherSnedecor
source§fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> f64
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> f64
T
, using rng
as the source of randomness.source§impl Distribution<f64> for FisherSnedecor
impl Distribution<f64> for FisherSnedecor
source§fn 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
source§impl Max<f64> for FisherSnedecor
impl Max<f64> for FisherSnedecor
source§impl Min<f64> for FisherSnedecor
impl Min<f64> for FisherSnedecor
source§impl PartialEq<FisherSnedecor> for FisherSnedecor
impl PartialEq<FisherSnedecor> for FisherSnedecor
source§fn eq(&self, other: &FisherSnedecor) -> bool
fn eq(&self, other: &FisherSnedecor) -> bool
self
and other
values to be equal, and is used
by ==
.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§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.