Last chance! 50% off unlimited learning
Sale ends in
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
.
EPPlabAgg(x, method = "cumulative", percentage = 0.85)
A list with class 'epplabagg' containing the following components:
The estimated average orthogonal projection matrix.
An orthogonal matrix on which P is based upon.
The rank of the average orthogonal projection matrix.
The relevant eigenvalues, see details. Only given if method="cumulative"
.
An object of class epplab
or a list of epplab
objects.
The type of method, see details. Options are inverse
, sq.inverse
and cumulative
.
Threshold for the relative eigenvalue sum to retain, see details.
Daniel Fischer, Klaus Nordhausen, Anne Ruiz-Gazen
Denote epplab
objects
and cumulative
is based on the eigenvalue decomposition of
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
.
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. ??-??.
EPPlab
, AOP
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)
Run the code above in your browser using DataLab