# computes the model log likelihood useful for estimation of the transformed.par

### Description

The function is useful for deriving the maximum likelihood estimates of the model parameters.

### Usage

1 2 | ```
loglikelihood(x.mean,x.css,repno,transformed.par,
effect.family="gaussian",var.select=TRUE)
``` |

### Arguments

`x.mean` |
The mean matrix of the clustering types from the meancss function. |

`x.css` |
The corrected sum of squares matrix of the clustering types from the meancss function. |

`repno` |
The vector containing the number of replications of each
clustering type corresponding to the each row of |

`transformed.par` |
The vector of transformed model parameters that the data likelihood will be evaluated at. The transformation is the log for the variance parameters, the identity for the mean,
and the logit for the proportions. The length of the vector depends
on the chosen |

`effect.family` |
Distribution family of the disappearing random components. Choices are "gaussian" or "alaplace" allowing Gaussian or asymmetric Laplace family, respectively. |

`var.select` |
A logical value, |

### Details

Sometimes estimation of the model parameters is difficult,
always check the convergence of the optimisation algorithm. The
asymmetric Laplace model, `effect.family="alaplace"`

, is often more
difficult to optimise than `effect.family="gaussian"`

.

If data are standardised (having general mean zero and general variance one) the log likelihood function is usually maximised over values between -5 and 5.

The `transformed.par`

is a vector of transformed model parameters
having length 5 up to 7 depending on the chosen model.

The `transformed.par`

is *log s2, log s2_h, log s2_t, m, logit p, logit q* a vector of length 6 when using `effect.family = "gaussian"`

and `var.select=TRUE`

,

and is *log s2, log s2_h, log s2_tL, log s2_tR, m, logit p, logit q* a vector of length 7

for `effect.family="alaplace"`

and `var.select=TRUE`

.

When `var.select=FALSE`

the *q* parameter is dropped, yielding a vector
of length 5 for

`effect.family="gaussian"`

and a vector of length 6

for `effect.family="alaplace"`

.

We assumed a Bayesian linear model being

*y_{vctr}=m+h_{vct}+d_{v}*g_{vc}*t_{vc}+e_{vctr}*

where *y_{vctr}* is the available data on variable *v*,
cluster(or class) *c*, type *t*, and replicate *r*; *h_{vct}*
is the between-type error, *t_{vc}* is the disappearing random component controlled by the Bernoulli variables *d_{v}* with success probability *q* and *g_{vc}* with
success probability *p*; and *e_{vctr}* is the between-replicate error. The types inside a cluster (or class) share the same *t_{vc}*, but may arise with a different *h_{vct}*.

The model parameters has natural interpretations, *s2* is the
between replicate error variance; *s2_h* is the variance of
between-type error; *s2_t* is the variance of
the disappearing random component which is decomposed to
*s2_tL*, *s2_tR* the left and the right tail
variances if the model is asymmetric Laplace; *m* is the general
level; *p* is the proportion of active variable-cluster (or variable-class) combinations, and
*q* is the proportion of the active variables. For more details see Vahid Partovi Nia and Anthony C. Davison (2012)

### References

Vahid Partovi Nia and Anthony C. Davison (2012). High-Dimensional Bayesian Clustering with Variable Selection: The R Package bclust. Journal of Statistical Software, 47(5), 1-22. URL http://www.jstatsoft.org/v47/i05/

### See Also

bclust,bdiscrim, meancss.

### Examples

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | ```
data(gaelle)
gaelle.id<-rep(1:14,c(3,rep(4,13)))
# first 3 rows replication of ColWT, 4 for the rest
mc.gaelle<-meancss(gaelle,gaelle.id)
optimfunc<-function(theta)
{
-loglikelihood(x.mean=mc.gaelle$mean,x.css=mc.gaelle$css,
repno=mc.gaelle$repno,transformed.par=theta)#compute - log likelihood
}
transpar<-optim(rep(0,6),optimfunc,method="BFGS")$par
#gives argmin(-loglikelihood)
#put a vector of correct length for the evaluation of the likelihood
plot(bclust(gaelle,transformed.par=transpar))
``` |