Match the mathematical problem before comparing the numbers
GSCA chooses estimates by minimising an objective, a numerical measure of model mismatch. The comparison must use the same objective, parameter restrictions and normalisation, the rule that fixes the scale of scores or weights. Otherwise, apparently similar output labels may describe different calculations.
A reflective block treats indicators as measures of a construct. A formative block uses indicators to form a composite. The ordinary reflective example and the model combining both block types are separate comparisons; agreement in one does not resolve a difference in the other.
Which software produced these results?
The table separates the installed reflective example, the older mixed-model cSEM comparison, the later mathematical check and the higher-order/joint tests. SLSQP is an independent numerical solver used for the stated constrained problem. Each row retains the version that produced its results.
On a small screen, swipe the table sideways to see every column.
| Record | QuickPLS build or result checked | Reference | Comparison outcome |
|---|---|---|---|
| Installed reflective GSCA | 1.01.19 | cSEM 0.6.1, SLSQP | Passed the comparisons documented for this record |
| Mixed-block GSCA/cSEM non-equivalence | Saved 1.1.3 outputs | cSEM 0.6.1 | The recorded numerical difference means equivalence was not established |
| Mathematical checks for GSCA models with mixed measurement blocks | 1.01.20 correction source | See which mathematical and app-workflow checks were performed | Passed the comparisons documented for this record |
| HOC/joint GSCA point references | 1.01.19 | NumPy/SciPy constrained SLSQP | Passed the comparisons documented for this record |
An ordinary reflective model in the installed app
One ordinary reflective model was compared after accounting for the number of decimal places in the exported results. The recorded values agree at that precision. The zero difference in the summary therefore describes the compared exports, not proof that all underlying decimal digits are identical.
- This reflective-model result does not resolve the cSEM difference for models with mixed measurement blocks.
- The test checks fitted estimates. It does not test confidence intervals, p-values or other statistical inference.
| What was checked | Value / scope |
|---|---|
| Compared numbers and missing-value statuses | 57 |
| Outside the stated tolerance | 0 |
| Different scenario names in the comparison record | 1 |
| Largest absolute difference | 0 |
Inspect the matching reflective-model outputs
The first rows are paths between constructs; the following rows are indicator loadings. Read the sign as well as the value. The negative path remains negative in both calculations.
The table displays up to 15 significant digits, but these compared exports contain fewer decimal places. Displaying them here adds no new precision. The zero differences reflect the aligned export precision; the download records how that comparison was made.
On a small screen, swipe the table sideways to see every column.
| Quantity compared | QuickPLS | Reference | Absolute difference | Comparison result |
|---|---|---|---|---|
GSCA path coefficient (result row 1)Result identifiergsca_paths/0 | 0.613773 | 0.613773 | 0 | Pass |
GSCA path coefficient (result row 2)Result identifiergsca_paths/1 | -0.40406 | -0.40406 | 0 | Pass |
GSCA path coefficient (result row 3)Result identifiergsca_paths/2 | 0.360538 | 0.360538 | 0 | Pass |
GSCA loading (result row 1)Result identifiergsca_loadings/0 | 0.747964 | 0.747964 | 0 | Pass |
GSCA loading (result row 2)Result identifiergsca_loadings/1 | 0.789989 | 0.789989 | 0 | Pass |
GSCA loading (result row 3)Result identifiergsca_loadings/2 | 0.81993 | 0.81993 | 0 | Pass |
The mixed-measurement comparison differs from cSEM
The comparison fits 141 models in cSEM and compares them with saved QuickPLS results for mixed formative and reflective blocks. The differences are part of the result and remain in the table.
- The results include 2169 values outside their allowed difference limits.
- Later mathematical checks use two data samples and support the tested QuickPLS solution. They do not show that it equals cSEM.
| What was checked | Value / scope |
|---|---|
| Compared numbers and missing-value statuses | 4567 |
| Outside the stated tolerance | 2169 |
| Different scenario names in the comparison record | 142 |
| Largest absolute difference | 0.014037784921628 |
Inspect the differences as well as the passing rows
Rows marked Difference exceed the numerical allowance for that output. The first five examples do so, while the final example passes. Read the decision with the absolute difference; a small-looking number can still exceed the rule chosen for that comparison.
Values are displayed to 15 significant digits, and differences use the numbers before this display rounding. The download keeps the recorded precision and comparison definitions. These rows must remain part of any description of the mixed-model cSEM comparison.
On a small screen, swipe the table sideways to see every column.
| Quantity compared | QuickPLS | Reference | Absolute difference | Comparison result |
|---|---|---|---|---|
Estimate (result row 1)Result identifierestimates/0 | 0.965732061254182 | 0.965877152212488 | 0.000145090958306393 | Difference |
Estimate (result row 2)Result identifierestimates/1 | 0.394952884122524 | 0.394699373930132 | 0.000253510192391615 | Difference |
Estimate (result row 3)Result identifierestimates/2 | -0.363584755604406 | -0.363475190296164 | 0.000109565308242132 | Difference |
Estimate (result row 4)Result identifierestimates/3 | 0.476947929491847 | 0.471458131846167 | 0.00548979764568008 | Difference |
Estimate (result row 5)Result identifierestimates/4 | 0.525441125000573 | 0.530928088116241 | 0.00548696311566832 | Difference |
Estimate (result row 6)Result identifierestimates/5 | 0.997360396142598 | 0.997362901768911 | 2.50562631309847e-06 | Pass |
Check the mixed-model solution by separate calculations
The original data and the sample named omitted50 were checked using SLSQP, a numerical solver that respects parameter restrictions, and a generalised-eigenvalue calculation, a separate matrix-based approach. These calculations test the specified mathematical problem. They are not new cSEM results.
The earlier cSEM difference remains documented. The table also identifies unmatched numeric or missing-result entries, so readers can distinguish the checked outputs from those without a matching reference.
- The mathematical checks do not replace the original comparison or remove its differences from cSEM.
- Two calculations on the same samples are not two independent datasets.
- The repeat check does not cover other model structures, all remaining leave-one-out samples, bootstrap procedures or the installed app.
- Use the mathematical-reference version in the software table when describing this result.
- The counts describe values and output checks from these analyses, not independent studies.
| What was checked | Value / scope |
|---|---|
| Values checked | 1491 |
| Failures | 0 |
| Mismatched missing results | 0 |
| Largest absolute difference | 6.587667526480878e-07 |
| Largest relative difference | 1.1782347942560861e-05 |
| Output-structure checks | 201 |
| Output-structure mismatches | 0 |
| Unmatched numbers or missing results | 8 |
Inspect weights and loadings against the mathematical reference
Each indicator has a loading and a weight. The loading describes its relationship with the score, while the weight describes its contribution to forming that score. The negative weight in the final example is preserved in both calculations.
These references come from the independent mathematical checks, not from the cSEM comparison above. Values are shown to 15 significant digits; differences use the numbers before display rounding. The download records the full saved precision and definitions.
On a small screen, swipe the table sideways to see every column.
| Quantity compared | QuickPLS | Reference | Absolute difference | Comparison result |
|---|---|---|---|---|
Outer loading (indicator row 1)Result identifierouter_estimates/0/loading | 0.997413230007712 | 0.997413230009737 | 2.02571293073106e-12 | Pass |
Outer weight (indicator row 1)Result identifierouter_estimates/0/weight | 0.974520048716561 | 0.974520048817482 | 1.00921271339871e-10 | Pass |
Outer loading (indicator row 2)Result identifierouter_estimates/1/loading | 0.993398370474461 | 0.993398370472702 | 1.75881531561117e-12 | Pass |
Outer weight (indicator row 2)Result identifierouter_estimates/1/weight | 0.388678652231766 | 0.388678652032406 | 1.99360472574739e-10 | Pass |
Outer loading (indicator row 3)Result identifierouter_estimates/2/loading | 0.978099931281729 | 0.978099931285254 | 3.5242919693701e-12 | Pass |
Outer weight (indicator row 3)Result identifierouter_estimates/2/weight | -0.366130205932664 | -0.366130205833099 | 9.95645232926279e-11 | Pass |
Check higher-order and joint-relationship estimates
A higher-order construct (HOC) combines lower-order constructs into a broader construct. The joint-relationship test fits the linked relationships specified in its model. These estimates were checked against independent calculations of the same constrained optimisation problem, meaning the same objective and restrictions on the estimates.
- These checks concern fitted estimates under the specified model definitions. They do not establish agreement for every GSCA option or test confidence intervals and other inference.
- The combined 4834 checks for ordinary, HOC and joint models include the ordinary-model checks already shown above. Count that combined total only once.
| What was checked | Value / scope |
|---|---|
| Compared numbers and missing-value statuses | 4777 |
| Outside the stated tolerance | 0 |
| Different scenario names in the comparison record | 2 |
| Largest absolute difference | 2.47769908812145e-07 |
Inspect the higher-order estimates
These example rows come from the second-stage higher-order estimates. Each QuickPLS value is compared with the independently calculated estimate for the same output. Small differences are assessed using that output’s stated error limit.
Values are shown to 15 significant digits. The differences were calculated before this display rounding, and the download preserves the recorded precision and reference definitions. These are estimates, not bootstrap interval comparisons.
On a small screen, swipe the table sideways to see every column.
| Quantity compared | QuickPLS | Reference | Absolute difference | Comparison result |
|---|---|---|---|---|
Higher-order GSCA second-stage estimate (row 1)Result identifiergsca_hoc_second_estimates_v1/0/estimate | 0.223080768263865 | 0.223080751879133 | 1.63847314604837e-08 | Pass |
Higher-order GSCA second-stage estimate (row 2)Result identifiergsca_hoc_second_estimates_v1/1/estimate | 0.213875441175181 | 0.213875452404326 | 1.12291448084445e-08 | Pass |
Higher-order GSCA second-stage estimate (row 3)Result identifiergsca_hoc_second_estimates_v1/2/estimate | 0.190261297217216 | 0.190261276532106 | 2.06851097084293e-08 | Pass |
Higher-order GSCA second-stage estimate (row 4)Result identifiergsca_hoc_second_estimates_v1/3/estimate | 0.249900690181714 | 0.249900689950277 | 2.31436286801667e-10 | Pass |
Higher-order GSCA second-stage estimate (row 5)Result identifiergsca_hoc_second_estimates_v1/4/estimate | 0.235891494115618 | 0.235891497920772 | 3.80515360887124e-09 | Pass |
Higher-order GSCA second-stage estimate (row 6)Result identifiergsca_hoc_second_estimates_v1/5/estimate | 0.193965235379795 | 0.193965254938428 | 1.95586330464792e-08 | Pass |
Error limits for the reflective-model comparison
These limits apply after aligning the exported results to the same decimal precision. A pass supports the compared values of this reflective model, rather than every unrounded GSCA calculation.
abs(native - aligned_reference) <= absolute_tolerance + relative_tolerance * abs(aligned_reference)
In this formula, native is the QuickPLS value and aligned_reference is the reference value expressed using the same definition. abs means absolute value, so the sign does not affect the size of the difference. Absolute tolerance is a fixed allowance. Relative tolerance adds an allowance that grows with the size of the reference value. A separate check verifies whether a result is available or missing where expected; it does not estimate another effect.
On a small screen, swipe the table sideways to see every column.
| Absolute tolerance | Relative tolerance | Numeric or missing-value checks | Where the comparison rule was specified |
|---|---|---|---|
| 1e-05 | 1e-05 | 56 | Specified separately for each compared value |
| 1e-07 | 1e-07 | 1 | Specified separately for each compared value |
Error limits used to identify the cSEM differences
These are the original rules for the mixed-model cSEM comparison. Values outside them remain marked as differences. The later mathematical checks use their own rules and do not change these decisions.
abs(native - aligned_reference) <= absolute_tolerance + relative_tolerance * abs(aligned_reference)
Use the same fixed-plus-proportional rule explained above, with the limits in this table. Missing-result checks still ask whether the output is unavailable in the expected places.
On a small screen, swipe the table sideways to see every column.
| Absolute tolerance | Relative tolerance | Numeric or missing-value checks | Where the comparison rule was specified |
|---|---|---|---|
| 1e-05 | 1e-05 | 3800 | Specified separately for each compared value |
| 1e-07 | 1e-07 | 451 | Specified separately for each compared value |
| 0 | 0 | 296 | Specified separately for each compared value |
| 1e-08 | 1e-08 | 20 | Specified separately for each compared value |
Error limits for the independent mathematical checks
The limits below apply to the checked mathematical-reference outputs. They support those comparisons only. Entries without a matching reference remain outside this numerical check.
abs(native - aligned_reference) <= absolute_tolerance + relative_tolerance * abs(aligned_reference)
Use the same fixed-plus-proportional rule explained above, with the limits in this table. Missing-result checks still ask whether the output is unavailable in the expected places.
On a small screen, swipe the table sideways to see every column.
| Absolute tolerance | Relative tolerance | Numeric or missing-value checks | Where the comparison rule was specified |
|---|---|---|---|
| 1e-05 | 1e-05 | 1292 | Specified separately for each compared value |
| 1e-08 | 1e-08 | 40 | Specified separately for each compared value |
| 0 | 0 | 155 | Specified separately for each compared value |
| 1e-07 | 1e-07 | 4 | Specified separately for each compared value |
Error limits for higher-order and joint models
These limits apply to the stated higher-order and joint-relationship estimates. The table includes exact checks as well as checks that allow a small numerical difference. It does not describe a bootstrap comparison.
abs(native - aligned_reference) <= absolute_tolerance + relative_tolerance * abs(aligned_reference)
Use the same fixed-plus-proportional rule explained above, with the limits in this table. Missing-result checks still ask whether the output is unavailable in the expected places.
On a small screen, swipe the table sideways to see every column.
| Absolute tolerance | Relative tolerance | Numeric or missing-value checks | Where the comparison rule was specified |
|---|---|---|---|
| 1e-05 | 1e-05 | 3527 | Specified separately for each compared value |
| 0 | 0 | 1241 | Specified separately for each compared value |
| 1e-08 | 1e-08 | 6 | Specified separately for each compared value |
| 1e-07 | 1e-07 | 3 | Specified separately for each compared value |
What these checks tell you
Read each reference on its own terms. Agreement with cSEM for the reflective example, differences from cSEM for the mixed example, and agreement with separate mathematical calculations are three distinct findings.
The comparison rules define how numerical agreement is judged. They do not decide whether a research model is appropriate. Counts and unavailable outputs are checked separately, and repeated values from one analysis are not independent studies.
- The reflective-model comparison uses the reported export precision.
- The mixed-model cSEM comparison retains its differences.
- The independent mathematical checks support the specified problem on the tested samples, while keeping the unmatched entries visible.
- The higher-order and joint-model checks concern fitted estimates. The combined count must not duplicate the ordinary-model checks.
Inspect the comparison files
Start with the JSON report to identify which reference belongs to each comparison. Then use the CSV to inspect the recorded values and differences, including the cSEM mismatches.
Repeating a test requires its original input, model restrictions, settings and software versions. These downloads report completed comparisons and do not include the original datasets or application source code.
Download the comparison results
See the values we checked, the differences we found and the software versions used. The download also identifies the original test files.
About these tests
These are QuickPLS development comparisons. Each record identifies the reference software or mathematical calculation, the tested build and the settings used.
How to understand these comparisons · Find checks for another method