Tucker's Congruence Coefficient \(\phi\) (Factor Similarity)
Source:R/procrustes_phi.R
procrustes_phi.RdComputes Tucker's (1951) congruence coefficient \(\phi\), a measure of similarity between two factor-loading patterns (typically the standardized loadings of the same factor estimated on two different samples or with different methods), together with a permutation-based p-value testing the null hypothesis of unrelated loading patterns. \(\phi\) is the standard tool for factor-replication studies (Lorenzo-Seva & ten Berge, 2006).
Value
A data.frame (class dmar_tbl) in term /
value layout with the row tucker_phi, the point
estimate of \(\phi\). When n_perm > 0 the table also
carries p_value_perm, the two-sided permutation
p-value, and n_perm, the number of permutations
requested.
Details
Definition. For two vectors of loadings \(\bm\lambda_1, \bm\lambda_2\) on a shared set of \(p\) indicators, Tucker's congruence coefficient is $$\phi(\bm\lambda_1, \bm\lambda_2) \;=\; \frac{\sum_{i=1}^{p} \lambda_{1i} \lambda_{2i}} {\sqrt{\sum_{i=1}^{p} \lambda_{1i}^2 \cdot \sum_{i=1}^{p} \lambda_{2i}^2}}.$$ \(\phi\) is the cosine of the angle between the two loading vectors and ranges over \([-1, 1]\); values near \(\pm 1\) indicate high (anti-)congruence, values near 0 indicate orthogonality.
Permutation test. Under the null hypothesis that the two
loading patterns are unrelated, randomly permuting one of the
loading vectors and recomputing \(\phi\) produces a sampling
distribution against which the observed \(\phi\) can be evaluated.
The two-sided p-value is \((r + 1) / (m + 1)\), where
r counts the permuted \(|\phi|\) values at least as large as
the observed \(|\phi|\) and m is n_perm. Adding one
to each part counts the observed arrangement, which is itself a
legitimate permutation; without it a p-value of exactly zero
could be reported, a value a sampled permutation test cannot support
(Phipson & Smyth, 2010). The smallest reportable p-value is
therefore \(1 / (m + 1)\).
Interpretation. Benchmark values for \(\phi\) have been proposed in the literature (Lorenzo-Seva & ten Berge, 2006), but context always matters; this package reports the coefficient with its uncertainty and leaves interpretation to the context of the application.
References
Lorenzo-Seva, U., & ten Berge, J. M. F. (2006). Tucker's congruence coefficient as a meaningful index of factor similarity. Methodology, 2(2), 57–64. doi:10.1027/1614-2241.2.2.57
Phipson, B., & Smyth, G. K. (2010). Permutation p-values should never be zero: Calculating exact p-values when permutations are randomly drawn. Statistical Applications in Genetics and Molecular Biology, 9(1), Article 39. doi:10.2202/1544-6115.1585
Tucker, L. R. (1951). A method for synthesis of factor analysis studies (Personnel Research Section Report No. 984). Department of the Army.
See also
Other multivariate and latent variable methods:
average_variance_extracted(),
bifactor_indices(),
cfa_1(),
cfa_2(),
cfa_k(),
ci_eigenvalue(),
common_method_marker(),
common_method_single_factor(),
dmacs(),
ecvi(),
htmt(),
irt_grm(),
irt_information(),
measurement_alignment(),
measurement_invariance(),
simple_structure()
Author
Ken Kelley kkelley@nd.edu
Examples
set.seed(113)
# 1. Two highly similar loading patterns:
l1 <- c(0.72, 0.65, 0.81, 0.55, 0.69)
l2 <- c(0.70, 0.62, 0.83, 0.58, 0.66)
procrustes_phi(l1, l2)
#> term value
#> tucker_phi 0.999
#> p_value_perm 0.0080
#> n_perm 10000
# 2. Loadings on different factors should show low congruence:
l3 <- c(0.10, 0.05, 0.20, 0.85, 0.78)
procrustes_phi(l1, l3, n_perm = 5000)
#> term value
#> tucker_phi 0.702
#> p_value_perm 0.8244
#> n_perm 5000