Skip to contents

Formula: rotate the exploratory loading matrix toward a hypothesised pattern. For an ORTHOGONAL rotation the problem min_T || Lambda T - H ||_F subject to T'T = I is the orthogonal Procrustes problem, solved in closed form by the polar factor of M = Lambda' H: with M'M = V S^2 V', T = M V S^-1 V', which is exactly U V' for the singular value decomposition M = U S V'. No iteration is needed for a fully specified target.

Usage

Esmoeg(loadings, target, iters = 200, tol = 1e-13)

Arguments

loadings

p x m exploratory loading matrix.

target

p x m hypothesised pattern; NA marks a free element.

iters

Maximum alternations for a partial target.

tol

Convergence tolerance on the change in T.

Value

List with estimate, rotated (row-major), rotation (row-major), rms, n_specified, iters_used, n_items, n_factors, n, method.

Details

A PARTIALLY specified target – the usual ESEM case, where only the zeros are stated and the salient loadings are free – is handled by the standard alternating scheme: free positions of H are refilled from the current rotated solution, then the Procrustes step repeats, until T stops moving. Free positions are marked NA.

References

Asparouhov & Muthen (2009), Structural Equation Modeling 16(3):397-438, doi:10.1080/10705510903008204.

Examples

V <- c(1, 2, 3, 4, 5, 6, 7, 8)
Esmoeg(V, V)
#> $estimate
#> [1] 0
#> 
#> $rotated
#> [1] 1 2 3 4 5 6 7 8
#> 
#> $rotation
#> [1] 1
#> 
#> $rms
#> [1] 0
#> 
#> $n_specified
#> [1] 8
#> 
#> $iters_used
#> [1] 1
#> 
#> $n_items
#> [1] 8
#> 
#> $n_factors
#> [1] 1
#> 
#> $n
#> [1] 8
#> 
#> $method
#> [1] "Exploratory SEM with target rotation"
#> 
#> attr(,"class")
#> [1] "morie_rich_result" "list"