PP_Index {MVar} | R Documentation |
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)
data |
Numeric dataset without class information. |
class |
Vector with names of data classes. |
vector.proj |
Vector projection. |
findex |
Projection index function to be used: |
dimproj |
Dimension of data projection (default = 2). |
weight |
Used in index LDA, PDA and Lr to weight the calculations for the number of elements in each class (default = TRUE). |
lambda |
Used in the PDA index (default = 0.1). |
r |
Used in the Lr index (default = 1). |
ck |
Internal use of the CHI index function. |
num.class |
Number of classes. |
class.names |
Class names. |
findex |
Projection index function used. |
vector.proj |
Projection vectors found. |
index |
Projection index found in the process. |
Paulo Cesar Ossani
Marcelo Angelo Cirillo
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 Fcindex <- "pda" # index function sphere <- TRUE # spherical data Res <- PP_Optimizer(data = data, class = class, findex = Fcindex, 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(Fcindex),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 = Fcindex, 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)]