IMP Reference Guide  develop.a3ebfe92e8,2023/01/27 The Integrative Modeling Platform
IMP::isd::FStudentT Class Reference

Joint Student's t-distribution of Function. More...

#include <IMP/isd/FStudentT.h>

Inheritance diagram for IMP::isd::FStudentT:

Detailed Description

Joint Student's t-distribution of Function.

If a vector of values $$F(X)$$ is jointly distributed according to the t distribution with shared center $$F(M)$$, scale $$\sigma$$, and degrees of freedom $$\nu$$, then the vector $$X$$ is distributed according to the F-t distribution, where $$F$$ is a one-to-one (strictly monotonic) function.

For a vector $$X=\{x_1,...,x_N\}$$ containing $$N$$ observations, the joint F-t density is given by

$p(X \mid M, \sigma, \nu) = \frac{ \Gamma[(N + \nu) / 2]}{\Gamma[\nu / 2]} (\pi \nu)^{-N / 2} \sigma^{-N} J(X) \left[1 + \frac{t(X, M, \sigma)^2}{\nu} \right]^{-(N + \nu)/2},$

where

$J(X) = \left| \prod_{i=1}^N F'(x_i) \right|,$

is a normalization factor according to the change of variables technique.

$t(X, M, \sigma)^2 = \frac{S_2(X) - 2 F(M) S_1(X) + N F(M)^2}{\sigma^2},$

and the minimally sufficient statistics are

\begin{align*} S_1(X) &= \sum_{i=1}^N F(x_i) \ S_2(X) &= \sum_{i=1}^N F(x_i)^2. \end{align*}

The degrees of freedom $$\nu$$ controls the heaviness of the tails. When $$\nu = 1$$, the F-t distribution becomes the F-Cauchy distribution. For very large $$\nu$$, the F-t distribution approaches the F-Normal distribution. Set $$J(X)$$ values to 1 for the joint t distribution.

Note
The joint t distribution is derived by marginalizing a joint normal distribution with the scaled inverse chi-square distribution as a prior on the variance. The same distribution is not produced by multiplying t distributions. For more details, see Gelmen et al. Bayesian Data Analaysis. 3rd edition.
FNormal

Definition at line 61 of file FStudentT.h.

Public Member Functions

FStudentT (Floats FXs, Floats JXs, double FM, double sigma, double nu, std::string name="FStudentT %1%")
Create from observations vectors. More...

FStudentT (double sumFX, double sumFX2, unsigned N, double LogJX, double FM, double sigma, double nu, std::string name="FStudentT %1%")
Create from sufficient statistics. More...

virtual double evaluate_derivative_FM () const
Evaluate derivative of negative log-density wrt $$F(M)$$. More...

virtual double evaluate_derivative_Fx (double Fx) const
Evaluate derivative of negative log-density wrt single $$F(x_i)$$. More...

Floats evaluate_derivative_FX (const Floats FXs) const
Evaluate derivative of negative log-density wrt elements of $$F(X)$$. More...

virtual double evaluate_derivative_LogJX () const
Evaluate derivative of negative log-density wrt $$\log J(X)$$. More...

virtual double evaluate_derivative_nu () const
Evaluate derivative of negative log-density wrt $$\nu$$. More...

virtual double evaluate_derivative_sigma () const
Evaluate derivative of negative log-density wrt $$\sigma$$. More...

double get_FM ()

double get_LogJX ()

unsigned get_N ()

double get_nu ()

double get_sigma ()

double get_sumFX ()
Get sufficient statistic for passed $$J(X)$$ values. More...

double get_sumFX2 ()

virtual std::string get_type_name () const override

virtual ::IMP::VersionInfo get_version_info () const override
Get information about the module and version of the object. More...

void set_FM (double v)

void set_LogJX (double v)

void set_N (unsigned v)

void set_nu (double v)

void set_sigma (double v)

void set_sumFX (double v)

void set_sumFX2 (double v)

void update_cached_values () const
Update cached intermediate values. More...

void update_sufficient_statistics (Floats FXs, Floats JXs)
Update sufficient statistics with values and derivatives. More...

Public Member Functions inherited from IMP::isd::OneDimensionalSufficientDistribution
OneDimensionalSufficientDistribution (std::string name="OneDimensionalSufficientDistribution %1%")
Constructor. More...

