fa_hs {lazy.fa} | R Documentation |
Sigma = Lambda %*% t(Lambda) + psi diag(c)
ML/LS Solution of Factor Analysis with Homoschedastic Error
Sigma = Lambda %*% t(Lambda) + psi diag(c)
fa_hs(S, ndim = 2, c = "pca", model = "random", noderiv = 0, print = 1)
S |
Input dispersion matrix |
ndim |
# of dimensions |
c |
A vector of proportionality or 1 or "smc" |
model |
"random" or "fixed". |
noderiv |
= 1 to skip the calculation of the final derivatives. |
print |
= 2 to print the derivatives |
When c == "pca", diag(S-Lambda0 Lambda0') will be used as the c vector
where Lambda0 is from PCA.
When c == "smc", diag(S) - Squared Multiple Correlation of each variable
will be used as the c vector.
The numeric and analytic derivative of the criterion function
will be printed as dcritN and dcritA, resp.
When model = "fixed", the Factor Score matrix F will be treated
as the parameters satisfying F'F = n I.
A list of
Lambda Factor Loadings
psi Scalar error variance
c The input proportionality constants
psic psi*c
method
critfa The criterion value minimized.
Lambda0 and psi0 The PCA Lambda and the residual psi vector.
dcritN and dcritA The derivatives of the criterion
seed <- 1701 set.seed(seed) nvar <- 10 ndim0 <- 3 ps <- 0.2 df <- 500 Lambda <- matrix(runif(nvar*ndim0),nvar) Sigma <- Lambda%*%t(Lambda) + ps*diag(nvar) dS <- sqrt(diag(Sigma)) Sigma <- diag(1/dS)%*%Sigma%*%diag(1/dS) S <- rWishart( 1, df, Sigma ) S <- S[,,1]/df dS <- sqrt(diag(S)) S <- diag(1/dS)%*%S%*%diag(1/dS) res_r <- fa_hs( S, ndim=2, print=2 ) res_f <- fa_hs( S, ndim=2, print=2, model="fixed" ) Print(res_r$Lambda, res_f$Lambda) Print(res_r$psi, res_f$psi)