
Zero Inflated Sparse Poisson lognormal model for network inference
Source:R/ZIPLNnetwork.R
ZIPLNnetwork.RdPerform 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.- 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
The classes ZIPLNfit and ZIPLNnetworkfamily
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 = 6.993458
sparsifying penalty = 6.459654
sparsifying penalty = 5.966594
sparsifying penalty = 5.511169
sparsifying penalty = 5.090506
sparsifying penalty = 4.701952
sparsifying penalty = 4.343056
sparsifying penalty = 4.011554
sparsifying penalty = 3.705356
sparsifying penalty = 3.422529
sparsifying penalty = 3.16129
sparsifying penalty = 2.919992
sparsifying penalty = 2.697111
sparsifying penalty = 2.491243
sparsifying penalty = 2.301089
sparsifying penalty = 2.125449
sparsifying penalty = 1.963215
sparsifying penalty = 1.813364
sparsifying penalty = 1.674952
sparsifying penalty = 1.547104
sparsifying penalty = 1.429015
sparsifying penalty = 1.31994
sparsifying penalty = 1.21919
sparsifying penalty = 1.12613
sparsifying penalty = 1.040173
sparsifying penalty = 0.9607779
sparsifying penalty = 0.8874426
sparsifying penalty = 0.8197048
sparsifying penalty = 0.7571375
sparsifying penalty = 0.6993458
#> DONE!