Fit the mixture variants of the Poisson lognormal with a variational algorithm. Use the (g)lm syntax for model specification (covariates, offsets).

`PLNmixture(formula, data, subset, clusters = 1:5, control = PLNmixture_param())`

- formula
an object of class "formula": a symbolic description of the model to be fitted.

- data
an optional data frame, list or environment (or object coercible by as.data.frame to a data frame) containing the variables in the model. If not found in data, the variables are taken from environment(formula), typically the environment from which lm is called.

- subset
an optional vector specifying a subset of observations to be used in the fitting process.

- clusters
a vector of integer containing the successive number of clusters (or components) to be considered

- control
a list-like structure for controlling the optimization, with default generated by

`PLNmixture_param()`

. See the associated documentation for details.

an R6 object with class `PLNmixturefamily`

, which contains
a collection of models with class `PLNmixturefit`

The classes `PLNmixturefamily`

, `PLNmixturefit`

and `PLNmixture_param()`

```
## Use future to dispatch the computations on 2 workers
if (FALSE) { # \dontrun{
future::plan("multisession", workers = 2)
} # }
data(trichoptera)
trichoptera <- prepare_data(trichoptera$Abundance, trichoptera$Covariate)
myMixtures <- PLNmixture(Abundance ~ 1 + offset(log(Offset)), clusters = 1:4, data = trichoptera,
control = PLNmixture_param(smoothing = 'none'))
#>
#> Initialization...
#>
#> Adjusting 4 PLN mixture models.
#> number of cluster = 1
number of cluster = 2
number of cluster = 3
number of cluster = 4
#> Post-treatments
#> DONE!
# Shut down parallel workers
if (FALSE) { # \dontrun{
future::plan("sequential")
} # }
```