Follow the original finding through to the corrected result
The test fixes two components and leaves them unrotated, using the component directions from PCA without an additional rotation. The reference uses full singular value decomposition (SVD), an independent matrix calculation of the same decomposition.
The page keeps the original difference and the corrected results separate. The corrected calculation is checked first, then its output is checked in the installed application. This makes it possible to see what changed without treating historical values as current expected answers.
Which software produced these results?
The table separates the original installed version, the correction’s source calculation and the corrected installed version. Each result belongs to the version shown; a later product label does not mean that the test was repeated.
On a small screen, swipe the table sideways to see every column.
| Record | QuickPLS build or result checked | Reference | Comparison outcome |
|---|---|---|---|
| Historical PCA precision difference | 1.01.19 | scikit-learn1.6.1 full SVD | The recorded numerical difference means equivalence was not established |
| Corrected PCA full-SVD reference | 1.01.20 correction source | numpy 1.26.4, pandas 2.2.3, scikit-learn 1.6.1, scipy 1.15.2 | Passed the comparisons documented for this record |
| Corrected installed PCA | 1.01.20 | numpy 1.26.4, pandas 2.2.3, scikit-learn 1.6.1, scipy 1.15.2 | Passed the comparisons documented for this record |
The precision difference found in the original test
The original test used installed version 1.01.19 with an unrotated model and two fixed components. Some results exceeded the specified numerical allowance. The original comparison is kept here so the correction can be assessed against the recorded finding.
- A separate test verifies the correction in version 1.01.20. This historical finding is not presented as a known unresolved defect in the current app.
| What was checked | Value / scope |
|---|---|
| Compared numbers and missing-value statuses | 146 |
| Outside the stated tolerance | 93 |
| Different scenario names in the comparison record | 1 |
| Largest absolute difference | 1.66514018229424e-06 |
Inspect the original weight and loading differences
The examples show component PC1 weights and loadings for variables a, b and c. A weight determines a variable’s contribution to the component score; a loading describes its relationship with that component. Each displayed row exceeded the allowed difference in the original comparison.
Values are displayed to 15 significant digits, and differences use the numbers before this display rounding. Use the saved definitions and precision in the download when examining these historical results. Do not use them as the corrected version’s answer values.
On a small screen, swipe the table sideways to see every column.
| Quantity compared | QuickPLS | Reference | Absolute difference | Comparison result |
|---|---|---|---|---|
Outer weight: a on PC1Result identifierloadings/PC1/a/weight | -0.499865938880597 | -0.499866155874582 | 2.16993984669678e-07 | Difference |
Outer loading: a on PC1Result identifierloadings/PC1/a/loading | -0.74538313070546 | -0.745383454279547 | 3.23574087079948e-07 | Difference |
Outer weight: b on PC1Result identifierloadings/PC1/b/weight | -0.497264199114519 | -0.49726441722363 | 2.18109110272646e-07 | Difference |
Outer loading: b on PC1Result identifierloadings/PC1/b/loading | -0.74150350462719 | -0.741503829864114 | 3.25236924503258e-07 | Difference |
Outer weight: c on PC1Result identifierloadings/PC1/c/weight | 0.508469197124088 | 0.508468984953091 | 2.12170997215821e-07 | Difference |
Outer loading: c on PC1Result identifierloadings/PC1/c/loading | 0.758212017542921 | 0.758211701160747 | 3.16382174680996e-07 | Difference |
Check the corrected calculation against full SVD
The corrected calculation was checked against 146 reference values and four mathematical properties that should remain true. The value comparisons assess numerical agreement; the property checks assess consistency with the mathematics of the decomposition.
- This is the corrected source calculation identified in the software table.
- Many checked values come from the same component analysis. They are not independent studies.
| What was checked | Value / scope |
|---|---|
| Values checked | 146 |
| Values outside the allowed difference | 0 |
| Maximum absolute error | 5.218048215738236e-15 |
| Passed | Yes |
Read eigenvalues and explained variation
An eigenvalue describes the amount of variation represented by a component. Explained variance gives its share of the total, and cumulative variance adds the shares through that component. The first component’s explained and cumulative values are the same because no earlier component has been added.
The display uses 15 significant digits. Small nonzero differences can remain when the displayed estimates look equal because differences were calculated before display rounding. The download retains the saved precision and the comparison conventions.
On a small screen, swipe the table sideways to see every column.
| Quantity compared | QuickPLS | Reference | Absolute difference | Comparison result |
|---|---|---|---|---|
Eigenvalue, component 1Result identifiercomponents/0/eigenvalue | 2.22357626680296 | 2.22357626680296 | 4.44089209850063e-16 | Pass |
Explained variance, component 1Result identifiercomponents/0/explained_variance | 0.555894066700739 | 0.555894066700739 | 1.11022302462516e-16 | Pass |
Cumulative explained variance, component 1Result identifiercomponents/0/cumulative_variance | 0.555894066700739 | 0.555894066700739 | 1.11022302462516e-16 | Pass |
Eigenvalue, component 2Result identifiercomponents/1/eigenvalue | 1.63688685467816 | 1.63688685467815 | 8.88178419700125e-16 | Pass |
Explained variance, component 2Result identifiercomponents/1/explained_variance | 0.409221713669539 | 0.409221713669538 | 2.22044604925031e-16 | Pass |
Cumulative explained variance, component 2Result identifiercomponents/1/cumulative_variance | 0.965115780370278 | 0.965115780370277 | 4.44089209850063e-16 | Pass |
Check the corrected values and their chart positions
The comparison checks 146 scientific results and counts, plus 94 chart coordinates, for a four-variable unrotated model with two fixed components. A chart coordinate specifies where a plotted result appears. Checking it helps detect an output drawn in the wrong place even when its table value is correct.
- This installed-app check uses the corrected version identified above.
- The plotted coordinates come from the same analysis. They should not be counted as a second statistical study.
| What was checked | Value / scope |
|---|---|
| Values checked | 146 |
| Differences found | 0 |
| Largest absolute difference | 5.218048215738236e-15 |
| Chart coordinates checked | 94 |
| Mismatched chart coordinates | 0 |
Inspect the values shown by the installed app
These installed results report the eigenvalues, explained shares and cumulative shares for the same example. Compare them with the independent reference and with the corrected calculation above. The repeated rows show agreement at the application-output stage; they do not add another dataset.
Values are displayed to 15 significant digits. Differences use the numbers before this display rounding. The download preserves the recorded precision and explains the reference conventions.
On a small screen, swipe the table sideways to see every column.
| Quantity compared | QuickPLS | Reference | Absolute difference | Comparison result |
|---|---|---|---|---|
Eigenvalue, component 1Result identifiercomponents/0/eigenvalue | 2.22357626680296 | 2.22357626680296 | 4.44089209850063e-16 | Pass |
Explained variance, component 1Result identifiercomponents/0/explained_variance | 0.555894066700739 | 0.555894066700739 | 1.11022302462516e-16 | Pass |
Cumulative explained variance, component 1Result identifiercomponents/0/cumulative_variance | 0.555894066700739 | 0.555894066700739 | 1.11022302462516e-16 | Pass |
Eigenvalue, component 2Result identifiercomponents/1/eigenvalue | 1.63688685467816 | 1.63688685467815 | 8.88178419700125e-16 | Pass |
Explained variance, component 2Result identifiercomponents/1/explained_variance | 0.409221713669539 | 0.409221713669538 | 2.22044604925031e-16 | Pass |
Cumulative explained variance, component 2Result identifiercomponents/1/cumulative_variance | 0.965115780370278 | 0.965115780370277 | 4.44089209850063e-16 | Pass |
Error limits that identified the original difference
These are the rules applied to the historical result. Rows outside them remain marked as differences, even though a later version corrected the 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-08 | 1e-08 | 102 | Specified separately for each compared value |
| 0 | 0 | 44 | Specified separately for each compared value |
Error limits for the corrected calculation
The corrected calculation is checked using these rules. The comparison includes exact checks as well as checks allowing small numerical differences.
abs(native - aligned_reference) <= absolute_tolerance + relative_tolerance * abs(aligned_reference)
Use the same rule explained above: a fixed allowance plus one proportional to the reference value, with the limits in this table. Counts and missing-result checks are assessed separately from estimated values.
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-08 | 1e-08 | 102 | Specified separately for each compared value |
| 0 | 0 | 44 | Specified separately for each compared value |
Error limits for corrected installed results
These rules apply to the scientific results from the installed app. The chart-coordinate checks are reported separately and should not be confused with additional component estimates.
abs(native - aligned_reference) <= absolute_tolerance + relative_tolerance * abs(aligned_reference)
Use the same rule explained above: a fixed allowance plus one proportional to the reference value, with the limits in this table. Counts and missing-result checks are assessed separately from estimated values.
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-08 | 1e-08 | 102 | Specified separately for each compared value |
| 0 | 0 | 44 | Specified separately for each compared value |
What these checks tell you
Read the historical discrepancy and both correction checks in sequence. The corrected source and installed results support this unrotated example with its fixed number of components. They do not test every PCA option.
Rotation changes component directions, and parallel analysis helps choose how many components to retain by comparison with random-data results. Neither was tested here. The numerical and chart counts describe checks within the same analysis, not separate studies.
- The original comparison records the precision problem that prompted the correction.
- The corrected calculation is compared with the independent full-SVD results.
- The installed check also verifies chart positions. Earlier screenshots remain historical context.
Inspect the comparison files
The JSON report separates the original difference, the corrected calculation and the installed-app check. The CSV lets you inspect the individual values and differences for those records.
To repeat the example, you need its original data, preparation, component count, rotation choice and software versions. The downloads report completed tests 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