# gamlssMX: Function to fit finite mixture of gamlss family distributions In gamlss.mx: Fitting Mixture Distributions with GAMLSS

## Description

The function `gamlssMX` is design for fitting a K fold non parametric mixture of gamlss family distributions.

## Usage

 ``` 1 2 3 4 5 6 7 8 9 10``` ```gamlssMX(formula = formula(data), pi.formula = ~1, family = "NO", weights, K = 2, prob = NULL, data, control = MX.control(...), g.control = gamlss.control(trace = FALSE, ...), zero.component = FALSE, ...) gamlssMXfits(n = 5, formula = formula(data), pi.formula = ~1, family = "NO", weights, K = 2, prob = NULL, data, control = MX.control(), g.control = gamlss.control(trace = FALSE), zero.component = FALSE, ... ) ```

## Arguments

 `formula` This argument it should be a formula (or a list of formulea of length K) for modelling the `mu` parameter of the model. Note that modelling the rest of the distributional parameters it can be done by using the usual `...` which passes the arguments to `gamlss()` `pi.formula` This should be a formula for modelling the prior probabilities as a function of explanatory variables. Note that no smoothing of other additive terms are allowed here only the usual linear terms. The modelling here is done using the `multinom()` function from package `nnet` `family` This should be a `gamlss.family` distribution (or a list of distributions). Note that if different distributions are used here their parameters should be comparable for ease of interpretation. `weights` prior weights if needed `K` the number of finite mixtures with default `K=2` `prob` prior probabilities if required for starting values `data` the data frame nedded for the fit. Note that this is compulsory if `pi.formula` is used. `control` This argument sets the control parameters for the EM iterations algorithm. The default setting are given in the `MX.control` function `g.control` This argument can be used to pass to `gamlss()` control parameters, as in `gamlss.control` `n` the number of fits required in `gamlssMXfits()` `zero.component` whether zero component models exist, default is `FALSE` `...` for extra arguments

## Author(s)

Mikis Stasinopoulos and Bob Rigby

## References

Rigby, R. A. and Stasinopoulos D. M. (2005). Generalized additive models for location, scale and shape,(with discussion), Appl. Statist., 54, part 3, pp 507-554.

Rigby, R. A., Stasinopoulos, D. M., Heller, G. Z., and De Bastiani, F. (2019) Distributions for modeling location, scale, and shape: Using GAMLSS in R, Chapman and Hall/CRC. An older version can be found in https://www.gamlss.com/.

Stasinopoulos D. M. Rigby R.A. (2007) Generalized additive models for location scale and shape (GAMLSS) in R. Journal of Statistical Software, Vol. 23, Issue 7, Dec 2007, https://www.jstatsoft.org/v23/i07/.

Stasinopoulos D. M., Rigby R.A., Heller G., Voudouris V., and De Bastiani F., (2017) Flexible Regression and Smoothing: Using GAMLSS in R, Chapman and Hall/CRC.

`gamlss`, `gamlss.family`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17``` ```library(MASS) data(geyser) # fitting 2 finite normal mixtures m1<-gamlssMX(waiting~1,data=geyser,family=NO, K=2) #fitting 2 finite gamma mixtures m2<-gamlssMX(waiting~1,data=geyser,family=GA, K=2) # fitting a model for pi # first create a data frame geyser1<-matrix(0,ncol=2, nrow=298) geyser1[,1] <-geyser\$waiting[-1] geyser1[,2] <-geyser\$duration[-299] colnames(geyser1)<- c("waiting", "duration") geyser1 <-data.frame(geyser1) # get the best of 5 fits m3<-gamlssMXfits(n=5, waiting~1, pi.formula=~duration, data=geyser1,family=NO, K=2) m3 ```