DDPCA_convex: Diagonally Dominant Principal Component Analysis using Convex...

Description Usage Arguments Details Value Author(s) References See Also Examples

View source: R/DDPCA_convex.R

Description

This function decomposes a positive semidefinite matrix into a low rank component, and a diagonally dominant component by solving a convex relaxation using ADMM.

Usage

1
DDPCA_convex(Sigma, lambda, rho = 20, max_iter_convex = 50)

Arguments

Sigma

Input matrix of size n\times n

lambda

The parameter in the convex program that controls the rank of the low rank component

rho

The parameter used in each ADMM update.

max_iter_convex

Maximal number of iterations of ADMM update.

Details

This function decomposes a positive semidefinite matrix Sigma into a low rank component L and a symmetric diagonally dominant component A, by solving the following convex program

\textrm{minimize} \quad 0.5*\|Σ - L - A\|^2 + λ \|L\|_{*}

\textrm{subject to} \quad A\in SDD

where ||L||_{*} is the nuclear norm of L (sum of singular values) and SDD is the symmetric diagonally dominant cone.

Value

A list containing the following items

L

The low rank component

A

The diagonally dominant component

Author(s)

Fan Yang <[email protected]>

References

Ke, Z., Xue, L. and Yang, F., 2019. Diagonally Dominant Principal Component Analysis. Journal of Computational and Graphic Statistics, under review.

See Also

DDPCA_nonconvex

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
library(MASS)
p = 30
n = 30
k = 3
rho = 0.5
a = 0:(p-1)
Sigma_mu = rho^abs(outer(a,a,'-'))
Sigma_mu = (diag(p) + Sigma_mu)/2 # Now Sigma_mu is a symmetric diagonally dominant matrix
mu = mvrnorm(n,rep(0,p),Sigma_mu)
B = matrix(rnorm(p*k),nrow = p)
F = matrix(rnorm(k*n),nrow = k)
Y = mu + t(B %*% F) 
Sigma_sample = cov(Y)
result = DDPCA_convex(Sigma_sample,lambda=3)

ddpca documentation built on Sept. 15, 2019, 1:03 a.m.