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).

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 lm 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.

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 = 7.929514 
	sparsifying penalty = 7.324261 
	sparsifying penalty = 6.765206 
	sparsifying penalty = 6.248824 
	sparsifying penalty = 5.771856 
	sparsifying penalty = 5.331295 
	sparsifying penalty = 4.924362 
	sparsifying penalty = 4.54849 
	sparsifying penalty = 4.201308 
	sparsifying penalty = 3.880625 
	sparsifying penalty = 3.584421 
	sparsifying penalty = 3.310825 
	sparsifying penalty = 3.058112 
	sparsifying penalty = 2.824689 
	sparsifying penalty = 2.609083 
	sparsifying penalty = 2.409934 
	sparsifying penalty = 2.225986 
	sparsifying penalty = 2.056078 
	sparsifying penalty = 1.89914 
	sparsifying penalty = 1.75418 
	sparsifying penalty = 1.620285 
	sparsifying penalty = 1.49661 
	sparsifying penalty = 1.382375 
	sparsifying penalty = 1.276859 
	sparsifying penalty = 1.179398 
	sparsifying penalty = 1.089375 
	sparsifying penalty = 1.006224 
	sparsifying penalty = 0.9294201 
	sparsifying penalty = 0.8584783 
	sparsifying penalty = 0.7929514 

#>  DONE!