Display various outputs (goodness-of-fit criteria, robustness, diagnostic) associated with a collection of PLNnetwork fits (a PLNnetworkfamily)

# S3 method for PLNnetworkfamily
plot(
  x,
  type = c("criteria", "stability", "diagnostic"),
  criteria = c("loglik", "pen_loglik", "BIC", "EBIC"),
  reverse = FALSE,
  log.x = TRUE,
  stability = 0.9,
  ...
)

Arguments

x

an R6 object with class PLNnetworkfamily

type

a character, either "criteria", "stability" or "diagnostic" for the type of plot.

criteria

vector of characters. The criteria to plot in c("loglik", "BIC", "ICL", "R_squared", "EBIC", "pen_loglik"). Default is c("loglik", "pen_loglik", "BIC", "EBIC"). Only relevant when type = "criteria".

reverse

A logical indicating whether to plot the value of the criteria in the "natural" direction (loglik - 0.5 penalty) or in the "reverse" direction (-2 loglik + penalty). Default to FALSE, i.e use the natural direction, on the same scale as the log-likelihood.

log.x

logical: should the x-axis be represented in log-scale? Default is TRUE.

stability

scalar: the targeted level of stability in stability plot. Default is .9.

...

additional parameters for S3 compatibility. Not used

Value

Produces either a diagnostic plot (with type = 'diagnostic'), a stability plot (with type = 'stability') or the evolution of the criteria of the different models considered (with type = 'criteria', the default).

Details

The BIC and ICL criteria have the form 'loglik - 1/2 * penalty' so that they are on the same scale as the model log-likelihood. You can change this direction and use the alternate form '-2*loglik + penalty', as some authors do, by setting reverse = TRUE.

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.54443 
	sparsifying penalty = 6.96857 
	sparsifying penalty = 6.436665 
	sparsifying penalty = 5.94536 
	sparsifying penalty = 5.491556 
	sparsifying penalty = 5.07239 
	sparsifying penalty = 4.685219 
	sparsifying penalty = 4.3276 
	sparsifying penalty = 3.997278 
	sparsifying penalty = 3.692169 
	sparsifying penalty = 3.410349 
	sparsifying penalty = 3.15004 
	sparsifying penalty = 2.9096 
	sparsifying penalty = 2.687513 
	sparsifying penalty = 2.482377 
	sparsifying penalty = 2.2929 
	sparsifying penalty = 2.117885 
	sparsifying penalty = 1.956228 
	sparsifying penalty = 1.806911 
	sparsifying penalty = 1.668991 
	sparsifying penalty = 1.541598 
	sparsifying penalty = 1.42393 
	sparsifying penalty = 1.315242 
	sparsifying penalty = 1.214851 
	sparsifying penalty = 1.122122 
	sparsifying penalty = 1.036472 
	sparsifying penalty = 0.9573588 
	sparsifying penalty = 0.8842844 
	sparsifying penalty = 0.8167877 
	sparsifying penalty = 0.754443 

#>  Post-treatments
#>  DONE!
if (FALSE) {
plot(fits)
}