An S4 class to represent a multivariate diagonal Gaussian mixture model. The model corresponds to the following generative model: $$ \pi \sim Dirichlet(\alpha)$$ $$ Z_i \sim \mathcal{M}(1,\pi)$$ $$ \lambda_k^{(d)} \sim \mathcal{G}(\kappa,\beta)$$ $$ \mu_k^{(d)} \sim \mathcal{N}(\mu,(\tau \lambda_k)^{-1})$$ $$ X_{i.}|Z_{ik}=1 \sim \mathcal{N}(\mu_k,\lambda_{k}^{-1})$$ with \(\mathcal{G}(\kappa,\beta)\) the Gamma distribution with shape parameter \(\kappa\) and rate parameter \(\beta\). These classes mainly store the prior parameters value (\(\alpha,\tau,\kappa\beta,\mu\)) of this generative model. The DiagGmm-class must be used when fitting a simple Diagonal Gaussian Mixture Model whereas the DiagGmmPrior-class must be sued when fitting a CombinedModels-class.

DiagGmmPrior(tau = 0.01, kappa = 1, beta = NaN, mu = NaN)

DiagGmm(alpha = 1, tau = 0.01, kappa = 1, beta = NaN, mu = NaN)

Arguments

tau

Prior parameter (inverse variance), (default 0.01)

kappa

Prior parameter (gamma shape), (default to 1)

beta

Prior parameter (gamma rate), (default to NaN, in this case beta will be estimated from data as 0.1 time the mean of X columns variances)

mu

Prior for the means (vector of size D), (default to NaN, in this case mu will be estimated from data as the mean of X)

alpha

Dirichlet prior parameter over the cluster proportions (default to 1)

Value

a DiagGmmPrior-class object a DiagGmm-class object

References

Bertoletti, Marco & Friel, Nial & Rastelli, Riccardo. (2014). Choosing the number of clusters in a finite mixture model using an exact Integrated Completed Likelihood criterion. METRON. 73. 10.1007/s40300-015-0064-5. #'

Examples

DiagGmmPrior()
#> An object of class "DiagGmmPrior"
#> Slot "tau":
#> [1] 0.01
#> 
#> Slot "kappa":
#> [1] 1
#> 
#> Slot "beta":
#> [1] NaN
#> 
#> Slot "mu":
#>      [,1]
#> [1,]  NaN
#> 
DiagGmmPrior(tau = 0.1)
#> An object of class "DiagGmmPrior"
#> Slot "tau":
#> [1] 0.1
#> 
#> Slot "kappa":
#> [1] 1
#> 
#> Slot "beta":
#> [1] NaN
#> 
#> Slot "mu":
#>      [,1]
#> [1,]  NaN
#> 
DiagGmm()
#> An object of class "DiagGmm"
#> Slot "alpha":
#> [1] 1
#> 
#> Slot "tau":
#> [1] 0.01
#> 
#> Slot "kappa":
#> [1] 1
#> 
#> Slot "beta":
#> [1] NaN
#> 
#> Slot "mu":
#>      [,1]
#> [1,]  NaN
#> 
DiagGmm(tau = 0.1)
#> An object of class "DiagGmm"
#> Slot "alpha":
#> [1] 1
#> 
#> Slot "tau":
#> [1] 0.1
#> 
#> Slot "kappa":
#> [1] 1
#> 
#> Slot "beta":
#> [1] NaN
#> 
#> Slot "mu":
#>      [,1]
#> [1,]  NaN
#>