# Optimality criterion plot of a sequence of regression models

### Description

Produce a plot of the values of the optimality criterion for a sequence of regression models, such as submodels along a robust or groupwise least angle regression sequence, or sparse least trimmed squares regression models for a grid of values for the penalty parameter.

### Usage

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | ```
critPlot(x, ...)
## S3 method for class 'seqModel'
critPlot(x, size = c(0.5, 2), ...)
## S3 method for class 'perrySeqModel'
critPlot(x, ...)
## S3 method for class 'tslars'
critPlot(x, p, ...)
## S3 method for class 'sparseLTS'
critPlot(x, fit = c("reweighted", "raw", "both"),
size = c(0.5, 2), ...)
## S3 method for class 'perrySparseLTS'
critPlot(x, fit = c("reweighted", "raw", "both"),
...)
``` |

### Arguments

`x` |
the model fit to be plotted. |

`size` |
a numeric vector of length two giving the line width and the point size, respectively. |

`p` |
an integer giving the lag length for which to produce the plot (the default is to use the optimal lag length). |

`fit` |
a character string specifying for which estimator to produce the
plot. Possible values are |

`...` |
for the generic function, additional arguments to be passed
down to methods. For the |

### Value

An object of class `"ggplot"`

(see `ggplot`

).

### Author(s)

Andreas Alfons

### See Also

`ggplot`

, `perryPlot`

,
`rlars`

, `grplars`

, `rgrplars`

,
`tslarsP`

, `rtslarsP`

, `tslars`

,
`rtslars`

, `sparseLTS`

### Examples

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | ```
## generate data
# example is not high-dimensional to keep computation time low
library("mvtnorm")
set.seed(1234) # for reproducibility
n <- 100 # number of observations
p <- 25 # number of variables
beta <- rep.int(c(1, 0), c(5, p-5)) # coefficients
sigma <- 0.5 # controls signal-to-noise ratio
epsilon <- 0.1 # contamination level
Sigma <- 0.5^t(sapply(1:p, function(i, j) abs(i-j), 1:p))
x <- rmvnorm(n, sigma=Sigma) # predictor matrix
e <- rnorm(n) # error terms
i <- 1:ceiling(epsilon*n) # observations to be contaminated
e[i] <- e[i] + 5 # vertical outliers
y <- c(x %*% beta + sigma * e) # response
x[i,] <- x[i,] + 5 # bad leverage points
## robust LARS
# fit model
fitRlars <- rlars(x, y, sMax = 10)
# create plot
critPlot(fitRlars)
## sparse LTS over a grid of values for lambda
# fit model
frac <- seq(0.2, 0.05, by = -0.05)
fitSparseLTS <- sparseLTS(x, y, lambda = frac, mode = "fraction")
# create plot
critPlot(fitSparseLTS)
critPlot(fitSparseLTS, fit = "both")
``` |