# Errors-in-Variables Rotation

### Description

Rotate to errors-in-variables representation.

### Usage

1 |

### Arguments

`L` |
a factor loading matrix |

`identity` |
indicates rows which should be identity matrix. |

`...` |
additional arguments discarded. |

### Details

This function rotates to an errors-in-variables representation. 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`

.

The loadings matrix is rotated so the *k* rows indicated by `identity`

form an identity matrix, and the remaining *M-k* rows are free parameters.
*Phi* is also free. The default makes the first *k* rows
the identity. If inverting the matrix
of the rows indicated by `identity`

fails, the rotation will fail and the
user needs to supply a different choice of rows.

Not all authors consider this representation to be a rotation.
Viewed as a rotation method, it is oblique, with an
explicit solution: given an initial loadings matrix *L* partitioned as
*L = rbind(L1, L2)*, then (for the default
`identity`

) the new loadings matrix is
*rbind(I, L2 %*% solve(L1))*
and *Phi = L1 %*% t(L1)*, where *I* is the *k*
by *k* identity matrix. It is
assumed that *Phi = I* for the initial loadings matrix.

One use of this parameterization is for obtaining good starting values (so it looks a little 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 straightfoward to compute, because it is the solution to an unconstrained optimization (though not necessarily computed as such); (3) One may have an idea about which reference variables load on only one factor, but not impose restrictive constraints on the other loadings, so, in a nonrestrictive way, it has similarities to CFA; (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.

### Value

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 ("eiv"). |

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

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

`Phi` |
The covariance matrix of the rotated factors. |

### Author(s)

Erik Meijer and Paul Gilbert.

### References

Gösta Hägglund. (1982). "Factor Analysis by
Instrumental Variables Methods." *Psychometrika*, 47, 209–222.

Sock-Cheng Lewin-Koh and Yasuo Amemiya. (2003). "Heteroscedastic factor
analysis." *Biometrika*, 90, 85–97.

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

### See Also

`echelon`

,
`rotations`

,
`GPForth`

,
`GPFoblq`

### Examples

1 2 3 4 5 6 7 8 9 10 11 12 13 | ```
data("WansbeekMeijer", package="GPArotation")
fa.unrotated <- factanal(factors = 2, covmat=NetherlandsTV, rotation="none")
fa.eiv <- eiv(fa.unrotated$loadings)
fa.eiv2 <- factanal(factors = 2, covmat=NetherlandsTV, rotation="eiv")
cbind(loadings(fa.unrotated), loadings(fa.eiv), loadings(fa.eiv2))
fa.eiv3 <- eiv(fa.unrotated$loadings, identity=6:7)
cbind(loadings(fa.unrotated), loadings(fa.eiv), loadings(fa.eiv3))
``` |

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker. Vote for new features on Trello.