
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 = 8.17123
sparsifying penalty = 7.547527
sparsifying penalty = 6.97143
sparsifying penalty = 6.439307
sparsifying penalty = 5.9478
sparsifying penalty = 5.49381
sparsifying penalty = 5.074472
sparsifying penalty = 4.687142
sparsifying penalty = 4.329376
sparsifying penalty = 3.998919
sparsifying penalty = 3.693685
sparsifying penalty = 3.411749
sparsifying penalty = 3.151333
sparsifying penalty = 2.910795
sparsifying penalty = 2.688616
sparsifying penalty = 2.483396
sparsifying penalty = 2.293841
sparsifying penalty = 2.118754
sparsifying penalty = 1.957031
sparsifying penalty = 1.807653
sparsifying penalty = 1.669676
sparsifying penalty = 1.542231
sparsifying penalty = 1.424514
sparsifying penalty = 1.315782
sparsifying penalty = 1.21535
sparsifying penalty = 1.122583
sparsifying penalty = 1.036897
sparsifying penalty = 0.9577517
sparsifying penalty = 0.8846473
sparsifying penalty = 0.817123
#> DONE!