Skip to contents

Finding uncorrelated sparse principal components by solving EUSPCA with \(\ell_1\) regularization using a combination of augmented Lagrangian and non-monotone proximal gradient methods.

Usage

euspca(X, is.data.mat, k, lambda, scale=FALSE, ...)

Arguments

X

A matrix. It can be a data matrix or an empirical covariance/correlation matrix.

is.data.mat

Is X a data matrix? If is.data.mat=TRUE, X is a data matrix. If is.data.mat=FALSE, X is a cov/cor matrix.

k

The number of uncorrelated principal components.

lambda

A non-negative scalar. It is a value of tuning parameter \(\lambda\).

scale

Perform EUSPCA on the empirical correlation matrix? If scale=FALSE, the empirical covariance matrix is used. Default is FALSE.

...

Other arguments being passed to euspca_sig or euspca_dat.

Details

The function euspca solves EUSPCA with \(\ell_1\) regularization, that is to find a minimizer \(\mathbf V\) of $$- \mbox{tr} (\mathbf V \mathbf \Sigma_n^2 \mathbf V^T ) + \lambda \sum_{ij} | v_{ij} | ~~\mbox{ s.t.} ~ \mathbf V \mathbf \Sigma_n \mathbf V^T = \mathbf{I},$$ where \(\Sigma_n\) is an empirical covariance/correlation matrix and \(v_{ij}\) is the (i,j)th component of \(\mathbf V\). The user sepcifies a value of \(\lambda\), i.e., lambda.

Value

An “euspca" object is returned. The below are some quantities which the user may be interested in:

V

The solution of EUSPCA with \(\ell_1\) regularization.

loadings

The loadings of the unccorrelated sparse PCs. \(\ell_2\) normalize the rows of V.

p.nz

The percentage of non-zero components in V or loadings.

p.ev

The percentage of explained adjusted total variance.

pc.cor

The correlation matrix of uncorrelated sparse components.

Examples

data(syn)
# fit a euspca on covariance matrix
euspca_syn = euspca(syn, is.data.mat=FALSE, k=2, lamb=1000, scale=FALSE)
#> [1] "Finding a feasible point."
#> [1] "Iteration: 1, Objective: -3255297.18173357, Constraint: 1748.08910980969"
#> [1] "Iteration: 6, Objective: -2597.25050177943, Constraint: 2.25233700534844e-05"
euspca_syn
#> 2 uncorrelated sparse PCs 
#> % of explained var. : 65.04 
#> % of non-zero loadings : 33.33 
#> 
#> Correlation of PCs 
#>     PC1 PC2
#> PC1   1   0
#> PC2   0   1
#> Max. abs. cor. : 0