Description Usage Arguments Details Value Author(s) References See Also Examples
Computes a linear transformation loadings matrix for discrimination of classes with unequal covariance matrices.
1 2 3 4 5 6 7 |
x |
A matrix or data frame containing the explanatory variables. The method is restricted to numerical data. |
grouping |
A factor specifying the class for each observation. |
formula |
A formula of the form |
data |
Data frame from which variables specified in formula are to be taken. |
newdim |
Dimension of the discriminative subspace. The class distributions are assumed to be equal in the remaining dimensions. Alternatively, a vector of integers can be specified which is then computed until for the first time both tests on equal means as well as homoscedasticity do not reject. This option is to be be applied with care and the resulting dimension should be checked manually. |
crule |
Logical specifying whether a |
reg.lamb |
Parameter in [0,1] for regularization towards equal covariance matrix estimations of the classes (in the original space): 0 means equal covariances, 1 (default) means complete heteroscedasticity. |
reg.gamm |
Similar to |
initial.loadings |
Initial guess of the matrix of loadings. Must be quadratic of size |
sig.levs |
Vector of significance levels for eqmean.test (position 1) and homog.test (pos. 2) to stop search for an appropriate dimension of the reduced space. |
noutit |
Number iterations of the outer loop, i.e. iterations of the likelihood. Default is 7. |
ninit |
Number of iterations of the inner loop, i.e. reiterations of the loadings matrix within one iteration step of the likelihood. |
verbose |
Logical indicating whether iteration process should be displayed. |
... |
For |
The function returns the transformation that maximizes the likelihood if the classes are normally distributed
but differ only in a newdim
dimensional subspace and have equal distributions in the remaining dimensions
(see Kumar and Andreou, 1998). The scores are uncorrelated for all classes. The algorithm is implemented as it is proposed by
Burget (2006). Regularization is computed as proposed by Friedman et al. (1989) and Szepannek et al. (2009).
Returns an object of class hda.
hda.loadings |
Transformation matrix to be post-multiplied to new data. |
hda.scores |
Input data after hda transformation. Reduced discriminative space are the first |
grouping |
Corresponding class labels for |
class.dist |
Estimated class means and covariance matrices in the transformed space. |
reduced.dimension |
Input parameter: dimension of the reduced space. |
naivebayes |
Object of class |
comp.acc |
Matrix of accuracies per component and class: reports up to which degree each class k can be classified (P(f[k]>f[!k])) correctly according to the estimated (normal) distribution in any single component in the identified subspace. Meaningful for reasons of interpretability as HDA is invariant to reordering of the components. |
vlift |
Returns the variable importance in terms of ratio between the accuracy |
reg.lambd |
Input regularization parameter. |
reg.gamm |
Input regularization parameter. |
eqmean.test |
Test on equal means of the classes in the remaining dimensions like in |
homog.test |
Test on homoscedasticity of the classes in the remaining dimensions (see e.g. Fahrmeir et al., 1984, p.75.) |
hda.call |
(Matched) function call. |
initial.loadings |
Initialization of the loadings matrix. |
trace.dimensions |
Matrix of p values for different subspace dimensions (as specified in |
Gero Szepannek
Burget, L. (2006): Combination of speech features using smoothed heteroscedastic discriminant analysis. Proceedings of Interspeech 2004, pp. 2549-2552.
Fahrmeir, L. and Hamerle, A. (1984): Multivariate statistische Verfahren. de Gruyter, Berlin.
Friedman, J. (1989): Regularized discriminant analysis. JASA 84, 165-175.
Kumar, N. and Andreou, A. (1998): Heteroscedastic discriminant analysis and reduced rank HMMs for improved speech recognition. Speech Communication 25, pp.283-297.
Szepannek G., Harczos, T., Klefenz, F. and Weihs, C. (2009): Extending features for automatic speech recognition by means of auditory modelling. In: Proceedings of European Signal Processing Conference (EUSIPCO) 2009, Glasgow, pp.1235-1239.
predict.hda
, showloadings
, plot.hda
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | library(mvtnorm)
library(MASS)
# simulate data for two classes
n <- 50
meana <- meanb <- c(0,0,0,0,0)
cova <- diag(5)
cova[1,1] <- 0.2
for(i in 3:4){
for(j in (i+1):5){
cova[i,j] <- cova[j,i] <- 0.75^(j-i)}
}
covb <- cova
diag(covb)[1:2] <- c(1,0.2)
xa <- rmvnorm(n, meana, cova)
xb <- rmvnorm(n, meanb, covb)
x <- rbind(xa, xb)
classes <- as.factor(c(rep(1,n), rep(2,n)))
# rotate simulated data
symmat <- matrix(runif(5^2),5)
symmat <- symmat + t(symmat)
even <- eigen(symmat)$vectors
rotatedspace <- x %*% even
plot(as.data.frame(rotatedspace), col = classes)
# apply linear discriminant analysis and plot data on (single) discriminant axis
lda.res <- lda(rotatedspace, classes)
plot(rotatedspace %*% lda.res$scaling, col = classes,
ylab = "discriminant axis", xlab = "Observation index")
# apply heteroscedastic discriminant analysis and plot data in discriminant space
hda.res <- hda(rotatedspace, classes)
plot(hda.res$hda.scores, col = classes)
# compare with principal component analysis
pca.res <- prcomp(as.data.frame(rotatedspace), retx = TRUE)
plot(as.data.frame(pca.res$x), col=classes)
# Automatically build classification rule
# this requires package e1071
hda.res2 <- hda(rotatedspace, classes, crule = TRUE)
|
Initialization by the identity.
newdim = 1
Iteration 1 Log Likelihood: -639.570571007974
Iteration 2 Log Likelihood: -571.515585491436
Iteration 3 Log Likelihood: -555.293297606494
Iteration 4 Log Likelihood: -555.290263410319
Iteration 5 Log Likelihood: -555.29026340998
Iteration 6 Log Likelihood: -555.29026340998
Iteration 7 Log Likelihood: -555.29026340998
newdim = 2
Iteration 1 Log Likelihood: -639.092637478684
Iteration 2 Log Likelihood: -567.668766488304
Iteration 3 Log Likelihood: -553.029851914546
Iteration 4 Log Likelihood: -552.725184237448
Iteration 5 Log Likelihood: -552.66413533477
Iteration 6 Log Likelihood: -552.635578345422
Iteration 7 Log Likelihood: -552.622773462147
newdim = 3
Iteration 1 Log Likelihood: -637.95439013512
Iteration 2 Log Likelihood: -550.896957246802
Iteration 3 Log Likelihood: -535.707786265849
Iteration 4 Log Likelihood: -535.404679172109
Iteration 5 Log Likelihood: -535.338438605327
Iteration 6 Log Likelihood: -535.307226273387
Iteration 7 Log Likelihood: -535.293182106099
Initialization by the identity.
newdim = 1
Iteration 1 Log Likelihood: -639.570571007974
Iteration 2 Log Likelihood: -571.515585491436
Iteration 3 Log Likelihood: -555.293297606494
Iteration 4 Log Likelihood: -555.290263410319
Iteration 5 Log Likelihood: -555.29026340998
Iteration 6 Log Likelihood: -555.29026340998
Iteration 7 Log Likelihood: -555.29026340998
newdim = 2
Iteration 1 Log Likelihood: -639.092637478684
Iteration 2 Log Likelihood: -567.668766488304
Iteration 3 Log Likelihood: -553.029851914546
Iteration 4 Log Likelihood: -552.725184237448
Iteration 5 Log Likelihood: -552.66413533477
Iteration 6 Log Likelihood: -552.635578345422
Iteration 7 Log Likelihood: -552.622773462147
newdim = 3
Iteration 1 Log Likelihood: -637.95439013512
Iteration 2 Log Likelihood: -550.896957246802
Iteration 3 Log Likelihood: -535.707786265849
Iteration 4 Log Likelihood: -535.404679172109
Iteration 5 Log Likelihood: -535.338438605327
Iteration 6 Log Likelihood: -535.307226273387
Iteration 7 Log Likelihood: -535.293182106099
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.