Description Usage Arguments Details Value Author(s) References See Also Examples
This function decomposes a positive semidefinite matrix into a low rank component, and a diagonally dominant component by solving a convex relaxation using ADMM.
1 | DDPCA_convex(Sigma, lambda, rho = 20, max_iter_convex = 50)
|
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. |
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.
A list containing the following items
L |
The low rank component |
A |
The diagonally dominant component |
Fan Yang <fyang1@uchicago.edu>
Ke, Z., Xue, L. and Yang, F., 2019. Diagonally Dominant Principal Component Analysis. Journal of Computational and Graphic Statistics, under review.
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)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.