Learn R Programming

ks (version 1.3.2)

kda, pda, compare: Kernel and parametric discriminant analysis

Description

Kernel and parametric discriminant analysis.

Usage

kda(x, x.group, Hs, y, prior.prob=NULL)
pda(x, x.group, y, prior.prob=NULL, type="quad")
compare(x.group, est.group)

Arguments

x
matrix of training data values
x.group
vector of group labels for training data
est.group
vector of estimated group labels
y
matrix of test data
Hs
(stacked) matrix of bandwidth matrices
prior.prob
vector of prior probabilities
type
"line" = linear discriminant, "quad" = quadratic discriminant

Value

  • The discriminant analysers are kda and pda and these return a vector of group labels assigned via discriminant analysis. If the test data y are given then these are classified. Otherwise the training data x are classified. The function compare creates a comparison between the true group labels x.group and the estimated ones est.group. It returns a list with fields
  • crosscross-classification table with the rows indicating the true group and the columns the estimated group
  • errormisclassification rate (MR) where $$\textrm{MR} = \frac{\textrm{number of points wrongly classified}}{\textrm{total number of points}}$$
  • Note that this MR is only suitable when we have test data. If we don't have test data, then the cross validated estimate is more appropriate. See Silverman (1986).

Details

If you have prior probabilities then set prior.prob to these. Otherwise the default is to use the sample proportions as estimates of the prior probabilities.

The parametric discriminant analysers use the code from the MASS library namely lda and qda for linear and quadratic discriminants.

References

Silverman, B. W. (1986) Data Analysis for Statistics and Data Analysis. Chapman & Hall. London. Simonoff, J. S. (1996) Smoothing Methods in Statistics. Springer-Verlag. New York

Venables, W.N. & Ripley, B.D. (1997) Modern Applied Statistics with S-PLUS. Springer-Verlag. New York.

See Also

kda.kde, pda.pde

Examples

Run this code
### bivariate example - restricted iris dataset  
library(MASS)
data(iris)
iris.mat <- rbind(iris[,,1], iris[,,2], iris[,,3])
ir <- iris.mat[,c(1,2)]
ir.gr <- iris.mat[,5]

H <- Hkda(ir, ir.gr, bw="plugin", pre="scale")
kda.gr <- kda(ir, ir.gr, H, ir)
lda.gr <- pda(ir, ir.gr, ir, type="line")
qda.gr <- pda(ir, ir.gr, ir, type="quad")

compare(kda.gr, ir.gr)
compare(qda.gr, ir.gr)
compare(lda.gr, ir.gr)

### multivariate example - full iris dataset
ir <- iris[,1:4]
ir.gr <- iris[,5]

H <- Hkda(ir, ir.gr, bw="plugin", pre="scale")
kda.gr <- kda(ir, ir.gr, H, ir)
lda.gr <- pda(ir, ir.gr, ir, type="line")
qda.gr <- pda(ir, ir.gr, ir, type="quad")

compare(kda.gr, ir.gr)
compare(qda.gr, ir.gr)
compare(lda.gr, ir.gr)

Run the code above in your browser using DataLab