EPPlabAgg {REPPlab} | R Documentation |
Function to Aggregate Directions From epplab Objects
Description
Function that automatically aggregates the projection directions from one or more epplab
objects.
Three options are available on how to choose the final projection which can have a rank larger than one.
The parameter x
can either be a single object or a list of epplab objects.
Options for method
are inverse
, sq.inverse
and cumulative
.
Usage
EPPlabAgg(x, method = "cumulative", percentage = 0.85)
Arguments
x |
An object of class |
method |
The type of method, see details. Options are |
percentage |
Threshold for the relative eigenvalue sum to retain, see details. |
Details
Denote p_i, i=1,...,m
, the projection vectors contained in the list of epplab
objects
and P_i, i=1,..,m
, the corresponding orthogonal projection matrices (each having rank one).
The method cumulative
is based on the eigenvalue decomposition of
P_w=\frac 1m \sum_{i=1}^m P_i
and transforms as O
the eigenvectors such that the corresponding
relative eigenvalues sum is at least percentage
.
The number of eigenvectors retained corresponds to the rank k
and
P
is the corresponding orthogonal projection matrix.
The methods inverse
and sq.inverse
are automatic rules to
choose the number of eigenvectors to retain as implemented by the function
AOP
.
Value
A list with class 'epplabagg' containing the following components:
P |
The estimated average orthogonal projection matrix. |
O |
An orthogonal matrix on which P is based upon. |
k |
The rank of the average orthogonal projection matrix. |
eigenvalues |
The relevant eigenvalues, see details. Only given if |
Author(s)
Daniel Fischer, Klaus Nordhausen, Anne Ruiz-Gazen
References
Liski, E., Nordhausen, K., Oja, H. and Ruiz-Gazen, A. (201?), Combining Linear Dimension Reduction Estimates, to appear in the Proceedings of ICORS 2015, pp. ??-??.
See Also
Examples
library(tourr)
data(olive)
# To keep the runtime short, maxiter and n.simu were chosen very
# small for demonstration purposes, real life applications would
# rather choose larger values, e.g. n.simu=100, maxiter=200
olivePP.kurt.max <-
EPPlab(olive[,3:10],PPalg="PSO",PPindex="KurtosisMax",n.simu=10, maxiter=20)
olivePP.fried <-
EPPlab(olive[,3:10],PPalg="PSO",PPindex="Friedman",n.simu=10, maxiter=20)
olivePPs <- list(olivePP.kurt.max, olivePP.fried)
EPPlabAgg(olivePP.kurt.max)$k
EPPlabAgg(olivePPs, "cum", 0.99)$k
pairs(olivePP.kurt.max$x %*% EPPlabAgg(olivePPs, "cum", 0.99)$O,
col=olive[,2], pch=olive[,1])
olivAOP.sq <- EPPlabAgg(olivePPs, "inv")
oliveProj <- olivePP.kurt.max$x %*% olivAOP.sq$O
plot(density(oliveProj))
rug(oliveProj[olive$region==1],col=1)
rug(oliveProj[olive$region==2],col=2)
rug(oliveProj[olive$region==3],col=3)