This class represents the Gamma distribution. More...

## Public Member Functions

Construct the Gamma distribution with the given number of dimensions (default 0); each parameter will be initialized to 0. More...

GammaDistribution (const arma::mat &data, const double tol=1e-8)
Construct the Gamma distribution, training on the given parameters. More...

GammaDistribution (const arma::vec &alpha, const arma::vec &beta)
Construct the Gamma distribution given two vectors alpha and beta. More...

Destructor. More...

double Alpha (const size_t dim) const
Get the alpha parameter of the given dimension. More...

double & Alpha (const size_t dim)
Modify the alpha parameter of the given dimension. More...

double Beta (const size_t dim) const
Get the beta parameter of the given dimension. More...

double & Beta (const size_t dim)
Modify the beta parameter of the given dimension. More...

size_t Dimensionality () const
Get the dimensionality of the distribution. More...

void LogProbability (const arma::mat &observations, arma::vec &logProbabilities) const
This function returns the logarithm of the probability of a group of observations. More...

double LogProbability (double x, const size_t dim) const
This function returns the logarithm of the probability of a single observation. More...

void Probability (const arma::mat &observations, arma::vec &probabilities) const
This function returns the probability of a group of observations. More...

double Probability (double x, const size_t dim) const
This is a shortcut to the Probability(arma::mat&, arma::vec&) function for when we want to evaluate only the probability of one dimension of the gamma. More...

arma::vec Random () const
This function returns an observation of this distribution. More...

void Train (const arma::mat &rdata, const double tol=1e-8)
This function trains (fits distribution parameters) to new data or the dataset the object owns. More...

void Train (const arma::mat &observations, const arma::vec &probabilities, const double tol=1e-8)
Fits an alpha and beta parameter according to observation probabilities. More...

void Train (const arma::vec &logMeanxVec, const arma::vec &meanLogxVec, const arma::vec &meanxVec, const double tol=1e-8)
This function trains (fits distribution parameters) to a dataset with pre-computed statistics logMeanx, meanLogx, meanx for each dimension. More...

## Detailed Description

This class represents the Gamma distribution.

It supports training a Gamma distribution on a given dataset and accessing the fitted alpha and beta parameters.

This class supports multidimensional Gamma distributions; however, it is assumed that each dimension is independent; therefore, a multidimensional Gamma distribution here may be seen as a set of independent single-dimensional Gamma distributions—and the parameters are estimated under this assumption.

The estimation algorithm used can be found in the following paper:

@techreport{minka2002estimating,
title={Estimating a {G}amma distribution},
author={Minka, Thomas P.},
institution={Microsoft Research},
year={2002}
}

Definition at line 53 of file gamma_distribution.hpp.

## Constructor & Destructor Documentation

 GammaDistribution ( const size_t dimensionality = 0 )

Construct the Gamma distribution with the given number of dimensions (default 0); each parameter will be initialized to 0.

Parameters
 dimensionality Number of dimensions.

 GammaDistribution ( const arma::mat & data, const double tol = 1e-8 )

Construct the Gamma distribution, training on the given parameters.

Parameters
 data Data to train the distribution on. tol Convergence tolerance. This is not an absolute measure: It will stop the approximation once the change in the value is smaller than tol.

 GammaDistribution ( const arma::vec & alpha, const arma::vec & beta )

Construct the Gamma distribution given two vectors alpha and beta.

Parameters
 alpha The vector of alphas, one per dimension. beta The vector of betas, one per dimension.

inline

Destructor.

Definition at line 85 of file gamma_distribution.hpp.

## ◆ Alpha() [1/2]

 double Alpha ( const size_t dim ) const
inline

Get the alpha parameter of the given dimension.

Definition at line 198 of file gamma_distribution.hpp.

## ◆ Alpha() [2/2]

 double& Alpha ( const size_t dim )
inline

Modify the alpha parameter of the given dimension.

Definition at line 200 of file gamma_distribution.hpp.

## ◆ Beta() [1/2]

 double Beta ( const size_t dim ) const
inline

Get the beta parameter of the given dimension.

Definition at line 203 of file gamma_distribution.hpp.

## ◆ Beta() [2/2]

 double& Beta ( const size_t dim )
inline

Modify the beta parameter of the given dimension.

Definition at line 205 of file gamma_distribution.hpp.

## ◆ Dimensionality()

 size_t Dimensionality ( ) const
inline

Get the dimensionality of the distribution.

Definition at line 208 of file gamma_distribution.hpp.

## ◆ LogProbability() [1/2]

 void LogProbability ( const arma::mat & observations, arma::vec & logProbabilities ) const

This function returns the logarithm of the probability of a group of observations.

The logarithm of the probability of a value x is for one dimension. This implementation assumes each dimension is independent, so the product rule is used.

Parameters
 observations Matrix of observations, one per column. logProbabilities Column vector of log probabilities, one per observation.

## ◆ LogProbability() [2/2]

 double LogProbability ( double x, const size_t dim ) const

This function returns the logarithm of the probability of a single observation.

Parameters
 x The 1-dimensional observation. dim The dimension for which to calculate the probability.

## ◆ Probability() [1/2]

 void Probability ( const arma::mat & observations, arma::vec & probabilities ) const

This function returns the probability of a group of observations.

The probability of the value x is for one dimension. This implementation assumes each dimension is independent, so the product rule is used.

Parameters
 observations Matrix of observations, one per column. probabilities Column vector of probabilities, one per observation.

## ◆ Probability() [2/2]

 double Probability ( double x, const size_t dim ) const

This is a shortcut to the Probability(arma::mat&, arma::vec&) function for when we want to evaluate only the probability of one dimension of the gamma.

Parameters
 x The 1-dimensional observation. dim The dimension for which to calculate the probability.

## ◆ Random()

 arma::vec Random ( ) const

This function returns an observation of this distribution.

## ◆ Train() [1/3]

 void Train ( const arma::mat & rdata, const double tol = 1e-8 )

This function trains (fits distribution parameters) to new data or the dataset the object owns.

Parameters
 rdata Reference data to fit parameters to. tol Convergence tolerance. This is not an absolute measure: It will stop the approximation once the change in the value is smaller than tol.

## ◆ Train() [2/3]

 void Train ( const arma::mat & observations, const arma::vec & probabilities, const double tol = 1e-8 )

Fits an alpha and beta parameter according to observation probabilities.

This method is not yet implemented.

Parameters
 observations The reference data, one observation per column. probabilities The probability of each observation. One value per column of the observations matrix. tol Convergence tolerance. This is not an absolute measure: It will stop the approximation once the change in the value is smaller than tol.

## ◆ Train() [3/3]

 void Train ( const arma::vec & logMeanxVec, const arma::vec & meanLogxVec, const arma::vec & meanxVec, const double tol = 1e-8 )

This function trains (fits distribution parameters) to a dataset with pre-computed statistics logMeanx, meanLogx, meanx for each dimension.

Parameters
 logMeanxVec Is each dimension's logarithm of the mean (log(mean(x))). meanLogxVec Is each dimension's mean of logarithms (mean(log(x))). meanxVec Is each dimension's mean (mean(x)). tol Convergence tolerance. This is not an absolute measure: It will stop the approximation once the change in the value is smaller than tol.

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