Version: 1.0
Date: 2013-09-06
Title: Accelerated line search algorithm for simultaneous orthogonal transformation of several positive definite symmetric matrices to nearly diagonal form.
Author: Dariush Najarzadeh
Maintainer: Dariush Najarzadeh <D_Najarzadeh@sbu.ac.ir>
Description: Using of the accelerated line search algorithm for simultaneously diagonalize a set of symmetric positive definite matrices.
License: GPL-2 | GPL-3 [expanded from: GPL (≥ 2)]
Packaged: 2013-09-07 10:23:31 UTC; dariush
NeedsCompilation: no
Repository: CRAN
Date/Publication: 2013-09-07 13:54:56

Accelerated line search algorithm for simultaneous orthogonal transformation of several positive definite symmetric matrices to nearly diagonal form.

Description

Let

\Phi (\bold{D}) = {\sum\limits_{i = 1}^G {{n_i}} \ log{\left[ {{{\det (diag(\bold{D}'{\bold{S}_i}\bold{D}))}}} \right]}} -{\sum\limits_{i = 1}^G {{n_i}} \ log{\left[ {{{\det (\bold{D}'{\bold{S}_i}\bold{D})}}} \right]}}

where G is a positive integer and called as the number of groups, {n_1}+1, {n_2}+1, ..., {n_G}+1 are positive integers and called as the sample sizes, \bold{D} is an orthonormal matrix, and \bold{S}_1, \bold{S}_2, ..., \bold{S}_G are positive-definite and are usually sample covariance matrices. The minimization of the objective function \Phi (\bold{D})\ge 0 that depends on a orthonormal matrix \bold{D} is required for a potpourri of statistical problems. \Phi (\bold{D})= 0 means that \bold{S}_1, \bold{S}_2, ..., \bold{S}_G are simultaneously simultaneously diagonalizable. This situation is encountered when looking for common principal components, for example, and the Flury and Gautschi (1986) method is a popular approach. Lefkomtch (2004), Boik (2007), and Browne and McNicholas (2012) report that the Flury and Gautschi method is not effective for higher dimensional problems. Browne and McNicholas (2013) obtain several simple majorization-minizmation (MM) algorithms that provide solutions to this problem and are effective in higher dimensions. They compare these solutions with each others in terms of convergence and computational time. They found that the accelerated line search (ALS) algorithm is a computationally efficient procedure to this problem. Extensive review of the this algorithm and similar algorithms can be found in Absil et al. (2008). In the following, we briefly describe the ALS algorithm used to minimize the objective function \Phi (\bold{D}). ALS algorithm is based on the update formula

\bold{D_{k+1}} = R_{\bold{D_k}} (-\beta^{m_k} \ \alpha \ grad(\Phi (\bold{D}_k)))

where R_{\bold{D_k}}(\bold{V}) = qf({\bold{D_k}} + \bold{V}), where qf(\bold{M}) = \bold{Q} in the sense of the QR decomposition of a matrix \bold{M}; The \bold{Q}\bold{R} decomposition of a matrix \bold{M} is the decomposition of \bold{M} as \bold{M}=\bold{Q}\bold{R}, where \bold{Q} belongs to the orthogonal group and \bold{R} belongs to the set of all upper triangular matrices with strictly positive diagonal elements,

grad(\Phi(\bold{D}_k))=\overline{grad}(\Phi(\bold{D}_k)) -\bold{D}_k\left[\frac{\bold{D}'_k\ \overline{grad}(\Phi(\bold{D}_k))+\overline{grad}(\Phi(\bold{D}_k))' \bold{D}_k }{2}\right]

where

\overline{grad}(\Phi(\bold{D}_k))= {\sum\limits_{i = 1}^G 2{{n_i}}{\bold{S}'_i}{\bold{D}_k} {\left[ {{{diag(\bold{D}'_k{\bold{S}_i}\bold{D}_k)}}} \right]^{-1}}},

