IMP logo
IMP Reference Guide  develop.0ea7f7a4db,2020/10/23
The Integrative Modeling Platform
IMP::isd::vonMisesSufficient Class Reference

vonMisesSufficient More...

#include <IMP/isd/vonMisesSufficient.h>

+ Inheritance diagram for IMP::isd::vonMisesSufficient:

Detailed Description

vonMisesSufficient

Probability density function and -log(p) of von Mises distribution of N iid von Mises observations, provided through their sufficient statistics. This is much more efficient than multiplying N von Mises densities.

\[ f(\chi|N, R_0, \chi_{exp}, \kappa) = \frac{\exp \left(R_0 \kappa \cos (\chi - \chi_{exp})\right)} {2\pi I_0(\kappa)^N} \]

where

\[ R = \sqrt{\left(\sum_{i=1}^N \cos \chi_{exp}^i\right)^2 + \left(\sum_{i=1}^N \cos \chi_{exp}^i\right)^2} \]

\[ \exp (i \chi_{exp}) = \frac{1}{R} \sum_{j=1}^N \exp(i \chi_{exp}^j) \]

If \(N=1\) and \(\mu_1=\mu_2\) this reduces to the original von Mises distribution with known mean and concentration.

Note
derivative with respect to the mean \(\chi_{exp}\) is not provided.

Definition at line 36 of file vonMisesSufficient.h.

Public Member Functions

 vonMisesSufficient (double chi, unsigned N, double R0, double chiexp, double kappa)
 
 vonMisesSufficient (double chi, Floats obs, double kappa)
 
virtual double density () const
 
virtual double evaluate () const
 
virtual double evaluate_derivative_kappa () const
 
virtual double evaluate_derivative_x () const
 
double get_chiexp ()
 
double get_kappa ()
 
double get_N ()
 
double get_R0 ()
 
virtual std::string get_type_name () const
 
virtual ::IMP::VersionInfo get_version_info () const
 Get information about the module and version of the object. More...
 
double get_x ()
 
void set_chiexp (double chiexp)
 
void set_kappa (double kappa)
 
void set_N (unsigned N)
 
void set_R0 (double R0)
 
void set_x (double x)
 
- Public Member Functions inherited from IMP::Object
virtual void clear_caches ()
 
CheckLevel get_check_level () const
 
LogLevel get_log_level () const
 
void set_check_level (CheckLevel l)
 
void set_log_level (LogLevel l)
 Set the logging level used in this object. More...
 
void set_was_used (bool tf) const
 
void show (std::ostream &out=std::cout) const
 
const std::string & get_name () const
 
void set_name (std::string name)
 

Static Public Member Functions

static Floats get_sufficient_statistics (Floats data)
 Compute sufficient statistics from a list of observations. More...
 

Additional Inherited Members

- Protected Member Functions inherited from IMP::Object
 Object (std::string name)
 Construct an object with the given name. More...
 
virtual void do_destroy ()
 

Constructor & Destructor Documentation

IMP::isd::vonMisesSufficient::vonMisesSufficient ( double  chi,
unsigned  N,
double  R0,
double  chiexp,
double  kappa 
)

compute von Mises given the sufficient statistics

Parameters
[in]chi
[in]Nnumber of observations
[in]R0component of N observations on the x axis ( \(R_0\))
[in]chiexpmean ( \(\chi_{exp}\))
[in]kappaconcentration

Definition at line 45 of file vonMisesSufficient.h.

IMP::isd::vonMisesSufficient::vonMisesSufficient ( double  chi,
Floats  obs,
double  kappa 
)

compute von Mises given the raw observations this is equivalent to calling get_sufficient_statistics and then the other constructor.

Parameters
[in]chi
[in]obsa list of observed angles (in radians).
[in]kappaconcentration

Definition at line 62 of file vonMisesSufficient.h.

Member Function Documentation

static Floats IMP::isd::vonMisesSufficient::get_sufficient_statistics ( Floats  data)
static

Compute sufficient statistics from a list of observations.

See Mardia and El-Atoum, "Bayesian inference for the von Mises-Fisher distribution ", Biometrika, 1967.

Returns
the number of observations, \(R_0\) (the component on the x axis) and \(\chi_{exp}\)

Definition at line 121 of file vonMisesSufficient.h.

virtual ::IMP::VersionInfo IMP::isd::vonMisesSufficient::get_version_info ( ) const
virtual

Get information about the module and version of the object.

Reimplemented from IMP::Object.

Definition at line 140 of file vonMisesSufficient.h.


The documentation for this class was generated from the following file: