`R/ZIPLNnetwork.R`

`ZIPLNnetwork.Rd`

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()
)
```

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

an R6 object with class `ZIPLNnetworkfamily`

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.

The classes `ZIPLNfit`

and `ZIPLNnetworkfamily`

```
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.69066
sparsifying penalty = 7.103638
sparsifying penalty = 6.561423
sparsifying penalty = 6.060596
sparsifying penalty = 5.597996
sparsifying penalty = 5.170705
sparsifying penalty = 4.77603
sparsifying penalty = 4.41148
sparsifying penalty = 4.074755
sparsifying penalty = 3.763733
sparsifying penalty = 3.47645
sparsifying penalty = 3.211096
sparsifying penalty = 2.965995
sparsifying penalty = 2.739604
sparsifying penalty = 2.530492
sparsifying penalty = 2.337342
sparsifying penalty = 2.158934
sparsifying penalty = 1.994145
sparsifying penalty = 1.841933
sparsifying penalty = 1.70134
sparsifying penalty = 1.571478
sparsifying penalty = 1.451529
sparsifying penalty = 1.340735
sparsifying penalty = 1.238398
sparsifying penalty = 1.143872
sparsifying penalty = 1.056561
sparsifying penalty = 0.9759147
sparsifying penalty = 0.901424
sparsifying penalty = 0.832619
sparsifying penalty = 0.769066
#> DONE!
```