FrobSigAp {HiDimDA} | R Documentation |
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))
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. |
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.
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.
Author(s)
A. Pedro Duarte Silva
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