Learn R Programming

robustHD (version 0.8.1)

coefPlot: Coefficient plot of a sequence of regression models

Description

Produce a plot of the coefficients from 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

coefPlot(object, ...)

# S3 method for seqModel coefPlot(object, zeros = FALSE, labels = NULL, ...)

# S3 method for tslars coefPlot(object, p, zeros = FALSE, labels = NULL, ...)

# S3 method for sparseLTS coefPlot( object, fit = c("reweighted", "raw", "both"), zeros = FALSE, labels = NULL, ... )

# S3 method for setupCoefPlot coefPlot( object, abscissa = NULL, size = c(0.5, 2, 4), offset = 1, facets = object$facets, ... )

Value

An object of class "ggplot" (see ggplot).

Arguments

object

the model fit to be plotted.

...

additional arguments to be passed down, eventually to geom_line and geom_point.

zeros

a logical indicating whether predictors that never enter the model and thus have zero coefficients should be included in the plot (TRUE) or omitted (FALSE, the default). This is useful if the number of predictors is much larger than the number of observations, in which case many coefficients are never nonzero.

labels

an optional character vector containing labels for the predictors. Plotting labels can be suppressed by setting this to NA.

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 "reweighted" (the default) for the reweighted fits, "raw" for the raw fits, or "both" for both estimators.

abscissa

a character string specifying what to plot on the \(x\)-axis. For objects inheriting from class "seqModel", possible values are "step" for the step number (the default), or "df" for the degrees of freedom. For "sparseLTS" objects, possible values are "lambda" for the value of the penalty parameter (the default), or "step" for the step number.

size

a numeric vector of length three giving the line width, the point size and the label size, respectively.

offset

an integer giving the offset of the labels from the corresponding coefficient values from the last step (i.e., the number of blank characters to be prepended to the label).

facets

a faceting formula to override the default behavior. If supplied, facet_wrap or facet_grid is called depending on whether the formula is one-sided or two-sided.

Author

Andreas Alfons

See Also

ggplot, rlars, grplars, rgrplars, tslarsP, rtslarsP, tslars, rtslars, sparseLTS

Examples

Run this code
## 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
coefPlot(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
coefPlot(fitSparseLTS)
coefPlot(fitSparseLTS, fit = "both")

Run the code above in your browser using DataLab