dsda.all: Direct sparse discriminant analysis

Description Usage Arguments Value Author(s) References See Also Examples

View source: R/dsda.all.R

Description

Performs direct sparse discriminant analysis, with the optimal lambda chosen by cross validation. The function can perform prediction on test data as well.

Usage

1
2
dsda.all(x, y, x.test.matrix=NULL, y.test=NULL, standardize=FALSE, 
lambda.opt="min", nfolds=10, lambda=lambda, alpha=1, eps=1e-7)

Arguments

x

An n by p matrix containing the predictors.

y

An n-dimensional vector containing the class labels 1 and 2.

x.test.matrix

The predictors of a testing set. (Optional.)

y.test

The class labels of the testing set. (Required if x.test.matrix is supplied, but otherwise optional.)

standardize

A logic object indicating whether x.matrix should be standardized before performing DSDA. Default is FALSE.

lambda.opt

Should be either "min" or "max", specifying whether the smallest or the largest lambda with the smallest cross validation error should be used for the final classification rule.

nfolds

The number of folds to be used in cross validation. Default is 10.

lambda

A sequence of lambda's.

alpha

The elasticnet mixing parameter, the same as in glmnet. Default is alpha=1 so that the lasso penalty is used.

eps

Convergence threshold for coordinate descent, the same as in glmnet. Default is 1e-7.

Value

error

Testing error if x.test.matrix is supplied.

beta

The coefficients of the classification rule corresponding to the optimal lambda chosen by cross validation.

s

The optimal lambda chosen by cross validation.

Author(s)

Yuqing Pan, Qing Mai, Xin Zhang

References

Mai, Q., Zou, H. and Yuan, M., (2012), "A direct approach to sparse discriminant analysis in ultra-high dimensions." Biometrika, 99, 29-42.

See Also

dsda

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
data(GDS1615)   ##load the prostate data
x<-GDS1615$x
y<-GDS1615$y

x=x[which(y<3),]
y=y[which(y<3)]

n<-length(y)    ##split the original dataset to a training set and a testing set
n.test<-round(n/3)
set.seed(20120822)
id<-sample(n,n.test,replace=FALSE)
x.train<-x[-id,]
x.test<-x[id,]
y.train<-y[-id]
y.test<-y[id]

set.seed(123)
##perform direct sparse discriminant analysis
obj<-dsda.all(x.train,y.train,x.test,y.test)  
obj$error 

TULIP documentation built on Jan. 13, 2021, 3:14 p.m.

Related to dsda.all in TULIP...