Calculate composite weights using generalized structured component analysis with uniqueness terms (GSCAm) proposed by Hwang2017;textualcSEM.
calculateWeightsGSCAm(
  .X                           = args_default()$.X,
  .csem_model                  = args_default()$.csem_model,
  .conv_criterion              = args_default()$.conv_criterion,
  .iter_max                    = args_default()$.iter_max,
  .starting_values             = args_default()$.starting_values,
  .tolerance                   = args_default()$.tolerance
   )A list with the elements
$WA (J x K) matrix of estimated weights.
$CThe (J x K) matrix of estimated loadings.
$BThe (J x J) matrix of estimated path coefficients.
$ENULL
$ModesA named vector of Modes used for the outer estimation, for GSCA the mode is automatically set to 'gsca'.
$Conv_statusThe convergence status. TRUE if the algorithm has converged
and FALSE otherwise.
$IterationsThe number of iterations required.
A matrix of processed data (scaled, cleaned and ordered).
A (possibly incomplete) cSEMModel-list.
Character string. The criterion to use for the convergence check. One of: "diff_absolute", "diff_squared", or "diff_relative". Defaults to "diff_absolute".
Integer. The maximum number of iterations allowed.
If iter_max = 1 and .approach_weights = "PLS-PM" one-step weights are returned.
If the algorithm exceeds the specified number, weights of iteration step
.iter_max - 1  will be returned with a warning. Defaults to 100.
A named list of vectors where the
list names are the construct names whose indicator weights the user
wishes to set. The vectors must be named vectors of "indicator_name" = value
pairs, where value is the (scaled or unscaled) starting weight. Defaults to NULL.
Double. The tolerance criterion for convergence.
Defaults to 1e-05.
If there are only constructs modeled as common factors
calling csem() with .appraoch_weights = "GSCA" will automatically call
calculateWeightsGSCAm() unless .disattenuate = FALSE.
GSCAm currently only works for pure common factor models. The reason is that the implementation
in cSEM is based on (the appendix) of Hwang2017;textualcSEM.
Following the appendix, GSCAm fails if there is at least one construct
modeled as a composite because calculating weight estimates with GSCAm leads to a product
involving the measurement matrix. This matrix does not have full rank
if a construct modeled as a composite is present.
The reason is that the measurement matrix has a zero row for every construct
which is a pure composite (i.e. all related loadings are zero)
and, therefore, leads to a non-invertible matrix when multiplying it with its transposed.