DDPCA_convex {ddpca} | R Documentation |
Diagonally Dominant Principal Component Analysis using Convex approach
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
DDPCA_convex(Sigma, lambda, rho = 20, max_iter_convex = 50)
Arguments
Sigma |
Input matrix of size |
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*\|\Sigma - L - A\|^2 + \lambda \|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 <fyang1@uchicago.edu>
References
Ke, Z., Xue, L. and Yang, F., 2019. Diagonally Dominant Principal Component Analysis. Journal of Computational and Graphic Statistics, under review.
See Also
Examples
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)