double evaluate () const
Get negative log-density using cached sufficient statistics. More...

double get_density () const
Get probability density using cached sufficient statistics. More...

Floats get_sufficient_statistics () const

void update_sufficient_statistics (Floats vs)
Update cached sufficient statistics from data. More...

Public Member Functions inherited from IMP::isd::Distribution
Distribution (std::string name="Distribution %1%")

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)

Protected Member Functions

virtual double do_evaluate () const override

virtual Floats do_get_sufficient_statistics () const override

virtual void do_update_sufficient_statistics (Floats FXs) override

virtual void do_update_sufficient_statistics (Floats FXs, Floats JXs)

Protected Member Functions inherited from IMP::isd::OneDimensionalSufficientDistribution
virtual double do_get_density () const

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::FStudentT::FStudentT ( Floats FXs, Floats JXs, double FM, double sigma, double nu, std::string name = "FStudentT %1%" )

Create from observations vectors.

Parameters
 [in] FXs Vector of N $$F(x)$$ observations drawn independently from the same F-t distribution. [in] JXs Vector of N derivatives of $$F(x)$$ with respect to $$X$$ vector. [in] FM Center of F-Student t with respect to $$F(x)$$. [in] sigma Scale of F-Student t with respect to $$F(x)$$. [in] nu Degrees of freedom of Student t distribution. [in] name Name.
 IMP::isd::FStudentT::FStudentT ( double sumFX, double sumFX2, unsigned N, double LogJX, double FM, double sigma, double nu, std::string name = "FStudentT %1%" )

Create from sufficient statistics.

Parameters
 [in] sumFX Sum of observations of $$F(x)$$. [in] sumFX2 Sum of observations of $$F(x)^2$$. [in] N Number of observations. [in] LogJX Log of $$J(X)$$. [in] FM Center of F-t with respect to $$F(x)$$. [in] sigma Scale of F-t with respect to $$F(x)$$. [in] nu Degrees of freedom of Student t distribution. [in] name Name.

Member Function Documentation

 virtual double IMP::isd::FStudentT::evaluate_derivative_FM ( ) const
virtual

Evaluate derivative of negative log-density wrt $$F(M)$$.

 virtual double IMP::isd::FStudentT::evaluate_derivative_Fx ( double Fx ) const
virtual

Evaluate derivative of negative log-density wrt single $$F(x_i)$$.

$$F(x_i)$$ represents an element of $$F(X)$$. Since only the sufficient statistics are stored, this value must be provided.

 Floats IMP::isd::FStudentT::evaluate_derivative_FX ( const Floats FXs ) const

Evaluate derivative of negative log-density wrt elements of $$F(X)$$.

This is equivalent to though faster than running evaluate_derivative_Fx() on every element of $$F(X)$$.

 virtual double IMP::isd::FStudentT::evaluate_derivative_LogJX ( ) const
virtual

Evaluate derivative of negative log-density wrt $$\log J(X)$$.

 virtual double IMP::isd::FStudentT::evaluate_derivative_nu ( ) const
virtual

Evaluate derivative of negative log-density wrt $$\nu$$.

 virtual double IMP::isd::FStudentT::evaluate_derivative_sigma ( ) const
virtual

Evaluate derivative of negative log-density wrt $$\sigma$$.

 double IMP::isd::FStudentT::get_sumFX ( )

Get sufficient statistic for passed $$J(X)$$ values.

Definition at line 141 of file FStudentT.h.

 virtual ::IMP::VersionInfo IMP::isd::FStudentT::get_version_info ( ) const
overridevirtual

Get information about the module and version of the object.

Reimplemented from IMP::isd::OneDimensionalSufficientDistribution.

Definition at line 149 of file FStudentT.h.

 void IMP::isd::FStudentT::update_cached_values ( ) const

Update cached intermediate values.

This method is automatically called during evaluation. If evaluating derivatives after modifying parameters but before evaluation, this method must be manually called.

 void IMP::isd::FStudentT::update_sufficient_statistics ( Floats FXs, Floats JXs )

Update sufficient statistics with values and derivatives.

Definition at line 97 of file FStudentT.h.

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