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.264447 
	sparsifying penalty = 6.709958 
	sparsifying penalty = 6.197792 
	sparsifying penalty = 5.72472 
	sparsifying penalty = 5.287757 
	sparsifying penalty = 4.884147 
	sparsifying penalty = 4.511344 
	sparsifying penalty = 4.166997 
	sparsifying penalty = 3.848934 
	sparsifying penalty = 3.555148 
	sparsifying penalty = 3.283787 
	sparsifying penalty = 3.033138 
	sparsifying penalty = 2.801621 
	sparsifying penalty = 2.587776 
	sparsifying penalty = 2.390253 
	sparsifying penalty = 2.207807 
	sparsifying penalty = 2.039287 
	sparsifying penalty = 1.88363 
	sparsifying penalty = 1.739854 
	sparsifying penalty = 1.607053 
	sparsifying penalty = 1.484388 
	sparsifying penalty = 1.371086 
	sparsifying penalty = 1.266432 
	sparsifying penalty = 1.169766 
	sparsifying penalty = 1.080479 
	sparsifying penalty = 0.998007 
	sparsifying penalty = 0.9218299 
	sparsifying penalty = 0.8514675 
	sparsifying penalty = 0.7864757 
	sparsifying penalty = 0.7264447 

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