Skip to contents

Perform sparse inverse covariance estimation for the Zero Inflated Poisson lognormal model using a variational algorithm. Iterate over a range of logarithmically spaced sparsity parameter values. Use the (g)lm syntax to specify the model (including covariates and offsets).

Usage

ZIPLNnetwork(
  formula,
  data,
  subset,
  weights,
  zi = c("single", "row", "col"),
  penalties = NULL,
  control = ZIPLNnetwork_param()
)

Arguments

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 the model is called.

subset

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

weights

an optional vector of observation weights to be used in the fitting process.

zi

a character describing the model used for zero inflation, either of

  • "single" (default, one parameter shared by all counts)

  • "col" (one parameter per variable / feature)

  • "row" (one parameter per sample / individual). If covariates are specified in the formula RHS (see details) this parameter is ignored.

penalties

an optional vector of positive real number controlling the level of sparsity of the underlying network. if NULL (the default), will be set internally. See PLNnetwork_param() for additional tuning of the penalty. With the default penalty_scale = "correlation", the penalties apply on the scale of the correlations and lie between 0 and 1; until version 1.3.2 they were on the covariance scale, which PLNnetwork_param(penalty_scale = "covariance") gives back. When penalties above 1 are given without choosing the scale, they are taken as penalties on the covariance scale and converted, with a warning (see PLNnetwork_param()).

control

a list-like structure for controlling the optimization, with default generated by ZIPLNnetwork_param(). See the associated documentation for details.

Value

an R6 object with class ZIPLNnetworkfamily

Details

Covariates for the Zero-Inflation parameter (using a logistic regression model) can be specified in the formula RHS using the pipe (~ PLN effect | ZI effect) to separate covariates for the PLN part of the model from those for the Zero-Inflation part. Note that different covariates can be used for each part.

See also

Examples

data(trichoptera)
trichoptera <- prepare_data(trichoptera$Abundance, trichoptera$Covariate)
myZIPLNs <- ZIPLNnetwork(Abundance ~ 1, data = trichoptera, zi = "single")
#> 
#>  Initialization...
#>  Adjusting 30 ZI-PLN with sparse inverse covariance estimation and single specific parameter(s) in Zero inflation component.
#> 	sparsifying penalty = 0.7468446 
	sparsifying penalty = 0.6898385 
	sparsifying penalty = 0.6371838 
	sparsifying penalty = 0.5885481 
	sparsifying penalty = 0.5436247 
	sparsifying penalty = 0.5021303 
	sparsifying penalty = 0.4638031 
	sparsifying penalty = 0.4284014 
	sparsifying penalty = 0.3957019 
	sparsifying penalty = 0.3654983 
	sparsifying penalty = 0.3376001 
	sparsifying penalty = 0.3118314 
	sparsifying penalty = 0.2880296 
	sparsifying penalty = 0.2660445 
	sparsifying penalty = 0.2457376 
	sparsifying penalty = 0.2269807 
	sparsifying penalty = 0.2096554 
	sparsifying penalty = 0.1936526 
	sparsifying penalty = 0.1788713 
	sparsifying penalty = 0.1652182 
	sparsifying penalty = 0.1526072 
	sparsifying penalty = 0.1409588 
	sparsifying penalty = 0.1301996 
	sparsifying penalty = 0.1202615 
	sparsifying penalty = 0.1110821 
	sparsifying penalty = 0.1026033 
	sparsifying penalty = 0.09477166 
	sparsifying penalty = 0.08753782 
	sparsifying penalty = 0.08085613 
	sparsifying penalty = 0.07468446 

#>  DONE!