# RPCA: Robust Principal Component Analysis In kisungyou/ADMM: Algorithms using Alternating Direction Method of Multipliers

## Description

Given a data matrix M, it finds a decomposition

where \|L\|_* represents a nuclear norm for a matrix L and \|S\|_1 = ∑ |S_{i,j}|, and λ a balancing/regularization parameter. The choice of such norms leads to impose low-rank property for L and sparsity on S.

## Usage

 1 2 admm.rpca(M, lambda = 1/sqrt(max(nrow(M), ncol(M))), mu = 1, tol = 1e-07, maxiter = 1000) 

## Arguments

 M an (m\times n) data matrix lambda a regularization parameter mu an augmented Lagrangian parameter tol relative tolerance stopping criterion maxiter maximum number of iterations

## Value

a named list containing

L

an (m\times n) low-rank matrix

S

an (m\times n) sparse matrix

history

dataframe recording iteration numerics. See the section for more details.

## Iteration History

For RPCA implementation, we chose a very simple stopping criterion

\|M-(L_k+S_k)\|_F ≤ tol*\|M\|_F

for each iteration step k. So for this method, we provide a vector of only relative errors,

error

relative error computed

## References

\insertRef

  1 2 3 4 5 6 7 8 9 10 11 12 13 ## generate data matrix from standard normal X = matrix(rnorm(20*5),nrow=5) ## try different regularization values out1 = admm.rpca(X, lambda=0.01) out2 = admm.rpca(X, lambda=0.1) out3 = admm.rpca(X, lambda=1) ## visualize sparsity par(mfrow=c(1,3)) image(out1$S, main="lambda=0.01") image(out2$S, main="lambda=0.1") image(out3\$S, main="lambda=1")