Learn R Programming

HiDimDA (version 0.2-0)

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))

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.

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.

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. (2006) 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