Rotate to an echelon parameterization.

1 |

`L` |
a factor loading matrix |

`reference` |
indicates rows of loading matrix that should be used to determine the rotation transformation. |

`...` |
additional arguments discarded. |

The loadings matrix is rotated so the *k* rows of the loading matrix
indicated by `reference`

are the Cholesky factorization given by
`t(chol(L[reference,] %*% t(L[reference,])))`

.
This defines the
rotation transformation, which is then also applied to other rows to
give the new loadings matrix.

The optimization is not iterative and does not use the GPA algorithm.
The function can be used directly or the
function name can be passed to factor analysis functions like `factanal`

.
An orthogonal solution is assumed (so *Phi* is identity).

The default uses the first *k* rows
as the reference. If the submatrix of `L`

indicated by reference is
singular then the rotation will fail and the
user needs to supply a different choice of rows.

One use of this parameterization is for obtaining good starting values (so it may appear strange to rotate towards this solution afterwards). It has a few other purposes:

(1) It can be useful for comparison with published results in this parameterization.

(2) The S.E.s are more straightforward to compute, because it is the solution to an unconstrained optimization (though not necessarily computed as such).

(3) The models with k and (k+1) factors are nested, so it
is more straightforward to test the k-factor model versus the
(k+1)-factor model. In particular, in addition to the LR test
(which does not depend on the rotation), now the Wald test
and LM test can be used as well. For these, the test of a
k-factor model versus a (k+1)-factor model is a
joint test whether all the free parameters (loadings) in the (k+1)st
column of `L`

are zero.

(4) For some purposes, only the subspace spanned by the factors is important, not the specific parameterization within this subspace.

(5) The back-predicted indicators (explained portion of the indicators) do not depend on the rotation method. Combined with the greater ease to obtain correct standard errors of this method, this allows easier and more accurate prediction-standard errors.

(6) This parameterization and its standard errors can be used to detect identification problems (McDonald, 1999, pp. 181-182).

A list (which includes elements used by `factanal`

) with:

`loadings` |
The new loadings matrix. |

`Th` |
The rotation. |

`method` |
A string indicating the rotation objective function ("echelon"). |

`orthogonal` |
For consistency with other rotation results. Always TRUE. |

`convergence` |
For consistency with other rotation results. Always TRUE. |

Erik Meijer and Paul Gilbert.

Roderick P. McDonald (1999)
*Test Theory: A Unified Treatment*, Mahwah, NJ: Erlbaum.

Tom Wansbeek and Erik Meijer (2000) *Measurement Error and
Latent Variables in Econometrics*, Amsterdam: North-Holland.

`eiv`

,
`rotations`

,
`GPForth`

,
`GPFoblq`

1 2 3 4 5 6 7 8 9 10 11 12 | ```
data("WansbeekMeijer", package="GPArotation")
fa.unrotated <- factanal(factors = 2, covmat=NetherlandsTV, rotation="none")
fa.ech <- echelon(fa.unrotated$loadings)
fa.ech2 <- factanal(factors = 2, covmat=NetherlandsTV, rotation="echelon")
cbind(loadings(fa.unrotated), loadings(fa.ech), loadings(fa.ech2))
fa.ech3 <- echelon(fa.unrotated$loadings, reference=6:7)
cbind(loadings(fa.unrotated), loadings(fa.ech), loadings(fa.ech3))
``` |

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.

All documentation is copyright its authors; we didn't write any of that.