This function computes the StARS stability criteria over a path of penalties. If a path has already been computed, the functions stops with a message unless force = TRUE has been specified.

stability_selection(
  Robject,
  subsamples = NULL,
  control = PLNnetwork_param(),
  force = FALSE
)

Arguments

Robject

an object with class PLNnetworkfamily or ZIPLNnetworkfamily, i.e. an output from PLNnetwork() or ZIPLNnetwork()

subsamples

a list of vectors describing the subsamples. The number of vectors (or list length) determines th number of subsamples used in the stability selection. Automatically set to 20 subsamples with size 10*sqrt(n) if n >= 144 and 0.8*n otherwise following Liu et al. (2010) recommendations.

control

a list controlling the main optimization process in each call to PLNnetwork() or ZIPLNnetwork(). See PLN_param() or ZIPLN_param() for details.

force

force computation of the stability path, even if a previous one has been detected.

Value

the list of subsamples. The estimated probabilities of selection of the edges are stored in the fields stability_path of the initial Robject with class Networkfamily

Examples

data(trichoptera)
trichoptera <- prepare_data(trichoptera$Abundance, trichoptera$Covariate)
fits <- PLNnetwork(Abundance ~ 1, data = trichoptera)
#> 
#>  Initialization...
#>  Adjusting 30 PLN with sparse inverse covariance estimation
#> 	Joint optimization alternating gradient descent and graphical-lasso
#> 	sparsifying penalty = 7.353689 
	sparsifying penalty = 6.792388 
	sparsifying penalty = 6.273931 
	sparsifying penalty = 5.795047 
	sparsifying penalty = 5.352716 
	sparsifying penalty = 4.944148 
	sparsifying penalty = 4.566765 
	sparsifying penalty = 4.218188 
	sparsifying penalty = 3.896217 
	sparsifying penalty = 3.598823 
	sparsifying penalty = 3.324127 
	sparsifying penalty = 3.0704 
	sparsifying penalty = 2.836039 
	sparsifying penalty = 2.619566 
	sparsifying penalty = 2.419617 
	sparsifying penalty = 2.23493 
	sparsifying penalty = 2.064339 
	sparsifying penalty = 1.90677 
	sparsifying penalty = 1.761228 
	sparsifying penalty = 1.626795 
	sparsifying penalty = 1.502623 
	sparsifying penalty = 1.387929 
	sparsifying penalty = 1.28199 
	sparsifying penalty = 1.184137 
	sparsifying penalty = 1.093752 
	sparsifying penalty = 1.010267 
	sparsifying penalty = 0.9331545 
	sparsifying penalty = 0.8619276 
	sparsifying penalty = 0.7961374 
	sparsifying penalty = 0.7353689 

#>  Post-treatments
#>  DONE!
if (FALSE) { # \dontrun{
n <- nrow(trichoptera)
subs <- replicate(10, sample.int(n, size = n/2), simplify = FALSE)
stability_selection(nets, subsamples = subs)
} # }