mir_pls — MIR-PLS inverse-regression variant

Group: Multi-block / cross-modal · Registry tolerance: 0.05 · Parity reference: paper-only (Sjöblom, J., Svensson, O., Josefson, M., Kullberg, H. & Wold, S. (1998). An evaluation of orthogonal signal correction applied to calibration transfer of near infrared spectra. Chemom. Intell. Lab. Syst. 44(1-2), 229-244. (Inverse-regression PLS variant; no widely installable port.))

Description

MIR-PLS — Inverse-regression PLS (§13)

Parameters

Name

Type

Default

Notes

n_components

int

4

registry benchmark cell value

Explanations

Bibliographic source

Implementation-specific inverse-regression construction; no canonical paper is claimed.

Mathematical principle

This routine fits a SIMPLS mapping from Y to X and then converts that map into a predictor from X to Y with the regularized right pseudoinverse \(\mathbf A^T(\mathbf A\mathbf A^T+10^{-6}\mathbf I)^{-1}\). The name does not denote a fixed mid-infrared absorbance transform or OSC procedure.

Appropriate uses

Experimental inverse-regression calibration in which a SIMPLS map from Y to X is algebraically inverted.

Limits and validation

This is an implementation-specific regularized pseudoinverse, not a standard mid-infrared preprocessing method or canonical MIR-PLS algorithm.

Implementation

The pseudoinverse regularizer is fixed at \(10^{-6}\). Treat this as a compact library-specific variant and validate it directly rather than attributing properties of unrelated MIR or OSC algorithms.

Sources and provenance

Current implementation: cpp/src/core/extra_pls.cpp.

API and bindings

C ABI (ABI 2): n4m_estimators_mir_pls_fit. Use the linked public header for the exact signature, configuration, and result handles.

Python: no current AST-verified public n4m re-export was found for this method. The linked C ABI above is the documented surface in this checkout.

R (source-verified): mir_pls(formula, data, ncomp = 2L, na.action = stats::na.omit).

The source signature has additional required inputs, so no example call is fabricated.

MATLAB / Octave (source-verified): mir_pls(X, Y, n_components).

The source signature has additional required inputs, so no example call is fabricated.

Registry parity references 📐

  • 📜 Paper-only — no executable parity reference; the paper citation is recorded in Bibliographic source.

Benchmarks

Archived measurement identity. Backend labels in this table are the raw IDs recorded when the benchmark ran (including historical pls4all.* IDs). They preserve measurement provenance and do not describe a current public Python, R, or MATLAB binding; use the source-verified API and bindings section above for current entry points.

Adaptive wall-clock per cell measured against full_matrix.csv. Only backends that implement this method are listed; libraries without the method are omitted.

Verdict  ·  ✓ ref / ≈ ref / ~ shape mark a reference-gate pass at strict / relaxed / qualitative tolerance  ·  ✓ bind = archived binding-harness result agrees with the C++ baseline  ·  ⇄ cross-check = documented by-design selector/RNG/model, noncanonical API/facade convention, or secondary oracle  ·  ✗ divergent  ·  ⚠ error  ·  — not run. The fastest backend per column is marked 🏆.

BackendParity200×30 (ms)
Python · archived pls4all benchmark
pls4all.python✓ bind1.27 ms🏆
pls4all.sklearn✓ 3e-151.47 ms
R · archived pls4all benchmark
pls4all.R✓ bind3.98 ms
pls4all.R.formula✓ bind4.72 ms
pls4all.R.mdatools✓ bind5.11 ms
pls4all.R.pls✓ bind5.04 ms
BackendParity200×30 (ms)
Python · archived pls4all benchmark
pls4all.python✓ bind1.29 ms🏆
pls4all.sklearn✓ 3e-151.43 ms
R · archived pls4all benchmark
pls4all.R✓ bind4.49 ms
pls4all.R.formula✓ bind5.07 ms
pls4all.R.mdatools✓ bind5.39 ms
pls4all.R.pls✓ bind4.94 ms
BackendParity200×30 (ms)
Python · archived pls4all benchmark
pls4all.python✓ bind1.99 ms
pls4all.sklearn✓ 3e-151.41 ms🏆
R · archived pls4all benchmark
pls4all.R✓ bind4.09 ms
pls4all.R.formula✓ bind5.05 ms
pls4all.R.mdatools✓ bind4.73 ms
pls4all.R.pls✓ bind4.83 ms

See also: benchmark overview · methods index · interactive dashboard