daFisher: Discriminant analysis by Fisher Rule.

View source: R/daFisher.R

daFisherR Documentation

Discriminant analysis by Fisher Rule.

Description

Discriminant analysis by Fishers rule using the logratio approach to compositional data.

Usage

daFisher(x, grp, coda = TRUE, method = "classical", plotScore = FALSE, ...)

## S3 method for class 'daFisher'
print(x, ...)

## S3 method for class 'daFisher'
predict(object, ..., newdata)

## S3 method for class 'daFisher'
summary(object, ...)

Arguments

x

a matrix or data frame containing the explanatory variables (training set)

grp

grouping variable: a factor specifying the class for each observation.

coda

TRUE, when the underlying data are compositions.

method

“classical” or “robust” estimation.

plotScore

TRUE, if the scores should be plotted automatically.

...

additional arguments for the print method passed through

object

object of class “daFisher”

newdata

new data in the appropriate form (CoDa, etc)

Details

The Fisher rule leads only to linear boundaries. However, this method allows for dimension reduction and thus for a better visualization of the separation boundaries. For the Fisher discriminant rule (Fisher, 1938; Rao, 1948) the assumption of normal distribution of the groups is not explicitly required, although the method looses its optimality in case of deviations from normality.

The classical Fisher discriminant rule is invariant to ilr coordinates and clr coefficients. The robust rule is invariant to ilr transformations if affine equivariant robust estimators of location and covariance are taken.

Robustification is done (method “robust”) by estimating the columnwise means and the covariance by the Minimum Covariance Estimator.

Value

an object of class “daFisher” including the following elements

B

Between variance of the groups

W

Within variance of the groups

loadings

loadings

scores

fisher scores

mc

table indicating misclassifications

mcrate

misclassification rate

coda

coda

grp

grouping

grppred

predicted groups

xc

xc

meanj

meanj

cv

cv

pj

pj

meanov

meanov

fdiscr

fdiscr

Author(s)

Peter Filzmoser, Matthias Templ.

References

Filzmoser, P. and Hron, K. and Templ, M. (2012) Discriminant analysis for compositional data and robust parameter estimation. Computational Statistics, 27(4), 585-604.

Fisher, R. A. (1938) The statistical utiliziation of multiple measurements. Annals of Eugenics, 8, 376-386.

Rao, C.R. (1948) The utilization of multiple measurements in problems of biological classification. Journal of the Royal Statistical Society, Series B, 10, 159-203.

See Also

Linda

Examples

## toy data (non-compositional)
require(MASS)
x1 <- mvrnorm(20,c(0,0,0),diag(3))
x2 <- mvrnorm(30,c(3,0,0),diag(3))
x3 <- mvrnorm(40,c(0,3,0),diag(3))
X <- rbind(x1,x2,x3)
grp=c(rep(1,20),rep(2,30),rep(3,40))

#par(mfrow=c(1,2))
d1 <- daFisher(X,grp=grp,method="classical",coda=FALSE)
d2 <- daFisher(X,grp=grp,method="robust",coda=FALSE)
d2
summary(d2)
predict(d2, newdata = X)

## example with olive data:
## Not run: 
data(olive, package = "RnavGraph")
# exclude zeros (alternatively impute them if 
# the detection limit is known using impRZilr())
ind <- which(olive == 0, arr.ind = TRUE)[,1]
olives <- olive[-ind, ]
x <- olives[, 4:10]
grp <- olives$Region # 3 groups
res <- daFisher(x,grp)
res
summary(res)
res <- daFisher(x, grp, plotScore = TRUE)
res <- daFisher(x, grp, method = "robust")
res
summary(res)
predict(res, newdata = x)
res <- daFisher(x,grp, plotScore = TRUE, method = "robust")

# 9 regions
grp <- olives$Area
res <- daFisher(x, grp, plotScore = TRUE)
res
summary(res)
predict(res, newdata = x)

## End(Not run)

robCompositions documentation built on Aug. 25, 2023, 5:13 p.m.