Skip to contents

Computes the Very Simple Structure (VSS) criterion, which evaluates how well factor loadings exhibit simple structure (each variable loads strongly on one factor, weakly on others).

Usage

compute_vss_criterion(
  Lambda,
  threshold = 0.5,
  method = c("threshold", "ratio"),
  rotate = c("none", "varimax")
)

Arguments

Lambda

A list of K loading matrices, each (M x r), representing factor loadings for each cluster.

threshold

Threshold for determining "strong" vs "weak" loadings. Default is 0.5. Loadings with absolute value above this threshold are considered strong.

method

Method for computing VSS. Options: "threshold" (count variables with exactly one strong loading above threshold), "ratio" (compute concentration ratio max(lambda^2)/sum(lambda^2) for each variable). Default is "threshold".

rotate

Rotation method to apply before computing VSS. Options: "none" (no rotation), "varimax" (orthogonal rotation). Default is "none". VSS on unrotated FA loadings is rotation-dependent and often uninformative. Rotation is recommended for meaningful VSS.

Value

A numeric scalar representing the VSS criterion. Higher values indicate better simple structure. Returns NA if rotation fails or loadings are degenerate.

Details

The VSS criterion evaluates simple structure in factor loadings. Two methods are available:

**Threshold method (default):** For each variable (muscle), count how many factors have |loading| > threshold. Simple structure is achieved when this count is exactly 1. The VSS score is the proportion of variables across all clusters that exhibit simple structure.

**Ratio method:** For each variable (muscle), compute the concentration ratio max(lambda^2)/sum(lambda^2), which measures how concentrated the loadings are on a single factor. The VSS score is the average concentration ratio across all variables. This method is more robust when loadings are small in absolute magnitude, as it doesn't depend on an arbitrary threshold.

This implementation is inspired by the psych::VSS() function, adapted for mixture models where each cluster has its own loading matrix.

References

Revelle, W., & Rocklin, T. (1979). Very Simple Structure: An Alternative Procedure For Estimating The Optimal Number Of Interpretable Factors. Multivariate Behavioral Research, 14(4), 403-414.

Examples

if (FALSE) { # \dontrun{
# For an MFA model
vss_val <- compute_vss_criterion(mfa_fit$Lambda, threshold = 0.5)
} # }