Struct rv::dist::NormalInvGamma [−][src]
pub struct NormalInvGamma { /* fields omitted */ }
Prior for Gaussian
Given x ~ N(μ, σ)
, the Normal Inverse Gamma prior implies that
μ ~ N(m, sqrt(v)σ)
and ρ ~ InvGamma(a, b)
.
Implementations
impl NormalInvGamma
[src]
impl NormalInvGamma
[src]pub fn new(m: f64, v: f64, a: f64, b: f64) -> Result<Self, NormalInvGammaError>
[src]
Create a new Normal Inverse Gamma distribution
Arguments
- m: The prior mean
- v: Relative variance of μ versus data
- a: The mean of variance is b / (a - 1)
- b: Degrees of freedom of the variance
pub fn new_unchecked(m: f64, v: f64, a: f64, b: f64) -> Self
[src]
Creates a new NormalInvGamma without checking whether the parameters are valid.
pub fn params(&self) -> (f64, f64, f64, f64)
[src]
Returns (m, v, a, b)
pub fn m(&self) -> f64
[src]
Get the m parameter
pub fn set_m(&mut self, m: f64) -> Result<(), NormalInvGammaError>
[src]
Set the value of m
Example
use rv::dist::NormalInvGamma; let mut nig = NormalInvGamma::new(0.0, 1.2, 2.3, 3.4).unwrap(); assert_eq!(nig.m(), 0.0); nig.set_m(-1.1).unwrap(); assert_eq!(nig.m(), -1.1);
Will error for invalid values
assert!(nig.set_m(-1.1).is_ok()); assert!(nig.set_m(std::f64::INFINITY).is_err()); assert!(nig.set_m(std::f64::NEG_INFINITY).is_err()); assert!(nig.set_m(std::f64::NAN).is_err());
pub fn set_m_unchecked(&mut self, m: f64)
[src]
Set the value of m without input validation
pub fn v(&self) -> f64
[src]
Get the v parameter
pub fn set_v(&mut self, v: f64) -> Result<(), NormalInvGammaError>
[src]
Set the value of v
Example
use rv::dist::NormalInvGamma; let mut nig = NormalInvGamma::new(0.0, 1.2, 2.3, 3.4).unwrap(); assert_eq!(nig.v(), 1.2); nig.set_v(4.3).unwrap(); assert_eq!(nig.v(), 4.3);
Will error for invalid values
assert!(nig.set_v(2.1).is_ok()); // must be greater than zero assert!(nig.set_v(0.0).is_err()); assert!(nig.set_v(-1.0).is_err()); assert!(nig.set_v(std::f64::INFINITY).is_err()); assert!(nig.set_v(std::f64::NEG_INFINITY).is_err()); assert!(nig.set_v(std::f64::NAN).is_err());
pub fn set_v_unchecked(&mut self, v: f64)
[src]
Set the value of v without input validation
pub fn a(&self) -> f64
[src]
Get the a parameter
pub fn set_a(&mut self, a: f64) -> Result<(), NormalInvGammaError>
[src]
Set the value of a
Example
use rv::dist::NormalInvGamma; let mut nig = NormalInvGamma::new(0.0, 1.2, 2.3, 3.4).unwrap(); assert_eq!(nig.a(), 2.3); nig.set_a(4.3).unwrap(); assert_eq!(nig.a(), 4.3);
Will error for invalid values
assert!(nig.set_a(2.1).is_ok()); // must be greater than zero assert!(nig.set_a(0.0).is_err()); assert!(nig.set_a(-1.0).is_err()); assert!(nig.set_a(std::f64::INFINITY).is_err()); assert!(nig.set_a(std::f64::NEG_INFINITY).is_err()); assert!(nig.set_a(std::f64::NAN).is_err());
pub fn set_a_unchecked(&mut self, a: f64)
[src]
Set the value of a without input validation
pub fn b(&self) -> f64
[src]
Get the b parameter
pub fn set_b(&mut self, b: f64) -> Result<(), NormalInvGammaError>
[src]
Set the value of b
Example
use rv::dist::NormalInvGamma; let mut nig = NormalInvGamma::new(0.0, 1.2, 2.3, 3.4).unwrap(); assert_eq!(nig.b(), 3.4); nig.set_b(4.3).unwrap(); assert_eq!(nig.b(), 4.3);
Will error for invalid values
assert!(nig.set_b(2.1).is_ok()); // must be greater than zero assert!(nig.set_b(0.0).is_err()); assert!(nig.set_b(-1.0).is_err()); assert!(nig.set_b(std::f64::INFINITY).is_err()); assert!(nig.set_b(std::f64::NEG_INFINITY).is_err()); assert!(nig.set_b(std::f64::NAN).is_err());
pub fn set_b_unchecked(&mut self, b: f64)
[src]
Set the value of b without input validation
Trait Implementations
impl Clone for NormalInvGamma
[src]
impl Clone for NormalInvGamma
[src]fn clone(&self) -> NormalInvGamma
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl ConjugatePrior<f64, Gaussian> for NormalInvGamma
[src]
impl ConjugatePrior<f64, Gaussian> for NormalInvGamma
[src]type Posterior = Self
Type of the posterior distribution
type LnMCache = f64
Type of the ln_m
cache
type LnPpCache = (GaussianSuffStat, f64)
Type of the ln_pp
cache
fn posterior(&self, x: &DataOrSuffStat<'_, f64, Gaussian>) -> Self
[src]
fn ln_m_cache(&self) -> Self::LnMCache
[src]
fn ln_m_with_cache(
&self,
cache: &Self::LnMCache,
x: &DataOrSuffStat<'_, f64, Gaussian>
) -> f64
[src]
&self,
cache: &Self::LnMCache,
x: &DataOrSuffStat<'_, f64, Gaussian>
) -> f64
fn ln_pp_cache(&self, x: &DataOrSuffStat<'_, f64, Gaussian>) -> Self::LnPpCache
[src]
fn ln_pp_with_cache(&self, cache: &Self::LnPpCache, y: &f64) -> f64
[src]
fn ln_m(&self, x: &DataOrSuffStat<'_, X, Fx>) -> f64
[src]
fn ln_pp(&self, y: &X, x: &DataOrSuffStat<'_, X, Fx>) -> f64
[src]
fn m(&self, x: &DataOrSuffStat<'_, X, Fx>) -> f64
[src]
fn pp(&self, y: &X, x: &DataOrSuffStat<'_, X, Fx>) -> f64
[src]
impl GewekeTestable<Gaussian, f64> for NormalInvGamma
[src]
impl GewekeTestable<Gaussian, f64> for NormalInvGamma
[src]impl PartialEq<NormalInvGamma> for NormalInvGamma
[src]
impl PartialEq<NormalInvGamma> for NormalInvGamma
[src]fn eq(&self, other: &NormalInvGamma) -> bool
[src]
fn ne(&self, other: &NormalInvGamma) -> bool
[src]
impl Rv<Gaussian> for NormalInvGamma
[src]
impl Rv<Gaussian> for NormalInvGamma
[src]impl StructuralPartialEq for NormalInvGamma
[src]
impl StructuralPartialEq for NormalInvGamma
[src]Auto Trait Implementations
impl RefUnwindSafe for NormalInvGamma
impl RefUnwindSafe for NormalInvGamma
impl Send for NormalInvGamma
impl Send for NormalInvGamma
impl Sync for NormalInvGamma
impl Sync for NormalInvGamma
impl Unpin for NormalInvGamma
impl Unpin for NormalInvGamma
impl UnwindSafe for NormalInvGamma
impl UnwindSafe for NormalInvGamma
Blanket Implementations
impl<T> Same<T> for T
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
pub fn to_subset(&self) -> Option<SS>
pub fn is_in_subset(&self) -> bool
pub fn to_subset_unchecked(&self) -> SS
pub fn from_subset(element: &SS) -> SP
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,