IMP
2.0.1
The Integrative Modeling Platform
|
MultivariateFNormalSufficient. More...
#include <IMP/isd/MultivariateFNormalSufficient.h>
Public Member Functions | |
MultivariateFNormalSufficient (const MatrixXd &FX, double JF, const VectorXd &FM, const MatrixXd &Sigma, double factor=1) | |
MultivariateFNormalSufficient (const VectorXd &Fbar, double JF, const VectorXd &FM, int Nobs, const MatrixXd &W, const MatrixXd &Sigma, double factor=1) | |
double | density () const |
double | evaluate () const |
double | evaluate_derivative_factor () const |
VectorXd | evaluate_derivative_FM () const |
MatrixXd | evaluate_derivative_Sigma () const |
MatrixXd | evaluate_second_derivative_FM_FM () const |
MatrixXd | evaluate_second_derivative_FM_Sigma (unsigned l) const |
MatrixXd | evaluate_second_derivative_Sigma_Sigma (unsigned k, unsigned l) const |
double | get_factor () const |
VectorXd | get_Fbar () const |
VectorXd | get_FM () const |
MatrixXd | get_FX () const |
double | get_jacobian () const |
double | get_mean_square_residuals () const |
double | get_minus_exponent () const |
double | get_minus_log_jacobian () const |
double | get_minus_log_normalization () const |
MatrixXd | get_Sigma () const |
double | get_Sigma_condition_number () const |
VectorXd | get_Sigma_eigenvalues () const |
MatrixXd | get_W () const |
void | reset_flags () |
void | set_factor (double f) |
void | set_Fbar (const VectorXd &f) |
void | set_FM (const VectorXd &f) |
void | set_FX (const MatrixXd &f) |
void | set_jacobian (double f) |
void | set_minus_log_jacobian (double f) |
void | set_Sigma (const MatrixXd &f) |
void | set_use_cg (bool use, double tol) |
void | set_W (const MatrixXd &f) |
MatrixXd | solve (MatrixXd B) const |
void | stats () const |
Public Member Functions inherited from IMP::base::Object | |
virtual void | clear_caches () |
virtual IMP::base::VersionInfo | get_version_info () const =0 |
Get information about the module and version of the object. | |
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) |
Additional Inherited Members | |
Protected Member Functions inherited from IMP::base::Object | |
Object (std::string name) | |
Construct an object with the given name. More... | |
Related Functions inherited from IMP::base::Object | |
typedef IMP::base::Vector < IMP::base::WeakPointer < Object > > | ObjectsTemp |
Probability density function and -log(p) of multivariate normal distribution of N M-variate observations.
\[ p(x_1,\cdots,x_N|\mu,F,\Sigma) = \left((2\pi\sigma^2)^M|\Sigma|\right)^{-N/2} J(F) \exp\left(-\frac{1}{2\sigma^2} \sum_{i=1}^N {}^t(F(\mu) - F(x_i))\Sigma^{-1}(F(\mu)-F(x_i)) \right) \]
which is implemented as
\[ p(x_1,\cdots,x_N|\mu,F,\Sigma) = ((2\pi\sigma^2)^M|\Sigma|)^{-N/2} J(F) \exp\left(-\frac{N}{2\sigma^2} {}^t\epsilon \Sigma^{-1} \epsilon\right) \exp\left(-\frac{1}{2\sigma^2} \operatorname{tr}(W\Sigma^{-1})\right) \]
where
\[\epsilon = (F(\mu)- \overline{F(x)}) \quad \overline{F(x)} = \frac{1}{N} \sum_{i=1}^N F(x_i)\]
and
\[W=\sum_{i=1}^N(F(x_i)-\overline{F(x)}){}^t(F(x_i)-\overline{F(x)}) \]
\(\sigma\) is a multiplicative scaling factor that factors out of the \(\Sigma\) covariance matrix. It is set to 1 by default and its intent is to avoid inverting the $$ matrix unless necessary.
Set J(F) to 1 if you want the multivariate normal distribution. The distribution is normalized with respect to the matrix variable X. The Sufficient statistics are calculated at initialization.
Example: if F is the log function, the multivariate F-normal distribution is the multivariate lognormal distribution with mean \(\mu\) and standard deviation \(\Sigma\).
Definition at line 88 of file MultivariateFNormalSufficient.h.
IMP::isd::MultivariateFNormalSufficient::MultivariateFNormalSufficient | ( | const MatrixXd & | FX, |
double | JF, | ||
const VectorXd & | FM, | ||
const MatrixXd & | Sigma, | ||
double | factor = 1 |
||
) |
Initialize with all observed data
[in] | FX | F(X) matrix of observations with M columns and N rows. |
[in] | JF | J(F) determinant of Jacobian of F with respect to observation matrix X. |
[in] | FM | F(M) mean vector \(F(\mu)\) of size M. |
[in] | Sigma | : MxM variance-covariance matrix \(\Sigma\). |
[in] | factor | : multiplicative factor (default 1) |
IMP::isd::MultivariateFNormalSufficient::MultivariateFNormalSufficient | ( | const VectorXd & | Fbar, |
double | JF, | ||
const VectorXd & | FM, | ||
int | Nobs, | ||
const MatrixXd & | W, | ||
const MatrixXd & | Sigma, | ||
double | factor = 1 |
||
) |
Initialize with sufficient statistics
[in] | Fbar | : M-dimensional vector of mean observations. |
[in] | JF | J(F) determinant of Jacobian of F with respect to observation matrix X. |
[in] | FM | F(M) : M-dimensional true mean vector \(\mu\). |
[in] | Nobs | : number of observations for each variable. |
[in] | W | : MxM matrix of sample variance-covariances. |
[in] | Sigma | : MxM variance-covariance matrix Sigma. |
[in] | factor | : multiplicative factor (default 1) |