
Last chance! 50% off unlimited learning
Sale ends in
Function used to find Projection Pursuit indexes (PP).
PP_Index(data, class = NA, vector.proj = NA,
findex = "HOLES", dimproj = 2, weight = TRUE,
lambda = 0.1, r = 1, ck = NA)
Number of classes.
Class names.
Projection index function used.
Projection vectors found.
Projection index found in the process.
Numeric dataset without class information.
Vector with names of data classes.
Vector projection.
Projection index function to be used:
"lda" - LDA index,
"pda" - PDA index,
"lr" - Lr index,
"holes" - Holes index (default),
"cm" - Central Mass index,
"pca" - PCA index,
"friedmantukey" - Friedman Tukey index,
"entropy" - Entropy index,
"legendre" - Legendre index,
"laguerrefourier" - Laguerre Fourier index,
"hermite" - Hermite index,
"naturalhermite" - Natural Hermite index,
"kurtosismax" - Maximum kurtosis index,
"kurtosismin" - Minimum kurtosis index,
"moment" - Moment index,
"mf" - MF index,
"chi" - Chi-square index.
Dimension of data projection (default = 2).
Used in index LDA, PDA and Lr to weight the calculations for the number of elements in each class (default = TRUE).
Used in the PDA index (default = 0.1).
Used in the Lr index (default = 1).
Internal use of the CHI index function.
Paulo Cesar Ossani
Marcelo Angelo Cirillo
Ossani, P. C.; Figueira, M. R.; Cirillo, M. A. Proposition of a new index for projection pursuit in the multiple factor analysis. Computational and Mathematical Methods, v. 1, p. 1-18, 2020.
Cook, D.; Buja, A.; Cabrera, J. Projection pursuit indexes based on orthonormal function expansions. Journal of Computational and Graphical Statistics, 2(3):225-250, 1993.
Cook, D.; Buja, A.; Cabrera, J.; Hurley, C. Grand tour and projection pursuit, Journal of Computational and Graphical Statistics, 4(3), 155-172, 1995.
Cook, D.; Swayne, D. F. Interactive and Dynamic Graphics for data Analysis: With R and GGobi. Springer. 2007.
Espezua, S.; Villanueva, E.; Maciel, C. D.; Carvalho, A. A projection pursuit framework for supervised dimension reduction of high dimensional small sample datasets. Neurocomputing, 149, 767-776, 2015.
Friedman, J. H., Tukey, J. W. A projection pursuit algorithm for exploratory data analysis. IEEE Transaction on Computers, 23(9):881-890, 1974.
Hastie, T., Buja, A., Tibshirani, R. Penalized discriminant analysis. The Annals of Statistics. 23(1), 73-102 . 1995.
Huber, P. J. Projection pursuit. Annals of Statistics, 13(2):435-475, 1985.
Jones, M. C.; Sibson, R. What is projection pursuit, (with discussion), Journal of the Royal Statistical Society, Series A 150, 1-36, 1987.
Lee, E. K.; Cook, D. A projection pursuit index for large p small n data. Statistics and Computing, 20(3):381-392, 2010.
Lee, E.; Cook, D.; Klinke, S.; Lumley, T. Projection pursuit for exploratory supervised classification. Journal of Computational and Graphical Statistics, 14(4):831-846, 2005.
Martinez, W. L., Martinez, A. R.; Computational Statistics Handbook with MATLAB, 2th. ed. New York: Chapman & Hall/CRC, 2007. 794 p.
Martinez, W. L.; Martinez, A. R.; Solka, J. Exploratory data Analysis with MATLAB, 2th. ed. New York: Chapman & Hall/CRC, 2010. 499 p.
Pena, D.; Prieto, F. Cluster identification using projections. Journal of the American Statistical Association, 96(456):1433-1445, 2001.
Posse, C. Projection pursuit exploratory data analysis, Computational Statistics and data Analysis, 29:669-687, 1995a.
Posse, C. Tools for two-dimensional exploratory projection pursuit, Journal of Computational and Graphical Statistics, 4:83-100, 1995b.
PP_Optimizer
and Plot.PP
data(iris) # data set
data <- iris[,1:4]
# Example 1 - Without the classes in the data
ind <- PP_Index(data = data, class = NA, vector.proj = NA,
findex = "moment", dimproj = 2, weight = TRUE,
lambda = 0.1, r = 1)
print("Number of classes:"); ind$num.class
print("class Names:"); ind$class.names
print("Projection index function:"); ind$findex
print("Projection vectors:"); ind$vector.proj
print("Projection index:"); ind$index
# Example 2 - With the classes in the data
class <- iris[,5] # data class
findex <- "pda" # index function
sphere <- TRUE # spherical data
res <- PP_Optimizer(data = data, class = class, findex = findex,
optmethod = "SA", dimproj = 2, sphere = sphere,
weight = TRUE, lambda = 0.1, r = 1, cooling = 0.9,
eps = 1e-3, maxiter = 1000, half = 30)
# Comparing the result obtained
if (match(toupper(findex),c("LDA", "PDA", "LR"), nomatch = 0) > 0) {
if (sphere) {
data <- apply(predict(prcomp(data)), 2, scale) # spherical data
}
} else data <- as.matrix(res$proj.data[,1:Dim])
ind <- PP_Index(data = data, class = class, vector.proj = res$vector.opt,
findex = findex, dimproj = 2, weight = TRUE, lambda = 0.1,
r = 1)
print("Number of classes:"); ind$num.class
print("class Names:"); ind$class.names
print("Projection index function:"); ind$findex
print("Projection vectors:"); ind$vector.proj
print("Projection index:"); ind$index
print("Optimized Projection index:"); res$index[length(res$index)]
Run the code above in your browser using DataLab