ifa: Inverse of a matrix based on its factor decomposition.

Description Usage Arguments Details Value Author(s) References See Also Examples

View source: R/ifa.R

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

1
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

emfa, isqrtfa

Examples

1
2
3
4
5
6
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))

ERP documentation built on Dec. 16, 2019, 1:35 a.m.