and for \beta, \sigma \in (0,1) and \alpha>0, m_k is the smallest nonnegative integer m such that

\Phi(\bold{D}_k)-\Phi (\bold{D}_{k+1}) \ge -\sigma <grad(\Phi(\bold{D}_k)) \ , \ -\beta^{m} \ \alpha \ grad(\Phi(\bold{D}_k))>

where < . \ , \ . > is the Frobenius inner product. Starting from initial iterate \bold{D}_0, for a given \epsilon > 0, we stop the algorithm when

|\Phi(\bold{D}_k)-\Phi (\bold{D}_{k+1})| \le \epsilon.

Details

Package: ALSCPC
Version: 1.0
Date: 2013-09-05
License: GPL (>= 2)

Author(s)

Dariush Najarzadeh

Maintainer: Dariush Najarzadeh <D_Najarzadeh@sbu.ac.ir>

References

Absil, P. A., Mahony, R., & Sepulchre, R. (2009). Optimization algorithms on matrix manifolds. Princeton University Press.

Boik, R. J. (2007). Spectral models for covariance matrics. Biometrika, 89, 159-182.

Browne, R. P., and McNicholas, P. D. (2012). Orthogonal Stiefel manifold optimization for eigen-decomposed covariance parameter estimation in mixture models. Statistics and Computing, 1-8.

Browne, R. P., and McNicholas, P. D. (2013). Estimating common principal components in high dimensions. arXiv preprint arXiv:1302.2102.

Flury, B. N., and Gautschi, W. (1986). An algorithm for simultaneous orthogonal transformation of several positive definite symmetric matrices to nearly diagonal form. SIAM Journal on Scientific and Statistical Computing, 7(1), 169-184.

Lefkomtch, L. P. (2004). Consensus principal components. Biometrical Journal, 35, 567-580.


minimize the objective function \Phi(\bold{D}) by using of the accelerated line search algorithm

Description

The ALS.CPC function implement ALS algorithm based on the update formula

\bold{D_{k+1}} = R_{\bold{D_k}} (-\beta^{m_k} \ \alpha \ grad(\Phi (\bold{D}_k)))

until convergence (i.e. |\Phi(\bold{D}_k)-\Phi (\bold{D}_{k+1})| \le \epsilon) and return the orthogonal matrix \bold{D}_r, r is the smallest nonnegative integer k such that |\Phi(\bold{D}_k)-\Phi (\bold{D}_{k+1})| \le \epsilon.

Usage

ALS.CPC(alpha,beta,sigma,epsilon,G,nval,D,S)

Arguments

alpha

positive real number.

beta

real number belong to (0,1).

sigma

real number belong to (0,1).

epsilon

small positive constant controlling error term.

G

number of groups in common principal components analysis.

nval

a numeric vector containing the positive integers of sample sizes minus one in each group.

D

an initial square orthogonal matrix of order p, where p is group dimensionality.

S

a list of length G of positive definite symmetric matrices of order p.

Value

An orthogonal matrix such that minimize \Phi(\bold{D}).

Author(s)

Dariush Najarzadeh

References

Absil, P. A., Mahony, R., & Sepulchre, R. (2009). Optimization algorithms on matrix manifolds. Princeton University Press.

Examples

nval<-numeric(3) 
nval[[1]]<-49
nval[[2]]<-49
nval[[3]]<-49
S<-vector("list",length=3)
setosa<-iris[1:50,1:4]; names(setosa)<-NULL
versicolor<-iris[51:100,1:4]; names(versicolor)<-NULL
virginica<-iris[101:150,1:4]; names(virginica)<-NULL
S[[1]]<-as.matrix(var(versicolor))
S[[2]]<-as.matrix(var(virginica))
S[[3]]<-as.matrix(var(setosa))
D<-diag(4)
ALS.CPC(10,0.5,0.4,1e-5,G=3,nval,D,S)