Learn R Programming

robustHD (version 0.3.0)

wt: Extract outlier weights from sparse LTS regression models

Description

Extract binary weights that indicate outliers from sparse least trimmed squares regression models.

Usage

wt(object, ...)

  ## S3 method for class 'sparseLTS':
wt(object, s = NA,
    fit = c("reweighted", "raw", "both"),
    drop = !is.null(s), ...)

Arguments

object
the model fit from which to extract outlier weights.
s
an integer vector giving the indices of the models for which to extract outlier weights. If fit is "both", this can be a list with two components, with the first component giving the indices of the reweighted fits an
fit
a character string specifying for which estimator to extract outlier weights. Possible values are "reweighted" (the default) for weights indicating outliers from the reweighted fit, "raw" for weights indicating outli
drop
a logical indicating whether to reduce the dimension to a vector in case of only one model.
...
currently ignored.

Value

  • A numeric vector or matrix containing the requested outlier weights.

See Also

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

## sparse LTS over a grid of values for lambda
# fit model
frac <- seq(0.2, 0.05, by = -0.05)
fitGrid <- sparseLTS(x, y, lambda = frac, mode = "fraction")
# extract outlier weights
wt(fitGrid)
head(wt(fitGrid, fit = "both"))
head(wt(fitGrid, s = NULL))
head(wt(fitGrid, fit = "both", s = NULL))

Run the code above in your browser using DataLab