HiDimDA (version 0.2-4)

FrobSigAp: Approximation of Covariance Matrices from q-factor models

Description

‘FrobSigAp’ finds the parameters of a q-factor model whose covariance is closest to the matrix argument ‘Sigma’, according to the Frobenius norm.

‘FrobSigAp1’ finds the parameters of a q-factor model whose covariance is closest to the matrix square SigmaSr %*% t(SigmaSr) of the argument ‘SigmaSr’, according to the Frobenius norm.

Usage

FrobSigAp(Sigma, q, nstarts = 1, k0 = NULL, penF = NULL, 
atol = 1e-20, rtol = sqrt(.Machine$double.eps))

FrobSigAp1(SigmaSr, SigmaRank, q, nstarts = 1, k0=NULL, penF=NULL, atol = 1e-20, rtol = 100 * sqrt(.Machine$double.eps))

Value

An object of class ‘SigFq’ representing the covariance assumed by the closest q-factor model. ‘SigFq’ objects have specialized methods for matrix inversion, multiplication, and element-wise arithmetic operations.

Arguments

Sigma

Square, symmetric and positive-definite matrix to be approximated

q

Number of factors in the assumed factor model.

nstarts

Number of different randomly generated starting points used in the optimization.

k0

Lower bound for the elements of the specific variances. When NULL (default), k0 is set to 0.01 times the minimum diagonal element of ‘Sigma’.

penF

Penalty factor, used to forbid specific variances below the k0 bound. When set to NULL (default), a penalty equal to 100 times the maximum diagonal element of ‘Sigma’ is used.

atol

The absolute convergence tolerance of the local optimizer.

rtol

The relative convergence tolerance of the local optimizer. The local optimizer stops if it is unable to reduce the approximation error (err) by a factor of ‘reltol *(abs(err) + reltol)’ at a step.

SigmaSr

Matrix square root of the covariance to be approximated.

SigmaRank

Rank of the covariance matrix to be approximated.

Author

A. Pedro Duarte Silva

Details

The minimization of the error Frobenius norm is performed by the ‘nlminb’ PORT optimization routine. The actual computations of the errors, and their analytical gradients and hessians, are coded in C in order to speed up the algorithm.
The minimization procedure takes the loadings (B) of the factor model as arguments, computes the optimal specific variances by the analytical formula D = diag(Sigma) - diag(B %*% t(B)), and uses the first q eigenvectors of ‘Sigma’ as starting points of the optimization.
For small values of q (1 or 2), this procedure seems to quickly converge to the global minimum of the approximation error. For larger values of q, the computational time can be much higher and multiple random starting points (that can be specified by the argument ‘nstarts’) may be required in order to escape local optima.

References

Pedro Duarte Silva, A. (2011) “Two Group Classification with High-Dimensional Correlated Data: A Factor Model Approach”, Computational Statistics and Data Analysis, 55 (1), 2975-2990.

See Also

RFlda, SigFq, SigFqInv, solve.SigFq, solve.SigFqInv