Learn R Programming

ERP (version 2.2)

isqrtfa: Inverse square-root of a matrix based on its factor decomposition.

Description

This function is not supposed to be called directly by users. It is needed in functions erpfatest and erpFtest implementing factor-adjusted testing methods.

Usage

isqrtfa(Psi, B)

Arguments

Psi

m-vector of specific variances, where m is the number of rows and columns of the matrix.

B

mxq matrix of loadings, where q is the number of factors

Value

The mxm matrix Omega (see the details Section).

Details

If Sigma has the q-factor decomposition Sigma=diag(Psi)+BB', then the function returns a matrix Omega such that Sigma^-1 = Omega Omega'. Equivalently, Omega' Sigma Omega = I.

References

Woodbury, M.A. (1949) The Stability of Out-Input Matrices. Chicago, Ill., 5 pp

See Also

emfa, ifa

Examples

Run this code
# NOT RUN {
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    
isqrtSfa = isqrtfa(fa$Psi,fa$B)   # Inverse square-root of Sfa
max(abs(tcrossprod(isqrtSfa)-iSfa)) # Checks that isqrtSfa x t(isqrtSfa) = iSfa
# }

Run the code above in your browser using DataLab