The functions `PLNnetwork()`

and `ZIPLNnetwork()`

both produce an instance of this class, which can be thought of as a vector of `PLNnetworkfit`

s `ZIPLNfit_sparse`

s (indexed by penalty parameter)

This class comes with a set of methods mostly used to compare
network fits (in terms of goodness of fit) or extract one from
the family (based on penalty parameter and/or goodness of it).
See the documentation for `getBestModel()`

,
`getModel()`

and plot() for the user-facing ones.

## Active bindings

`penalties`

the sparsity level of the network in the successively fitted models

`stability_path`

the stability path of each edge as returned by the stars procedure

`stability`

mean edge stability along the penalty path

`criteria`

a data frame with the values of some criteria (variational log-likelihood, (E)BIC, ICL and R2, stability) for the collection of models / fits
BIC, ICL and EBIC are defined so that they are on the same scale as the model log-likelihood, i.e. with the form, loglik - 0.5 penalty

## Methods

## Inherited methods

### Method `new()`

Initialize all models in the collection

#### Arguments

`penalties`

a vector of positive real number controlling the level of sparsity of the underlying network.

`data`

a named list used internally to carry the data matrices

`control`

a list for controlling the optimization.

#### Returns

Update all network fits in the family with smart starting values

Call to the C++ optimizer on all models of the collection

#### Usage

`Networkfamily$optimize(data, config)`

#### Arguments

`data`

a named list used internally to carry the data matrices

`config`

a list for controlling the optimization.

Extract the regularization path of a `Networkfamily`

#### Usage

`Networkfamily$coefficient_path(precision = TRUE, corr = TRUE)`

#### Arguments

`precision`

Logical. Should the regularization path be extracted from the precision matrix Omega (`TRUE`

, default) or from the variance matrix Sigma (`FALSE`

)

`corr`

Logical. Should the matrix be transformed to (partial) correlation matrix before extraction? Defaults to `TRUE`

Extract the best network in the family according to some criteria

#### Usage

`Networkfamily$getBestModel(crit = c("BIC", "EBIC", "StARS"), stability = 0.9)`

#### Arguments

`crit`

character. Criterion used to perform the selection. If "StARS" is chosen but `$stability`

field is empty, will compute stability path.

`stability`

Only used for "StARS" criterion. A scalar indicating the target stability (= 1 - 2 beta) at which the network is selected. Default is `0.9`

.

#### Details

For BIC and EBIC criteria, higher is better.

Display various outputs (goodness-of-fit criteria, robustness, diagnostic) associated with a collection of network fits (a `Networkfamily`

)

#### Usage

```
Networkfamily$plot(
criteria = c("loglik", "pen_loglik", "BIC", "EBIC"),
reverse = FALSE,
log.x = TRUE
)
```

#### Arguments

`criteria`

vector of characters. The criteria to plot in `c("loglik", "pen_loglik", "BIC", "EBIC")`

. Defaults to all of them.

`reverse`

A logical indicating whether to plot the value of the criteria in the "natural" direction
(loglik - 0.5 penalty) or in the "reverse" direction (-2 loglik + penalty). Default to FALSE, i.e use the
natural direction, on the same scale as the log-likelihood.

`log.x`

logical: should the x-axis be represented in log-scale? Default is `TRUE`

.

### Method `plot_stars()`

Plot stability path

#### Usage

`Networkfamily$plot_stars(stability = 0.9, log.x = TRUE)`

#### Arguments

`stability`

scalar: the targeted level of stability using stability selection. Default is `0.9`

.

`log.x`

logical: should the x-axis be represented in log-scale? Default is `TRUE`

.

### Method `plot_objective()`

Plot objective value of the optimization problem along the penalty path

#### Usage

`Networkfamily$plot_objective()`

### Method `show()`

User friendly print method

### Method `clone()`

The objects of this class are cloneable with this method.

#### Usage

`Networkfamily$clone(deep = FALSE)`

#### Arguments

`deep`

Whether to make a deep clone.