pub struct FreedmanDiaconis<T> { /* private fields */ }Expand description
Robust (resilient to outliers) strategy that takes into account data variability and data size.
Let n be the number of observations.
bin_width = 2 × IQR × n−1/3
The bin width is proportional to the interquartile range (IQR) and inversely proportional to
cube root of n. It can be too conservative for small datasets, but it is quite good for large
datasets.
The IQR is very robust to outliers.
§Notes
This strategy requires the data
- not being empty
- not being constant
- having positive
IQR
Implementations§
Source§impl<T> FreedmanDiaconis<T>
impl<T> FreedmanDiaconis<T>
Trait Implementations§
Source§impl<T> BinsBuildingStrategy for FreedmanDiaconis<T>
impl<T> BinsBuildingStrategy for FreedmanDiaconis<T>
Source§fn from_array<S>(a: &ArrayBase<S, Ix1>) -> Result<Self, BinsBuildError>
fn from_array<S>(a: &ArrayBase<S, Ix1>) -> Result<Self, BinsBuildError>
Returns Err(BinsBuildError::Strategy) if IQR==0.
Returns Err(BinsBuildError::EmptyInput) if a.len()==0.
Returns Ok(Self) otherwise.
type Elem = T
Auto Trait Implementations§
impl<T> Freeze for FreedmanDiaconis<T>where
T: Freeze,
impl<T> RefUnwindSafe for FreedmanDiaconis<T>where
T: RefUnwindSafe,
impl<T> Send for FreedmanDiaconis<T>where
T: Send,
impl<T> Sync for FreedmanDiaconis<T>where
T: Sync,
impl<T> Unpin for FreedmanDiaconis<T>where
T: Unpin,
impl<T> UnwindSafe for FreedmanDiaconis<T>where
T: UnwindSafe,
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
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more