Why does the order of preparation matter?
Mean replacement fills a missing value with the specified mean. Centring subtracts a mean, and scaling changes the units used for the calculation. When these prepared variables are multiplied to make an interaction, the result depends on doing those operations in the intended order.
The reference follows the same replacement, centring and scaling steps before forming the interaction. A conditional-process model can rely on this comparison only for the preparation and effect definitions that actually match. Agreement on a generated term does not by itself check all later effect estimates or uncertainty measures.
Which reference calculations were used?
The first record uses the listed cSEM and Python-library versions to check the saved generated-term calculation. The second records earlier conditional-process work. Their results are kept separate because the detailed comparison and the broader summary do not test the same set of outputs.
On a small screen, swipe the table sideways to see every column.
| Record | QuickPLS build or result checked | Reference | Comparison outcome |
|---|---|---|---|
| Generated two-way mean replacement | Saved checks of mean replacement for missing values and refitting models with generated terms. | cSEM 0.6.1, statsmodels 0.14.4, NumPy 1.26.4, SciPy 1.15.2 | Passed the comparisons documented for this record |
| Conditional process evidence | Evidence carried forward from 1.01.18/1.01.19 | See which mathematical and app-workflow checks were performed | Checks of specified workflows or evidence from earlier versions; no full external comparison |
Two-way interactions from the same missing-data example
The test uses a 24-row synthetic source. It includes 29 original or resampled datasets with available results and 2 all-missing samples without results. The comparison follows 15 named result targets and 18 probe predictions, which evaluate the fitted model at specified input values.
In the saved review, separate cSEM calculations supplied the first-stage model estimates, and statsmodels supplied the joint two-way regression. The comparison checks prepared inputs, generated terms and the listed model outputs. The unavailable samples test whether an unusable input is reported as unavailable instead of producing an answer.
- The comparison excludes 145 fields used to report calculation progress. Those fields are not counted as checked scientific results.
- The named two-way point effects and simple slopes are included. These checks do not establish three-way interactions, higher-order models, complete conditional-process analyses or inference summaries. A higher-order construct combines lower-level constructs into a broader concept and needs its own matching test.
| What was checked | Value / scope |
|---|---|
| Compared numbers and missing-value statuses | 30849 |
| Outside the stated tolerance | 0 |
| Different scenario names in the comparison record | 31 |
| Largest absolute difference | 4.32986979603811e-15 |
Joint-model coefficients, interaction effects and simple slopes
These are the fifteen checked targets for the original 24-row example. The joint model predicts Y from X, Z and W and includes both X × Z and X × W. Original missing indicators are replaced before the construct scores and interaction products are formed. Attached case and frequency weights are not used in this comparison.
The standardised-product coefficient uses the rescaled product as a predictor. The raw-product interaction coefficient divides that coefficient by the product’s sample standard deviation. This distinction matters when deriving the slope of X at a given moderator score. For X × W, the two coefficients are 0.17985898828899546 and 0.16478081967306876, respectively.
With Z held at zero, the X → Y point slope is 0.989180815626047 at W=-1 and 1.3187424549721845 at W=1. The table also shows the corresponding Z-moderated slopes with W held at zero. These are checked point calculations, not confidence intervals or a test of the difference between two slopes.
cSEM supplied the first-stage weights; statsmodels supplied the joint regression. Independent arithmetic checked the product scaling, slopes and predictions. Values are displayed to 15 significant digits, while differences use the saved numbers before that display rounding.
On a small screen, swipe the table sideways to see every column.
| Result | QuickPLS | Reference | Absolute difference | Comparison result |
|---|---|---|---|---|
| Joint model: intercept for Y | -4.16333634234434e-17 | 1.21430643318376e-17 | 5.3776427755281e-17 | Pass |
| Joint model: W → Y | -0.149283593321751 | -0.149283593321752 | 3.33066907387547e-16 | Pass |
| Joint model: X → Y | 1.15396163529912 | 1.15396163529912 | 2.22044604925031e-16 | Pass |
| Joint model: Z → Y | 0.15190409090539 | 0.151904090905391 | 7.49400541621981e-16 | Pass |
| Joint model: R² for Y | 0.833323284761521 | 0.833323284761521 | 0 | Pass |
| X × W: raw-product interaction coefficient | 0.164780819673069 | 0.164780819673068 | 2.77555756156289e-16 | Pass |
| X × Z: raw-product interaction coefficient | -0.196471541179649 | -0.19647154117965 | 2.22044604925031e-16 | Pass |
| X → Y slope at W=-1, Z=0 | 0.989180815626047 | 0.989180815626047 | 1.11022302462516e-16 | Pass |
| X → Y slope at W=0, Z=0 | 1.15396163529912 | 1.15396163529912 | 2.22044604925031e-16 | Pass |
| X → Y slope at W=1, Z=0 | 1.31874245497218 | 1.31874245497218 | 4.44089209850063e-16 | Pass |
| X → Y slope at Z=-1, W=0 | 1.35043317647877 | 1.35043317647877 | 0 | Pass |
| X → Y slope at Z=0, W=0 | 1.15396163529912 | 1.15396163529912 | 2.22044604925031e-16 | Pass |
| X → Y slope at Z=1, W=0 | 0.957490094119467 | 0.957490094119466 | 4.44089209850063e-16 | Pass |
| X × W: standardised-product coefficient | 0.179858988288995 | 0.179858988288995 | 3.33066907387547e-16 | Pass |
| X × Z: standardised-product coefficient | -0.243498599606482 | -0.243498599606482 | 2.22044604925031e-16 | Pass |
First-stage loadings from the original comparison
These loadings describe the constructs before interaction formation. They remain part of the supporting comparison, alongside the final interaction results above.
On a small screen, swipe the table sideways to see every column.
| Quantity compared | QuickPLS | Reference | Absolute difference | Comparison result |
|---|---|---|---|---|
First-stage loading: w in WResult identifierstage_one/outer_loadings/W/w | 1 | 1 | 2.22044604925031e-16 | Pass |
First-stage loading: x1 in XResult identifierstage_one/outer_loadings/X/x1 | 0.983476516972905 | 0.983476516972905 | 2.22044604925031e-16 | Pass |
First-stage loading: x2 in XResult identifierstage_one/outer_loadings/X/x2 | 0.985545633487609 | 0.985545633487608 | 3.33066907387547e-16 | Pass |
First-stage loading: y1 in YResult identifierstage_one/outer_loadings/Y/y1 | 0.98456463676241 | 0.98456463676241 | 1.11022302462516e-16 | Pass |
First-stage loading: y2 in YResult identifierstage_one/outer_loadings/Y/y2 | 0.983990628245417 | 0.983990628245417 | 1.11022302462516e-16 | Pass |
First-stage loading: z1 in ZResult identifierstage_one/outer_loadings/Z/z1 | 0.975259159035757 | 0.975259159035757 | 1.11022302462516e-16 | Pass |
Replacement means, product scaling and fixed predictions
The seven replacement means below come from the observed original indicators in this point sample. Each product then has its own mean and sample standard deviation, computed from the resulting first-stage scores. These values establish the preparation order behind the interaction coefficients.
The optional prediction table evaluates the saved joint equation at fixed X and moderator scores. It holds the other moderator at zero and retains both product-centering offsets. These are calculations at specified inputs, not held-out prediction accuracy.
On a small screen, swipe the table sideways to see every column.
| Result | QuickPLS | Reference | Absolute difference | Comparison result |
|---|---|---|---|---|
| w: mean used for missing-value replacement | 0.0469621339143 | 0.0469621339143 | 0 | Pass |
| x1: mean used for missing-value replacement | -0.367121958996 | -0.367121958996 | 5.55111512312578e-17 | Pass |
| x2: mean used for missing-value replacement | -0.3808639391266 | -0.3808639391266 | 0 | Pass |
| y1: mean used for missing-value replacement | -0.357575722076905 | -0.357575722076905 | 5.55111512312578e-17 | Pass |
| y2: mean used for missing-value replacement | -0.323321884564286 | -0.323321884564286 | 5.55111512312578e-17 | Pass |
| z1: mean used for missing-value replacement | 0.16925055922945 | 0.16925055922945 | 2.77555756156289e-17 | Pass |
| z2: mean used for missing-value replacement | 0.1022023848713 | 0.1022023848713 | 0 | Pass |
| X × W: product mean | -0.198558913192375 | -0.198558913192375 | 1.11022302462516e-16 | Pass |
| X × W: product sample standard deviation | 1.09150439138391 | 1.09150439138391 | 2.22044604925031e-16 | Pass |
| X × Z: product mean | 0.281902011235099 | 0.281902011235099 | 5.55111512312578e-17 | Pass |
| X × Z: product sample standard deviation | 1.2393581184556 | 1.2393581184556 | 2.22044604925031e-16 | Pass |
All eighteen checked fixed-input predictions
On a small screen, swipe the table sideways to see every column.
| Result | QuickPLS | Reference | Absolute difference | Comparison result |
|---|---|---|---|---|
| Predicted Y at X=-1, W=-1, Z=0 | -0.75179279922606 | -0.75179279922606 | 0 | Pass |
| Predicted Y at X=0, W=-1, Z=0 | 0.237388016399987 | 0.237388016399987 | 3.05311331771918e-16 | Pass |
| Predicted Y at X=1, W=-1, Z=0 | 1.22656883202603 | 1.22656883202603 | 2.22044604925031e-16 | Pass |
| Predicted Y at X=-1, W=0, Z=0 | -1.06585721222088 | -1.06585721222088 | 0 | Pass |
| Predicted Y at X=0, W=0, Z=0 | 0.0881044230782358 | 0.0881044230782358 | 1.38777878078145e-17 | Pass |
| Predicted Y at X=1, W=0, Z=0 | 1.24206605837735 | 1.24206605837735 | 4.44089209850063e-16 | Pass |
| Predicted Y at X=-1, W=1, Z=0 | -1.3799216252157 | -1.3799216252157 | 2.22044604925031e-16 | Pass |
| Predicted Y at X=0, W=1, Z=0 | -0.0611791702435155 | -0.0611791702435158 | 3.53883589099269e-16 | Pass |
| Predicted Y at X=1, W=1, Z=0 | 1.25756328472867 | 1.25756328472867 | 8.88178419700125e-16 | Pass |
| Predicted Y at X=-1, Z=-1, W=0 | -1.41423284430592 | -1.41423284430592 | 6.66133814775094e-16 | Pass |
| Predicted Y at X=0, Z=-1, W=0 | -0.0637996678271545 | -0.0637996678271553 | 7.63278329429795e-16 | Pass |
| Predicted Y at X=1, Z=-1, W=0 | 1.28663350865161 | 1.28663350865161 | 8.88178419700125e-16 | Pass |
| Predicted Y at X=-1, Z=0, W=0 | -1.06585721222088 | -1.06585721222088 | 0 | Pass |
| Predicted Y at X=0, Z=0, W=0 | 0.0881044230782358 | 0.0881044230782358 | 1.38777878078145e-17 | Pass |
| Predicted Y at X=1, Z=0, W=0 | 1.24206605837735 | 1.24206605837735 | 4.44089209850063e-16 | Pass |
| Predicted Y at X=-1, Z=1, W=0 | -0.71748158013584 | -0.717481580135839 | 1.11022302462516e-15 | Pass |
| Predicted Y at X=0, Z=1, W=0 | 0.240008513983626 | 0.240008513983627 | 7.49400541621981e-16 | Pass |
| Predicted Y at X=1, Z=1, W=0 | 1.19749860810309 | 1.19749860810309 | 2.22044604925031e-16 | Pass |
The separate conditional-process checks
This record concerns mean replacement in the identified source version and simulation checks for specific conditional-process settings. Such models allow an effect to depend on a moderator, a variable that changes the relationship being studied. The record summarises that earlier work; it is not another complete external comparison of the generated-term example above.
- Weighted analyses, groups, higher-order constructs (HOC) and confidence intervals need separately identified tests. This record does not establish numerical agreement for the Store app.
The error limits for generated terms and model outputs
abs(native - aligned_reference) <= absolute_tolerance + relative_tolerance * abs(aligned_reference)
The formula compares QuickPLS with the reference after the definitions have been matched. It allows a fixed difference plus a difference proportional to the reference value. Different output types use the different limits shown below; some must match exactly. Unavailable results must occur in the same positions, rather than being replaced with numerical answers.
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-12 | 1e-12 | 6542 | Specified separately for each compared value |
| 0 | 0 | 4854 | Specified separately for each compared value |
| 1e-08 | 1e-08 | 19453 | Specified separately for each compared value |
What this comparison supports
The detailed result supports the checked preparation order and two-way calculations for the stated original and resampled inputs. The two unavailable samples are part of the check: correct handling means reporting that a result is unavailable, not forcing every sample to return an estimate.
Many compared values come from the same source dataset and its resamples. Their count is not a count of independent studies. Keep the selected conditional-process summary separate when deciding whether a more complex model has a matching comparison.
- Read the output-specific error limits with the comparison values. Exact checks, decimal results and unavailable-result positions have different rules; a rounded table cannot show every small difference.
How to inspect the generated-term comparison
The JSON report records versions, settings and the compared samples. The CSV lets you inspect the available numerical results. Start with the source-variable preparation, then follow the first-stage estimates, generated terms and later outputs so that the order of operations remains clear.
A rerun requires the original dataset and the same missing-data rules, model, settings and software versions. These files document completed tests; the original dataset and app source code are not included.
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