The function PLNnetwork() produces an instance of this class.

This class comes with a set of methods, some of them being useful for the user: See the documentation for getBestModel(), getModel() and plot()

See also

The function PLNnetwork(), the class PLNnetworkfit

Super class

PLNmodels::PLNfamily -> PLNnetworkfamily

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 (approximated 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

Usage

PLNnetworkfamily$new(
  penalties,
  responses,
  covariates,
  offsets,
  weights,
  formula,
  control
)

Arguments

penalties

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

responses

the matrix of responses common to every models

covariates

the matrix of covariates common to every models

offsets

the matrix of offsets common to every models

weights

the vector of observation weights

formula

model formula used for fitting, extracted from the formula in the upper-level call

control

a list for controlling the optimization.

Returns

Update current PLNnetworkfit with smart starting values


Method optimize()

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

Usage

PLNnetworkfamily$optimize(config)

Arguments

config

a list for controlling the optimization.


Method stability_selection()

Compute the stability path by stability selection

Usage

PLNnetworkfamily$stability_selection(
  subsamples = NULL,
  control = PLNnetwork_param()
)

Arguments

subsamples

a list of vectors describing the subsamples. The number of vectors (or list length) determines the number of subsamples used in the stability selection. Automatically set to 20 subsamples with size 10*sqrt(n) if n >= 144 and 0.8*n otherwise following Liu et al. (2010) recommendations.

control

a list controlling the main optimization process in each call to PLNnetwork. See PLNnetwork() for details.


Method coefficient_path()

Extract the regularization path of a PLNnetworkfamily

Usage

PLNnetworkfamily$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


Method getBestModel()

Extract the best network in the family according to some criteria

Usage

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

Arguments

crit

character. Criterion used to perform the selection. Is "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.


Method plot()

Display various outputs (goodness-of-fit criteria, robustness, diagnostic) associated with a collection of PLNnetwork fits (a PLNnetworkfamily)

Usage

PLNnetworkfamily$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.

Returns

a ggplot graph


Method plot_stars()

Plot stability path

Usage

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

Arguments

stability

scalar: the targeted level of stability in stability plot. Default is 0.9.

log.x

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

Returns

a ggplot graph


Method plot_objective()

Plot objective value of the optimization problem along the penalty path

Usage

PLNnetworkfamily$plot_objective()

Returns

a ggplot graph


Method show()

User friendly print method

Usage

PLNnetworkfamily$show()


Method clone()

The objects of this class are cloneable with this method.

Usage

PLNnetworkfamily$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

data(trichoptera)
trichoptera <- prepare_data(trichoptera$Abundance, trichoptera$Covariate)
fits <- PLNnetwork(Abundance ~ 1, data = trichoptera)
#> 
#>  Initialization...
#>  Adjusting 30 PLN with sparse inverse covariance estimation
#> 	Joint optimization alternating gradient descent and graphical-lasso
#> 	sparsifying penalty = 7.541317 
	sparsifying penalty = 6.965695 
	sparsifying penalty = 6.43401 
	sparsifying penalty = 5.942907 
	sparsifying penalty = 5.48929 
	sparsifying penalty = 5.070297 
	sparsifying penalty = 4.683286 
	sparsifying penalty = 4.325815 
	sparsifying penalty = 3.995629 
	sparsifying penalty = 3.690646 
	sparsifying penalty = 3.408942 
	sparsifying penalty = 3.148741 
	sparsifying penalty = 2.9084 
	sparsifying penalty = 2.686404 
	sparsifying penalty = 2.481353 
	sparsifying penalty = 2.291954 
	sparsifying penalty = 2.117011 
	sparsifying penalty = 1.955421 
	sparsifying penalty = 1.806166 
	sparsifying penalty = 1.668303 
	sparsifying penalty = 1.540962 
	sparsifying penalty = 1.423342 
	sparsifying penalty = 1.3147 
	sparsifying penalty = 1.21435 
	sparsifying penalty = 1.121659 
	sparsifying penalty = 1.036044 
	sparsifying penalty = 0.9569638 
	sparsifying penalty = 0.8839195 
	sparsifying penalty = 0.8164507 
	sparsifying penalty = 0.7541317 

#>  Post-treatments
#>  DONE!
class(fits)
#> [1] "PLNnetworkfamily" "PLNfamily"        "R6"