What to do
- Write an Mplus input that reads the data file holding your formative indicators, name the columns in
NAMES, and declare onUSEVARIABLESthe variables you want offered as indicators. - Add this analysis command to it, exactly as it is written here:
ANALYSIS: TYPE = BASIC; - Add this output command to it, exactly as it is written here:
OUTPUT: SAMPSTAT;— the sample means it prints are what the page compares its own reading of the data file against. - Run that input in Mplus. The program writes a plain text file with the same name as the input and the extension
.out, in the folder the input is in, and computes nothing beyond the descriptive statistics. - Drop the raw data file on the first box below and the
.outfile on the second, in either order. Both are read inside your browser and semstudio.tools does not transmit either file; processing occurs in the browser. - Read the paragraphs headed Output read, Data read and Means agree. The last one is the check that the data file and the output belong together: it compares the mean of every variable recomputed here with the mean Mplus printed.
- Choose how many composites to divide the indicators into, and assign each indicator to one of them, or leave it out, in the Composite column of the indicator table. Which indicators form which block is your decision, and the page offers only the variables it read from the output.
- Choose how the weights within each block are set: canonical/MAXVAR, equal, or replicated as the first principal component of each block.
- Press Compute the weights. Read the canonical correlations, the weights, the standardized weights and the structure coefficients, and the checks under them.
- Copy the second-step Mplus input printed at the end, which builds the composites with
DEFINEand fits the common factor on them, and run it.
Both the raw-data file and the corresponding Mplus output are required. The output supplies variable names, missing-value codes and categorical declarations; the data file supplies the cases. A mismatch between recomputed and printed means is reported because it may indicate an incorrect column count or missing-value specification. The remaining user choices are the number of composites, indicator assignment, scale level, and weighting method.
Load the data file and the TYPE = BASIC output
Drop the raw data file on the first box and the Mplus output that describes it on the second, in either order. Both are needed: the output supplies the variable names, the missing value codes and the CATEGORICAL declaration, and the data file supplies the cases.
TYPE = BASIC output here, or press Enter to choose one.
Both files are read in your browser and semstudio.tools does not transmit either file; processing occurs in the browser. Windows-1252, UTF-8 and UTF-16 files are decoded from their bytes, because Mplus on Windows writes output in Windows-1252 and reading it as UTF-8 corrupts every accented character. The data file may separate values by spaces, tabs, commas or semicolons, and a case may run over several lines.
Indicators and composites
Every indicator the output declares is listed below. Assign each of them to one composite, or leave it out. Which indicators form which block is a decision about the construct, not a datum, so it is yours to make; the names, the values and the summary statistics beside them are read from the two files and cannot be changed here.
The search divides the indicators into two composites. It is available when the number of composites is set to two.
Indicators read from the output. Composite decides which composite the indicator enters; Scale level decides whether its values are used as measurements (numerical) or replaced by optimal quantifications (ordinal, nominal); Valid is the number of cases with a value that is not missing, Mean and SD are computed from them, and Distinct is the number of different values.
Results
TYPE = BASIC output on the two boxes above, assign the indicators to composites, then press Compute the weights.Second-step syntax
The Mplus input for the second step appears here once the weights have been computed.
Methods and formulas
The two steps
A formative latent variable is written by Treiblmaier, Bentler and Mair (2011) as
Here F is the formative latent variable, V1 to Vk are the observed indicators that define it, b1 to bk are their coefficients, and D is a disturbance uncorrelated with them.
The model is not identified: because F is unobserved the coefficients cannot be determined, and the disturbance has no rationale that would fix its variance. The proposal is to leave D aside and work with the determinate part, and to divide that part into two or more pieces:
Here P is the determinate part of F, that is F without its disturbance, and P1 and P2 are the two composites it is divided into.
In the second step those parts are treated as reflective indicators of a common factor , which then approximates F as closely as the division allows. The common factor is identified, can be estimated, and can be placed in a larger structural model in the ordinary way.
Proposition 2 of the article states that the squared correlation between and F is maximized when the sum of the loadings is maximal and, for a given level of random error variance, the specific variances of the composites are minimal. The consequence the authors draw is that approximates F better as the composites are more highly correlated and the loadings larger, which is why a division that yields highly correlated parts is preferred even though formative measurement does not require the parts to correlate at all.
Step 1: the ways of dividing the determinate part
The article lists at least four ways of dividing P. Two of them fix the weights from outside the data, and this page does not compute them, because the numbers they need are in no file: the a priori split, in which the indicators are divided on theoretical grounds and the original coefficients are applied within each set, as in the odd and even sums and ; and the split with original weights, in which each indicator is itself decomposed as and the same coefficient is applied to both halves. Both require the coefficients to be supplied, and a coefficient supplied by hand is a datum this page will not take. The article describes both, and a reader who has such coefficients can write the two DEFINE statements directly.
The two the page computes take their weights from the data:
- Split with replicated weights. The weighting procedure is run separately in each half. The article gives principal component analysis as its example of a weighting procedure (p. 8) and, for P, leaves the choice between the correlation and the covariance matrix to the researcher (p. 7); the version computed here takes the first principal component of the correlation matrix of each block and rescales it so that the composite has unit variance. Because the weights are estimated independently in the two halves they are free to differ, and the article observes that the parts may then be less highly correlated than under the original weights.
- Split with weights for maximal correlation. The weights are chosen so that the two composites correlate as highly as they can. This is canonical correlation analysis (Hotelling, 1936), and it is the method the article uses in both of its examples.
Equal weights are offered as well; they are the centroid weighting the article lists among the traditional choices for P (p. 7), applied within each composite. The article describes the replicated and the maximal-correlation splits on halves of each indicator, Vi = Vi1 + Vi2 (p. 8); its illustration and its empirical example apply canonical weights to a division of whole indicators into two sets (pp. 9–11), which is what this page does. The article adds that all of these methods can be used when P is to be divided into three or more parts, with canonical analysis of several sets of variables in the sense of Kettenring (1971) in place of ordinary canonical correlation analysis.
Maximally correlated composites: two blocks
Write S for the covariance matrix of the indicators, partitioned into Sxx, Syy and Sxy according to the division. The problem is to find weight vectors a and b that maximize
Here P1 and P2 are the two composites, a and b the weight vectors of the two blocks, Sxx and Syy the covariance matrices within each block, and Sxy the matrix of covariances between the two blocks.
Setting the derivatives to zero gives a pair of stationarity conditions:
Here ρ is the correlation between the two composites and the matrices and vectors are those of the previous formula.
The solution comes from the singular value decomposition of a single matrix:
Here K is the matrix whose singular values are the canonical correlations, Sxx−1/2 and Syy−1/2 are the symmetric inverse square roots of the two within-block matrices, U and V hold the left and right singular vectors, and ρ1 ≥ ρ2 ≥ … are the singular values.
The weights of the first pair of composites follow from the first singular vectors:
Here u1 and v1 are the first columns of U and V, and a and b the weight vectors of the two blocks.
Because u1 and v1 have unit length these weights satisfy and : each composite has sample variance exactly one, computed with the divisor. That is the convention behind the raw canonical coefficients of SPSS MANOVA … /DISCRIM; the R function stats::cancor normalizes to a sum of squares of one instead, so its coefficients are those shown here divided by the square root of . Weights obtained by any other method on this page are rescaled to unit composite variance in the same way, which changes no correlation and no standardized quantity and makes the raw weights of the different methods comparable.
The symmetric inverse square roots are built from the eigendecomposition of each block, computed by cyclic Jacobi rotations, and the singular value decomposition is a one-sided Jacobi sweep. Eigenvalues smaller than 10−10 times the largest are dropped, which turns the inverse square root into a Moore–Penrose pseudo-inverse. That happens exactly when a block is rank deficient — an indicator duplicated, a total entered together with its parts, an item recoded and kept alongside the original. The page then reports the rank of each block against the number of indicators in it, and truncates the solution to as many canonical dimensions as the smaller rank allows, because the directions that were dropped would return weight vectors of zero and a composite of zero variance is not a canonical variate. Inside a rank-deficient block the weights are not unique: the pseudo-inverse returns one solution out of infinitely many, all giving the same composite.
Maximally correlated composites: three or more blocks
With three or more blocks there is no single correlation to maximize, only a correlation matrix among the composites, and several criteria have been proposed for it. Kettenring (1971) collected them; all reduce to canonical correlation analysis when there are two blocks. Writing RP for the correlation matrix of the composites, each standardized to unit variance:
- SUMCOR maximizes the sum of the correlations between all pairs of composites.
- SSQCOR maximizes the sum of the squared correlations between all pairs, so a strong negative relation counts as much as a strong positive one.
- MAXVAR maximizes the largest eigenvalue of RP, that is, the variance accounted for by the first principal component of the composites.
- MINVAR minimizes the smallest eigenvalue of RP, which drives the composites toward a linearly dependent set.
- GENVAR minimizes the determinant of RP, the generalized variance of the composites.
This page uses MAXVAR, in the formulation of Horst (1961) and Carroll (1968), because it is the criterion that matches the second step: what the second step extracts from the composites is a single common factor, and the largest eigenvalue of RP is exactly the variance one such dimension can account for. The computation stacks the blocks into one matrix whose blocks are
Here Mjk is the block of M in row j and column k, Sjj and Skk are the covariance matrices within blocks j and k, and Sjk is the matrix of covariances between them.
Its diagonal blocks are therefore identity matrices. Taking the eigenvector w belonging to the largest eigenvalue of M and normalizing each block of it to unit length gives the weights of block j:
Here aj is the weight vector of block j, wj is the part of the leading eigenvector belonging to that block, and ‖wj‖ is its length.
Writing , the quadratic form equals with , so maximizing it over unit-length w is the same problem as maximizing the largest eigenvalue of RP: the largest eigenvalue of M and the largest eigenvalue of RP are the same number. The page reports the correlation matrix of the composites, that eigenvalue, and the proportion of the total variance of the composites it accounts for, which is the eigenvalue divided by the number of blocks. With two blocks M has the eigenvalues , its leading eigenvector is up to a scale factor, and the procedure returns the canonical solution; the self-test checks that equality on the six-variable illustration and on two hundred random problems.
Raw weights, standardized weights and structure coefficients
Three quantities describe how an indicator enters a composite, and they answer different questions. The raw weight is the coefficient applied to the indicator in its own metric. It is the number that goes into the DEFINE statement, and it depends on the unit in which the indicator was measured: an item scored from 1 to 100 gets a weight about a hundred times smaller than the same item scored from 0 to 1. The standardized weight is the coefficient that would apply if the indicator and the composite were both standardized:
Here w*i is the standardized weight of indicator i, wi its raw weight, σVi the standard deviation of the indicator, and σPj the standard deviation of the composite it belongs to.
It is comparable across indicators measured on different scales, and it is a partial coefficient: it says what the indicator contributes over and above the other indicators in the same block. The structure coefficient is the correlation between the indicator and its own composite:
Here r(Vi, Pj) is the correlation between indicator i and composite j, (Sjjwj)i is the i-th element of the covariance matrix of the block multiplied by its weight vector, and the two standard deviations are those of the indicator and of the composite.
It is a simple correlation, so what the other indicators do does not affect it.
The article is explicit about which of the three to read: “In CCA, the canonical coefficients are typically not used; the correlations between the variables and the new canonical variates are interpreted instead. These are commonly referred to as loadings and can be interpreted as ordinary factor or component loadings” (Treiblmaier, Bentler, & Mair, 2011, p. 11). The reason is the usual one for regression coefficients: when the indicators are correlated, a weight can be small, or negative, merely because another indicator in the same block already carries that part of the variance, and the weight then says nothing about whether the indicator is related to the composite. The structure coefficient answers that question directly. A weight is a statement about a linear combination, not a measure of the importance of an indicator; the two coincide only when the indicators within a block are uncorrelated. The page prints all three and marks any block whose weights are of both signs, because such a composite is a contrast between groups of indicators rather than a weighted sum of them.
The sign of a whole canonical pair is arbitrary: replacing a by and b by leaves the correlation unchanged, and nothing in the data chooses between them. With two composites the page fixes the sign by making the sum of the structure coefficients of the first block positive, so that the composite runs in the same direction as the majority of its indicators; with three or more it makes the sum of all the weights positive. The relative signs within a block are not arbitrary and carry the meaning described above.
Raw canonical coefficients cannot always be recovered from a published correlation matrix because they depend on the variables’ standard deviations. Canonical correlations and structure coefficients are scale-free and can be reproduced from a correlation matrix. The published examples are therefore used as self-test benchmarks rather than as an input route.
How many dimensions, and how much is explained
With two blocks there are as many canonical correlations as there are indicators in the smaller block. Only the first pair of composites is used in the second step, but the others say whether the relation between the blocks is one-dimensional. Wilks's lambda for the dimensions from onwards, with k the number of canonical correlations already extracted, is
Here Λk is Wilks's lambda for the dimensions beyond the k-th, and ρj is the j-th canonical correlation, the product running over every dimension after the k-th.
Bartlett's (1941) large-sample test of the hypothesis that all the canonical correlations from that point on are zero in the population is
Here χ² is the test statistic, n the number of complete cases, p and q the numbers of indicators in the two blocks, k the number of canonical correlations already extracted, Λk Wilks's lambda just defined, and df the degrees of freedom the statistic is referred to.
The test at asks whether the two blocks are related at all; a test that is significant at as well says that a single pair of composites does not exhaust the relation between the blocks, which matters because the second step keeps only the first pair. The chi-square tail is computed from the upper incomplete gamma function evaluated by its continued fraction rather than as one minus the lower tail, which would lose every significant digit and return exactly zero for a probability below about .
The redundancy of one set of indicators on the j-th pair of canonical variates (Stewart & Love, 1968) is the proportion of the total variance of that set accounted for by the other set's j-th canonical variate:
Here Rd(X | Wj) is the redundancy of the first set given the j-th variate of the second, p is the number of indicators in the first set, Vi is one of them, Uj and Wj are the j-th canonical variates of the first and of the second set, and ρj is the j-th canonical correlation.
The two expressions are equal because the correlation of an indicator with the other set's variate is the canonical correlation times its correlation with its own, so the index is also the mean squared structure coefficient of the set multiplied by the squared canonical correlation. The redundancy index of Stewart and Love is the sum of these terms over the pairs; the page reports the terms, one per dimension, because the second step keeps only the first pair. The page computes each term the first way and checks it against the second; a difference above 10−6 would mean a numerical failure and is reported as one. Across two thousand randomly generated problems, including deliberately near-singular ones, the largest difference observed was 1.6 × 10−9. The index is asymmetric: the redundancy of the first set is generally not the redundancy of the second. A high canonical correlation with a low redundancy means that the composites are strongly related to each other and weakly related to the indicators they are built from, which is the situation in which the second-step factor represents very little of the material the formative construct was supposed to summarize.
Categorical indicators and optimal scaling
Indicators declared CATEGORICAL are treated as category labels rather than equally spaced measurements. The page estimates optimal quantifications jointly with the composite weights: ordinal quantifications preserve category order, whereas nominal quantifications are unconstrained. The implementation follows nonlinear canonical correlation analysis (Gifi, 1990) and the OVERALS alternating-least-squares algorithm (van der Burg, de Leeuw, & Verdegaal, 1988), with pool-adjacent-violators regression for ordinal updates. Categories represented by fewer than three cases or less than 1% of the sample are merged with an adjacent low-frequency category and the merge is reported. Because the solution can depend on initialization, the algorithm uses deterministic and random starts and retains the lowest-loss solution, stopping after the same loss is reached six times. With numerical indicators, the procedure reduces to ordinary canonical correlation analysis.
Once the quantifications are fixed the quantified variables are treated as the observed variables: their covariance matrix is formed and every quantity on this page — weights, standardized weights, structure coefficients, canonical correlations, Wilks's lambda, redundancy — is computed from it in exactly the same way as for numerical indicators. The results show, for each categorical indicator, the weight applied to the quantified variable together with the quantification of every original category and the number of cases in it, so that the recoding can be checked; the generated syntax contains the same recoding as a sequence of IF statements, so the analysis is reproducible from the syntax alone. When the monotone fit assigns the same value to neighboring categories the page says so, because the indicator is then being used as a coarser variable than it was measured.
Step 2: the factor on the composites
The composites are entered as reflective indicators of a common factor:
Here P1 and P2 are the two composites, F* is the common factor of the second step, β1 and β2 are its loadings on them, and E1 and E2 are two residuals uncorrelated with each other.
With two composites this model is not identified as it stands: two loadings, two residual variances and the factor variance are five parameters against the three distinct elements of the covariance matrix of P1 and P2. Fixing the factor variance at one and constraining the two loadings to be equal leaves three free parameters against three moments, which is a just-identified model. The equality of the two loadings is the identifying restriction used by Treiblmaier, Bentler and Mair (2011) for equivalent two-composite splits (pp. 9, 11); fixing the factor variance at one is the Mplus scaling choice used here to set the metric of the latent factor. This parameterization is scale-equivalent to any alternative identification that imposes the same equality restriction. The generated syntax makes both choices explicit in comments. The residual variances are left free. Constraining them equal as well, which makes the two composites parallel indicators, is the further restriction usually recommended for a factor with two indicators; here it is unnecessary, because the weights standardize both composites to unit variance on the same data, so their two sample variances are equal exactly, the constraint holds by construction, and its one degree of freedom tests nothing. When the composites are standardized to unit variance, as the weights on this page make them, the standardized loading is the square root of the correlation between them: the article's .746 for the a priori split of the six-variable illustration and .894 for the canonical split, and .681 for the privacy example.
With three or more composites the loadings need no equality constraint: the factor variance is fixed at one, and the loadings and the residual variances are all free. With three composites the model is again just identified; with four or more it has degrees of freedom. The results panel still reports the square root of the mean correlation between the composites as the loading a model with equal loadings would give; with three or more composites it is a summary of the correlations, and the loadings the second step estimates are free to differ from it. The generated syntax is read back by the page and checked before it is shown, and the checklist under it reports what was verified: that every variable used on the right-hand side of a DEFINE statement is either declared in NAMES or created earlier in DEFINE, that every composite appears in USEVARIABLES, that no intermediate quantified variable has been left there, that no name exceeds the eight characters Mplus allows and no line the ninety it reads, and that the coefficients read back out of the DEFINE statements match the weights in the table. The check on the intermediate variables matters because a variable created in DEFINE and listed in USEVARIABLES enters the model as an observed variable: the quantified variables would then be analyzed alongside the composites, and Mplus would return a fit that has nothing to do with the intended model. Only the composites belong in USEVARIABLES.
Choosing the division from the data
The exploratory search partitions the selected indicators into two blocks and evaluates the first canonical correlation. Mirror-image partitions are counted once, giving 2k−1 − 1 distinct partitions for k indicators. Enumeration is exhaustive up to 200,000 partitions (18 indicators); larger problems use hill climbing from random starts, so the reported partition may not be the global maximum. The search runs in short chunks to keep the page responsive.
Treiblmaier, Bentler and Mair optimize weights within a substantively defined partition. Optimizing the partition itself on the same data adds another selection step and can further inflate the sample canonical correlation. The exploratory search is therefore presented as a sensitivity check: its partition is a hypothesis for external evaluation, not a default reporting choice.
Missing data
Cases are analyzed listwise across the indicators assigned to the selected composites. The page reports complete cases, excluded cases, and valid cases per indicator. Missing-value codes declared in the Mplus output, together with . and *, are treated as missing. No imputation or full-information estimation is performed because the method operates on a covariance matrix. With substantial case loss, the resulting covariance matrix represents the complete-case subset and requires the corresponding missing-data assumptions for broader interpretation.
What this page does not do
The two-step procedure does not estimate the disturbance D; consequently, the correlation between the constructed score F* and the intended formative construct F is unknown (Treiblmaier, Bentler, & Mair, p. 9). The method also does not determine whether formative measurement is substantively appropriate. Weights are sample estimates without standard errors, and canonical correlations can be upwardly biased in small samples. The page reports the complete-case-to-indicator ratio and flags values below five. For categorical indicators, the exploratory partition search uses the raw-value covariance matrix because re-estimating quantifications for every partition is not implemented.
Self-test
Append ?selftest=1 to run the in-browser checks. They cover the published numerical benchmarks, canonical-correlation and MAXVAR calculations, Wilks’s lambda and Bartlett’s test, rank-deficient matrices, partition enumeration, data and input parsers, optimal scaling, generated syntax, and randomized composite problems.
References
- Bartlett, M. S. (1941). The statistical significance of canonical correlations. Biometrika, 32(1), 29–37. https://doi.org/10.1093/biomet/32.1.29
- Bollen, K. A. (2002). Latent variables in psychology and the social sciences. Annual Review of Psychology, 53(1), 605–634. https://doi.org/10.1146/annurev.psych.53.100901.135239
- Bollen, K. A., & Lennox, R. (1991). Conventional wisdom on measurement: A structural equation perspective. Psychological Bulletin, 110(2), 305–314. https://doi.org/10.1037/0033-2909.110.2.305
- Carroll, J. D. (1968). Generalization of canonical correlation analysis to three or more sets of variables. Proceedings of the 76th Annual Convention of the American Psychological Association, 3, 227–228.
- Diamantopoulos, A., & Winklhofer, H. M. (2001). Index construction with formative indicators: An alternative to scale development. Journal of Marketing Research, 38(2), 269–277. https://doi.org/10.1509/jmkr.38.2.269.18845
- Gifi, A. (1990). Nonlinear multivariate analysis. Wiley.
- Horst, P. (1961). Relations among m sets of measures. Psychometrika, 26(2), 129–149. https://doi.org/10.1007/BF02289710
- Hotelling, H. (1936). Relations between two sets of variates. Biometrika, 28(3–4), 321–377. https://doi.org/10.1093/biomet/28.3-4.321
- Kettenring, J. R. (1971). Canonical analysis of several sets of variables. Biometrika, 58(3), 433–451. https://doi.org/10.1093/biomet/58.3.433
- Stewart, D., & Love, W. (1968). A general canonical correlation index. Psychological Bulletin, 70(3), 160–163. https://doi.org/10.1037/h0026143
- Treiblmaier, H., Bentler, P. M., & Mair, P. (2011). Formative constructs implemented via common factors. Structural Equation Modeling, 18(1), 1–17. https://doi.org/10.1080/10705511.2011.532693
- van der Burg, E., de Leeuw, J., & Verdegaal, R. (1988). Homogeneity analysis with k sets of variables: An alternating least squares method with optimal scaling features. Psychometrika, 53(2), 177–197. https://doi.org/10.1007/BF02294131