Learn R Programming

VDA (version 1.01)

VDA_R: Vertex Discriminant Analysis

Description

Multicategory Vertex Discriminant Analysis for classifying an outcome with k possible categories and p features, based on a data set of n cases.

Usage

VDA_R(x, y, lambda)

Arguments

x
n x p matrix or data frame containing the cases for each feature. The rows correspond to cases and the columns to the features. Intercept column is not included in this.
y
n x 1 vector representing the outcome variable. Each element denotes which one of the k classes that case belongs to
lambda
Tuning constant. The default value is set as $1/n$. Can also be found using cv.VDA_R, which uses K-fold cross validation to determine the optimal value.

Value

  • featureFeature matrix x with an intercept vector added as the first column. All entries in the first column should equal 1.
  • stand.featureThe feature matrix where the all columns are standardized, with the exception of the intercept column which is left unstandardized.
  • classClass vector y. All elements should be integers between 1 and classes.
  • casesNumber of cases, n.
  • classesNumber of classes, k.
  • featuresNumber of feautres, p.
  • lambdaTuning constant lambda that was used during analysis.
  • predictedVector of predicted category values based on VDA.
  • coefficientThe estimated coefficient matrix where the columns represent the coefficients for each predictor variable corresponding to k-1 outcome categories. The coefficient matrix is used for classifying new cases.
  • training_error_rateThe percentage of instances in the training set where the predicted outcome category is not equal to the case's true category.
  • callThe matched call
  • attr(,"class")The function results in an object of class "VDA_R"

Details

Outcome classification is based on linear discrimination among the vertices of a regular simplex in a k-1-dimension Euclidean space, where each vertex represents one of the categories. Discrimination is phrased as a regression problem involving $\epsilon-$insensitive residuals and a L2 quadratic ("ridge") penalty on the coefficients of the linear predictors. The objective function can by minimized by a primal Majorization-Minimization (MM) algorithm that
  1. relies on quadratic majorization and iteratively re-weighted least squares,
  2. is simpler to program than algorithms that pass to the dual of the original optimization problem, and
  3. can be accelerated by step doubling.
Comparisons on real and simulated data suggest that the MM algorithm for VDA is competitive in statistical accuracy and computational speed with the best currently available algorithms for discriminant analysis, such as linear discriminant analysis (LDA), quadratic discriminant analysis (QDA), k-nearest neighbor, one-vs-rest binary support vector machines, multicategory support vector machines, classification and regression tree (CART), and random forest prediction.

References

Lange, K. and Wu, T.T. (2008) An MM Algorithm for Multicategory Vertex Discriminant Analysis. Journal of Computational and Graphical Statistics, Volume 17, No 3, 527-544.

See Also

For determining the optimal values for lambda, refer to cv.VDA_R.

For high-dimensional setting and conduct variable selection, please refer to VDA_LE.

Examples

Run this code
#load dataset from package
data(zoo)

#matrix containing all predictor vectors
x <- zoo[,2:17]

#outcome class vector
y <- zoo[,18]

#run VDA
out <- VDA_R(x, y)

Run the code above in your browser using DataLab