| eiv | R Documentation |
Rotates a factor loading matrix to an errors-in-variables representation.
eiv(L, identity = seq(NCOL(L)), ...)
L |
a factor loading matrix. |
identity |
integer vector indicating which rows of the loading
matrix should form an identity matrix. Default uses the first
|
... |
additional arguments discarded. |
The loading matrix is rotated so that the k rows indicated by
identity form an identity matrix, with the remaining
M-k rows as free parameters. \Phi is also free.
The optimization is not iterative and does not use the gradient projection
algorithm. The function can be used directly or passed to factor analysis
functions like factanal via the rotation
argument.
Viewed as a rotation method it is oblique, with an explicit solution.
Given an initial loadings matrix L partitioned as
L = (L_1^T, L_2^T)^T, the rotated loadings
matrix is (I, (L_2 L_1^{-1})^T)^T
and \Phi = L_1 L_1^T, where I is
the k \times k identity matrix. It is assumed that
\Phi = I for the initial loadings matrix.
Not all authors consider this representation to be a rotation in the strict sense.
This parameterization has several useful properties:
It can be useful for comparison with published results in this parameterization.
Standard errors are more straightforward to compute because the solution corresponds to an unconstrained optimization.
One may have prior knowledge about which reference variables load on only one factor without imposing restrictive constraints on other loadings — in this sense it has similarities to CFA.
For some purposes, only the subspace spanned by the factors matters, not the specific parameterization within this subspace.
Back-predicted indicators (the explained portion of the indicators) do not depend on the rotation method. Combined with the greater ease of obtaining correct standard errors, this allows easier and more accurate prediction standard errors.
One use of this parameterization is obtaining good starting values for subsequent rotation, though it may seem counterintuitive to rotate towards this solution afterwards.
A GPArotation object which is a list with elements:
loadings |
The rotated loadings matrix. |
Th |
The rotation matrix. |
method |
A string indicating the rotation method ( |
orthogonal |
Always |
convergence |
Always |
Phi |
The covariance matrix of the rotated factors. |
Erik Meijer and Paul Gilbert.
Hägglund, G. (1982). Factor analysis by instrumental variables methods. Psychometrika, 47, 209–222.
Lewin-Koh, S.C. and Amemiya, Y. (2003). Heteroscedastic factor analysis. Biometrika, 90, 85–97.
Wansbeek, T. and Meijer, E. (2000). Measurement Error and Latent Variables in Econometrics. North-Holland.
echelon,
rotations,
GPForth,
GPFoblq
data("WansbeekMeijer", package = "GPArotation")
fa.unrotated <- factanal(factors = 2, covmat = NetherlandsTV,
rotation = "none")
# Direct call
fa.eiv <- eiv(fa.unrotated$loadings)
# Equivalent via factanal rotation argument
fa.eiv2 <- factanal(factors = 2, covmat = NetherlandsTV,
rotation = "eiv")
# Compare unrotated, eiv, and factanal eiv loadings
cbind(loadings(fa.unrotated), loadings(fa.eiv), loadings(fa.eiv2))
# Eiv rotation with a different identity set
fa.eiv3 <- eiv(fa.unrotated$loadings, identity = 6:7)
cbind(loadings(fa.unrotated), loadings(fa.eiv), loadings(fa.eiv3))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.