plot.cv_proportions function

Plot ranking proportions from fold-wise predictor rankings

Plot ranking proportions from fold-wise predictor rankings

Plots the ranking proportions (see cv_proportions()) from the fold-wise predictor rankings in a cross-validation with fold-wise searches. This is a visualization of the transposed matrix returned by cv_proportions(). The proportions printed as text inside of the colored tiles are rounded to whole percentage points (the plotted proportions themselves are not rounded).

## S3 method for class 'cv_proportions' plot(x, text_angle = NULL, ...) ## S3 method for class 'ranking' plot(x, ...)

Arguments

  • x: For plot.cv_proportions(): an object of class cv_proportions

    (returned by cv_proportions(), possibly with cumulate = TRUE). For plot.ranking(): an object of class ranking (returned by ranking()) that cv_proportions() will be applied to internally before then calling plot.cv_proportions().

  • text_angle: Passed to argument angle of ggplot2::element_text() for the y-axis tick labels. In case of long predictor names, text_angle = 45

    might be helpful (for example).

  • ...: For plot.ranking(): arguments passed to cv_proportions.ranking() and plot.cv_proportions(). For plot.cv_proportions(): currently ignored.

Returns

A ggplot2 plotting object (of class gg and ggplot).

Examples

# Data: dat_gauss <- data.frame(y = df_gaussian$y, df_gaussian$x) # The `stanreg` fit which will be used as the reference model (with small # values for `chains` and `iter`, but only for technical reasons in this # example; this is not recommended in general): fit <- rstanarm::stan_glm( y ~ X1 + X2 + X3 + X4 + X5, family = gaussian(), data = dat_gauss, QR = TRUE, chains = 2, iter = 1000, refresh = 0, seed = 9876 ) # Run cv_varsel() (with L1 search and small values for `K`, `nterms_max`, and # `nclusters_pred`, but only for the sake of speed in this example; this is # not recommended in general): cvvs <- cv_varsel(fit, method = "L1", cv_method = "kfold", K = 2, nterms_max = 3, nclusters_pred = 10, seed = 5555) # Extract predictor rankings: rk <- ranking(cvvs) # Compute ranking proportions: pr_rk <- cv_proportions(rk) # Visualize the ranking proportions: gg_pr_rk <- plot(pr_rk) print(gg_pr_rk) # Since the object returned by plot.cv_proportions() is a standard ggplot2 # plotting object, you can modify the plot easily, e.g., to remove the # legend: print(gg_pr_rk + ggplot2::theme(legend.position = "none"))

Author(s)

Idea and original code by Aki Vehtari. Slight modifications of the original code by Frank Weber, Yann McLatchie, and Sölvi Rögnvaldsson. Final implementation in projpred by Frank Weber.

  • Maintainer: Frank Weber
  • License: GPL-3 | file LICENSE
  • Last published: 2023-12-15