
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. With the defaultpenalty_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, whichPLNnetwork_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 (seePLNnetwork_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
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 = 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!