ifa {ERP} | R Documentation |
Inverse of a matrix based on its factor decomposition.
Description
This function is not supposed to be called directly by users. It is needed in function emfa
implementing an EM algorithm for a factor model.
Usage
ifa(Psi, B)
Arguments
Psi |
m-vector of specific variances, where m is the number of rows and columns of the matrix. |
B |
m x q matrix of loadings, where q is the number of factors |
Details
If Sigma has the q-factor decomposition Sigma=diag(Psi)+BB', then Sigma^-1 has the corresponding q-factor decomposition Sigma^-1=diag(phi)(I-theta theta')diag(phi), where theta is a mxq matrix and phi the vector of inverse specific standard deviations.
Value
iS |
m x m inverse of diag(Psi)+BB'. |
iSB |
m x q matrix (diag(Psi)+BB')^-1B. |
Phi |
m-vector of inverse specific standard deviations. |
Theta |
mxq matrix of loadings for the inverse factor model (see the details Section). |
Author(s)
David Causeur, IRMAR, UMR 6625 CNRS, Agrocampus Ouest, Rennes, France.
References
Woodbury, M.A. (1949) The Stability of Out-Input Matrices. Chicago, Ill., 5 pp
See Also
Examples
data(impulsivity)
erpdta = as.matrix(impulsivity[,5:505]) # erpdta contains the whole set of ERP curves
fa = emfa(erpdta,nbf=20) # 20-factor modelling of the ERP curves in erpdta
Sfa = diag(fa$Psi)+tcrossprod(fa$B) # Factorial estimation of the variance
iSfa = ifa(fa$Psi,fa$B)$iS # Matrix inversion
max(abs(crossprod(Sfa,iSfa)-diag(ncol(erpdta)))) # Checks that Sfa x iSfa = diag(ncol(erpdta))