| .gpa_consensus_target | R Documentation |
Internal helper that constructs a Generalized Procrustes Analysis (GPA)
consensus target across a list of loading matrices and returns the aligned
loadings, the centroid target, and convergence diagnostics. Used by
efa_mi() under target_method = "consensus" to build a common
rotation target across imputations. Oblique rotations are not supported
here: the iteration is degenerate for oblique transforms with more than
one factor (cf. Lorenzo-Seva & Van Ginkel 2016, who use a Promin step on
top of the centroid rather than iterated oblique Procrustes); callers
should pass the unrotated solutions of an orthogonal rotation, or use
target_method = "first_target".
.gpa_consensus_target(
unrotated_list,
init_targets = NULL,
rotation = c("orthogonal", "oblique"),
start = 1,
multi_start = FALSE,
starts = NULL,
tol = 0.001,
loss_tol = 1e-06,
loss_patience = 5,
convergence = c("either", "target", "loss", "both"),
min_iter = 2,
max_iter = 200,
alpha = 1,
match_target = TRUE,
hyper_cutoff = 0.15,
verbose = FALSE
)
unrotated_list |
List of unrotated loading matrices to be aligned. All matrices must be numeric, finite, and have identical dimensions. |
init_targets |
Optional list of starting target matrices. These are
typically rotated loading matrices from the corresponding analyses. If
|
rotation |
Character string, either |
start |
Either a single integer selecting an element of |
multi_start |
Logical. If |
starts |
Integer vector selecting elements of |
tol |
Positive relative Frobenius-norm convergence tolerance for the outer target update. |
loss_tol |
Positive tolerance for the relative change in the outer
consensus loss. If |
loss_patience |
Positive integer. Number of consecutive iterations with
relative loss change below |
convergence |
Character string controlling the stopping rule. |
min_iter |
Non-negative integer. Minimum number of outer iterations before convergence can be declared. |
max_iter |
Positive integer. Maximum number of outer consensus iterations. |
alpha |
Damping factor for the target update. |
match_target |
Logical. If |
hyper_cutoff |
Non-negative cutoff used by |
verbose |
Logical; if |
The iteration alternates two steps:
each loading matrix is aligned to the current target with efa_procrustes();
the target is updated to the elementwise centroid of the aligned matrices.
The outer loop stops when the target stabilises, when the consensus loss stabilises, or when both criteria are satisfied.
If multi_start = FALSE, one consensus run is performed. If
multi_start = TRUE, the same engine is repeated for the selected starting
targets and the run with the smallest final mean loss is returned as the
main result; all runs and a between-run congruence summary are retained in
the multi_start component.
A list with the converged target, aligned matrices, pooled loadings,
pooled Phi, convergence history, inner-alignment diagnostics, and
hyperplane summaries. If multi_start = TRUE, the multi_start element also
contains the per-start losses, convergence indicators, run summaries, all
run objects, and between-run Tucker congruence matrices.
Gower, J. C. (1975). Generalized Procrustes analysis. Psychometrika, 40, 33-51.
Van Ginkel, J. R., & Kroonenberg, P. M. (2014). Using Generalized Procrustes Analysis for Multiple Imputation in Principal Component Analysis. Journal of Classification, 31, 242-269.
Lorenzo-Seva, U., & Van Ginkel, J. R. (2016). Multiple Imputation of missing values in exploratory factor analysis of multidimensional scales: estimating latent trait scores. Anales de Psicologia, 32, 596-608.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.