Improving Improved Kernel PLS
ikpls.Organizations: Society for Open Science (Stowarzyszenie na Rzecz Otwartej Nauki) Centre for Brain Research, Jagiellonian University · Society for Open Science (Stowarzyszenie na Rzecz Otwartej Nauki) IDEAS Research Institute
Partial Least Squares (PLS) regression extracts a few outcome-aligned directions in a high-dimensional X and is widely used across applied science, but inference on the resulting fit is either expensive, biased and discouraged, or absent. We reduce inference to held-out OLS refits of the supervised subspace, a primitive shared by PLS, supervised PCA, and linear probes, and supply two tests using held-out correlations: a Nadeau-Bengio corrected asymptotic t-test as a fast approximation, and a permutation test with comparable power, finite-sample valid under outcome-predictor independence and iid rows. Held-out predictions are unchanged under any orthogonal rebasing of the supervised span, so an interpretable basis such as varimax inherits the joint claim but not a per-axis p-value; per-component claims come from a fixed-sequence test on the PLS extraction order. We validate on synthetic geometries, two NIR chemometric datasets, and cross-lingual word-embedding regressions; the exact test also transfers to supervised PCA and a ridge probe. The proposed tests have more power than CV-permutation-Q^2, at a fraction of its cost. A pre-run check on n and the spectrum of X says when the approximation is safe. We release a Rust library with Python, R, and Julia bindings, plus a Python text pipeline.
| Method | Target | Cost | Calibration | Rotation |
|---|---|---|---|---|
| Jackknife | Regression coefficients | CV fits | Approximate; biased variance estimates | Tests coefficients, not latent axes |
| CV-perm.- | Outcome–predictor independence | fits | Exact under null permutation invariance | Joint predictions unchanged |
| plsdof | Model complexity; selection and CIs | exact DoF pass | No supplied omnibus significance test | Fitted-model target |
| NB (ours) | Held-out predictive association | fits | Empirical; no proved component-chain FWER | Joint OLS refit invariant |
| Permutation (ours) | Outcome–predictor independence | cached maps at ; draws | Exact under iid rows and independence | Joint OLS refit invariant |
| Single split (ours) | Train-conditional residual association or independence | One training chain; held-out tests | Strong FWER: Gaussian correlation or permutation independence nulls | Claims follow training order |
| Object | Null tested | Guarantee |
|---|---|---|
| Joint subspace | rank- fit predicts no better than chance | omnibus NB test; exact under NB-permutation |
| Unrotated component | no positive residual association after deflations | fixed-sequence; FWER requires per-step validity (§ 4.4 ) |
| Varimax axis | none — no separate test | inherits joint significance only (Prop. 1 ) |
| NB-asymptotic | exact | |||||||
|---|---|---|---|---|---|---|---|---|
| Design | st. rank | rule | KS (NB) | |||||
| iid Gaussian ( ) | 40 | 22.0 | pass | 0.038 | 0.083 | 0.048 | 0.096 | |
| iid Gaussian | 160 | 55.3 | pass | 0.050 | 0.100 | 0.72 | 0.052 | 0.106 |
| block-collinear (5 blocks, ) | 40 | 3.80 | pass | 0.050 | 0.095 | 0.050 | 0.103 | |
| Warriner GloVe-300 (real) | 40 | 17.1 | pass | 0.035 | 0.085 | 0.18 | 0.042 | 0.100 |
| dominant factor ( , all columns) | 40 | 1.10 | flag | 0.041 | 0.061 | 0.050 | 0.100 | |
| Design | Arm | |||
|---|---|---|---|---|
| iid Gaussian ( ) | full-data, NB | 0.000 / 0.000 | 0.000 † / 0.000 † | 0.000 † / 0.000 † |
| dominant factor ( ) | full-data, NB | 0.049 / 0.095 | 0.000 / 0.000 | 0.000 † / 0.000 † |
| train-only, NB | 0.038 / 0.081 | — | — | |
| full-data, perm. | 0.059 / 0.118 | 0.000 / 0.000 | 0.000 † / 0.000 † | |
| decaying spectrum ( ) | full-data, NB | 0.007 / 0.018 | 0.004 / 0.012 | 0.002 / 0.007 |
| NIR gasoline ( , real) | full-data, NB | 0.017 / 0.035 | 0.011 / 0.024 | 0.001 / 0.002 |
Supplementary material from the paper’s appendix.
| Config | Language | Embedding | Outcome | |
|---|---|---|---|---|
| 1 | English | GloVe-300 (Common Crawl 42B, normalized) | Warriner V/A/D | 13,365 |
| 2 | Polish | GloVe-800 (Dadas, normalized) | ANPW V/A/D | 4,526 |
| 3 | Spanish | GloVe-300 (SBWCE, normalized) | Stadthagen-González V/A | 12,639 |
| Config | Valence (CV) | Arousal (CV) | Dominance (CV) |
|---|---|---|---|
| EN GloVe-300 | 0.631 (0.619) | 0.370 (0.350) | 0.486 (0.472) |
| PL GloVe-800 | 0.692 (0.652) | 0.617 (0.567) | 0.611 (0.557) |
| ES GloVe-300 | 0.551 (0.539) | 0.447 (0.433) | — |
| Valence | Arousal | Dominance | |||||||
|---|---|---|---|---|---|---|---|---|---|
| Rank | Side | EN | PL | ES | EN | PL | ES | EN | PL |
| 1 | pos | wonderful | terrific (wspaniały) | enjoy (disfrutar) | violent | brutal / violent (brutalny) | aggression (agresión) | strive | terrific (wspaniały) |
| 2 | pos | enjoy | admire (podziwiać) | pleasant (agradable) | deadly | lust (żądza) | murders (asesinatos) | appreciate | bestow (obdarzyć) |
| 3 | pos | appreciation | wonderful (cudowny) | creativity (creatividad) | brutal | frenzy (szał) | murder (asesinato) | appreciated | admire (podziwiać) |
| 4 | pos | delightful | excellent (wspaniale) | gift (regalo) | insane | terrible (straszliwy) | deadly (mortal) | exceptional | excellent (wspaniale) |
| 5 | pos | fantastic | delight (zachwycić) | beautiful (hermosa) | explosion | cruelty (okrucieństwo) | violent (violento) | dedication | excellent (znakomity) |
| Valence | Arousal | Dominance | |||||||
|---|---|---|---|---|---|---|---|---|---|
| Rank | Side | EN | PL | ES | EN | PL | ES | EN | PL |
| 1 | pos | elegant | happily (radośnie) | happiness (felicidad) | violent | drug (narkotyk) | aggression (agresión) | elegant | excellent (wspaniale) |
| 2 | pos | lovely | wonderfully (cudownie) | baby (bebé) | brutal | sexual (seksualny) | explosion (explosión) | wonderful | bestow (obdarzyć) |
| 3 | pos | fabulous | excellent (wspaniale) | happy (feliz) | deadly | sex/ intercourse (seks) | attack (atentado) | fabulous | mighty / powerful (potężny) |
| 4 | pos | delightful | wonderful (cudowny) | smile (sonrisa) | revenge | explosive (wybuchowy) | murders (asesinatos) | lovely | terrific (wspaniały) |
| 5 | pos | exquisite | to squirt (tryskać) | enjoy (disfrutar) | rage | mass (masowy) | assaults (agresiones) | delightful | capable (zdolny) |
| Valence | Arousal | Dominance | |||||||
|---|---|---|---|---|---|---|---|---|---|
| Rank | Side | EN | PL | ES | EN | PL | ES | EN | PL |
| 1 | pos | provide | modest (skromny) | decor (decoración) | ignorant | show (okazywać) | terrible (terrible) | monitoring | decorate (ozdobić) |
| 2 | pos | provided | beautiful (piękny) | design (diseño) | jealous | justify (usprawiedliwić) | deadly (mortal) | component | silver (srebrny) |
| 3 | pos | ensure | beauty (uroda) | ceramic (cerámica) | forgive | willing (skłonny) | guilt (culpa) | components | slender (smukły) |
| 4 | pos | provides | to like (cenić) | architecture (arquitectura) | cried | feelings (uczucia) | kill (matar) | evaluation | gold (złocisty) |
| 5 | pos | providing | admire (podziwiać) | designs (diseños) | rude | cruelty (okrucieństwo) | revenge (venganza) | provides | adorn (zdobić) |
| Valence | Arousal | Dominance | |||||||
|---|---|---|---|---|---|---|---|---|---|
| Rank | Side | EN | PL | ES | EN | PL | ES | EN | PL |
| 1 | pos | industrial | central (centralny) | support (respaldar) | yummy | monstrous (potworny) | reject (rechazar) | wedding | social (społeczny) |
| 2 | pos | containing | in parallel (równolegle) | consolidate (consolidar) | gourmet | shrill (przeraźliwy) | support (respaldar) | features | range (zakres) |
| 3 | pos | e.g. | marked (oznaczony) | promote (impulsar) | tasty | rage (wściekłość) | deny (negar) | feature | institution (instytucja) |
| 4 | pos | multiple | millimeter (milimetr) | integrate (integrar) | delicious | terrible (straszliwy) | openly (abiertamente) | large | concern (dotyczyć) |
| 5 | pos | storage | diameter (średnica) | promote (promover) | juicy | mad (oszalały) | admit (admitir) | featuring | activity (działalność) |
| lang | pair | J(+) | J( ) | signed-J |
|---|---|---|---|---|
| EN | Dim-3(V) Dim-3(A) | 0.00 | 0.00 | 0.00 |
| EN | Dim-3(V) Dim-3(D) | 0.00 | 0.25 | 0.11 |
| EN | Dim-3(A) Dim-3(D) | 0.00 | 0.00 | 0.00 |
| PL | Dim-3(V) Dim-3(A) | 0.00 | 0.00 | 0.00 |
| PL | Dim-3(V) Dim-3(D) | 0.00 | 0.00 | 0.00 |
| PL | Dim-3(A) Dim-3(D) | 0.00 | 0.00 | 0.07 |
| lang | rate | median | median | ||
|---|---|---|---|---|---|
| EN | valence | 20 | 0.00 | 0.022 | 0.567 |
| EN | arousal | 20 | 0.00 | 0.023 | 0.551 |
| EN | dominance | 20 | 0.00 | 0.023 | 0.519 |
| lang | pair | J(+) | J( ) | signed-J |
|---|---|---|---|---|
| EN | PC1 Dim-3(V) | 0.00 | 0.00 | 0.08 |
| EN | PC2 Dim-3(V) | 0.03 | 0.00 | 0.01 |
| EN | PC3 Dim-3(V) | 0.00 | 0.00 | 0.00 |
| EN | PC1 Dim-3(A) | 0.00 | 0.00 | 0.00 |
| EN | PC2 Dim-3(A) | 0.03 | 0.00 | 0.01 |
| EN | PC3 Dim-3(A) | 0.03 | 0.00 | 0.01 |
| # | Name | Planted truth | Measured | Headline |
| Toy 1 | Identifiability ceiling | directions in | Mean principal cosine vs. PLS subspace | Plateau at ; only leading axis recovered ( – at ) |
| Toy 2 | Suppressor fingerprint at | Suppressor at with main predictor, | ; ; NB reject rate | NB rejects at mean rate 0.91 even though — empirical calibration-axis fingerprint |
| Toy 3 | Functional-form invariance | Linear-additive multiplicative interaction | ; ; Arms A (raw) / B (lifted) | Arm A: does not surface interaction; Arm B: lifted interaction recovered as rank-1 ( ) |
| Toy 4 | Rotation-invariance sanity | — (real Warriner fit) | under varimax / random orth. rotation | (varimax); (random orth.) vs. baseline |
| Toy 5 | depends on , not | Rank-1 sparse signal in at | Mode from sequential per-step NB | on GloVe vs. on iid; predictively justified in both cells; |
| S1 | calibration grid | Empirical FPR; KS-uniform of -values | NB and perm- calibrated; naive_t and jack.test inflated at |
| Geometry | at | at | range | ceiling | |
|---|---|---|---|---|---|
| 2 | GloVe | 0.449 | 0.856 | – | 0.500 |
| 2 | iid Gaussian | 0.511 | 0.981 | – | 0.500 |
| 3 | GloVe | 0.350 | 0.909 | – | 0.333 |
| 3 | iid Gaussian | 0.373 | 0.983 | – | 0.333 |
| Geometry | NB reject (Dim-2) | |||
|---|---|---|---|---|
| GloVe | 0.0 | 0.122 | 0.232 | 0.92 |
| GloVe | 0.3 | 0.049 | 0.194 | 0.84 |
| GloVe | 0.6 | 0.116 | 0.204 | 0.80 |
| GloVe | 0.9 | 0.243 | 0.226 | 0.92 |
| iid Gaussian | 0.0 | 0.138 | 0.331 | 0.94 |
| iid Gaussian | 0.3 | 0.044 | 0.282 | 0.92 |
| Arm | Quantity | NB rej. (Dim-2) | |||
|---|---|---|---|---|---|
| A (unaugmented) | 0.131 | 0.191 | — | ||
| A | 0.361 | 0.105 | — | 0.75 | |
| A | — | 0.049 | — | — | |
| B (augmented) | 0.402 | 0.572 | — | ||
| B | 0.633 | — | — | — | |
| B | 0.790 | 0.876 | — | — |
| Comparison | |||
|---|---|---|---|
| varimax vs raw | |||
| random-orth vs raw |
| Geometry | mode | mean | |||
|---|---|---|---|---|---|
| iid Gaussian | 10 | 2 | 2.2 | 0.8 | 0.066 |
| iid Gaussian | 30 | 2 | 2.0 | 1.0 | 0.066 |
| iid Gaussian | 100 | 2 | 2.0 | 1.0 | 0.066 |
| iid Gaussian | 300 | 2 | 2.0 | 1.0 | 0.065 |
| Real GloVe | 10 | 5 | 5.4 | 0.0 | 0.145 |
| Real GloVe | 30 | 6 | 6.0 | 0.0 | 0.160 |
| Geometry | Regime | NB | perm-Q 2 | ||
|---|---|---|---|---|---|
| 1 | Warriner | (valence) | 0.81 | 0.73 | |
| 1 | Warriner | (valence) | 0.72 | 0.69 | |
| 1 | iid | small- / hi-eff | 0.96 | 0.71 | |
| 1 | iid | big- / noisy | 0.70 | 0.63 | |
| 3 | Warriner | small- / hi-eff | 0.89 | 0.76 | |
| 3 | Warriner | big- / noisy | 0.94 | 0.93 |
| Geometry | Regime | NB power | perm- power | NB med. | perm med. | |
|---|---|---|---|---|---|---|
| EN GloVe-300 | small- / hi-eff ( ) | 40 | 0.965 [.930, .983] | 0.815 [.755, .863] | 0.005 s | 0.223 s |
| EN GloVe-300 | big- / noisy ( ) | 500 | 0.945 [.904, .969] | 0.950 [.910, .973] | 0.142 s | 3.730 s |
| PL GloVe-800 | small- / hi-eff ( ) | 40 | 0.865 [.811, .906] | 0.620 [.551, .684] | 0.014 s | 0.757 s |
| PL GloVe-800 | big- / noisy ( ) | 500 | 0.870 [.816, .910] | 0.820 [.761, .867] | 0.517 s | 28.27 s |
| EN XLM-R | small- / hi-eff ( ) | 40 | 0.965 [.930, .983] | 0.800 [.739, .850] | 0.014 s | 0.779 s |
| EN XLM-R | big- / noisy ( ) | 500 | 0.980 [.950, .992] | 0.975 [.943, .989] | 0.501 s | 26.97 s |
| Test | Cell A power | Cell B power | Median runtime A / B (s) |
|---|---|---|---|
| NB | 0.8125 | 0.715 | 0.005 / 0.12 |
| Permutation- | 0.7325 | 0.685 | 0.42 / 7.48 |
| jack.test | 0.57 | 0.16 | 0.003 / 0.04 |
| Naive | 0.99 | 0.96 | 0.018 / 0.12 |
| NB-asymptotic | Exact NB-permutation | ||||||||
| Design | st. rank | rule | KS | KS | |||||
| iid Gaussian | 10 | 7.08 | flag ( ) | 0.004 | 0.020 | 0.056 | 0.108 | 0.08 | |
| 20 | 12.98 | flag ( ) | 0.020 | 0.059 | 0.049 | 0.102 | 0.60 | ||
| 40 | 22.04 | pass | 0.038 | 0.083 | 0.048 | 0.096 | 0.81 | ||
| 80 | 36.07 | pass | 0.044 | 0.091 | 0.23 | 0.051 | 0.099 | 0.77 | |
| 160 | 55.28 | pass | 0.050 | 0.100 | 0.72 | 0.052 | 0.106 | 0.97 | |
| share | splits | rej. .01 | rej. .05 | rej. .10 | ||||
|---|---|---|---|---|---|---|---|---|
| 0.47 | 0.38 | 0.25 | 0.63 | 0.000 | 0.000 | 0.000 | ||
| 0.41 | 0.91 | 0.66 | 0.19 | 0.001 | 0.003 | 0.015 | ||
| 0.11 | 0.92 | 0.93 | 0.26 | 0.101 | 0.275 | 0.450 | ||
| 0.01 | 0.68 | 0.99 | 0.41 | 0.711 | 0.842 | 0.974 |
| quantile | 0.50 | 0.80 | 0.90 | 0.95 | 0.99 | 0.999 |
|---|---|---|---|---|---|---|
| 0.47 | 0.95 | 1.50 | 2.74 | 3.62 | ||
| 0.00 | 0.85 | 1.30 | 1.68 | 2.41 | 3.27 |
| st. rank | sign | lvl .01 | lvl .05 | lvl .10 | |||||
|---|---|---|---|---|---|---|---|---|---|
| 0.9 | 1.1 | 0.33 | 0.38 | 0.67 | 0.41 | 0.99 | 0.017 | 0.044 | 0.067 |
| 0.7 | 1.4 | 0.35 | 0.40 | 0.55 | 0.44 | 0.97 | 0.021 | 0.044 | 0.071 |
| 0.5 | 2.0 | 0.35 | 0.39 | 0.50 | 0.46 | 0.94 | 0.017 | 0.045 | 0.077 |
| 0.3 | 3.3 | 0.36 | 0.39 | 0.48 | 0.47 | 0.89 | 0.017 | 0.047 | 0.077 |
| 0.1 | 8.4 | 0.43 | 0.43 | 0.47 | 0.47 | 0.77 | 0.019 | 0.054 | 0.084 |
| 0 (iid) | 22.2 | 0.43 | 0.44 | 0.47 | 0.47 | 0.58 | 0.003 | 0.029 | 0.078 |
| NB | exact | ratio | NB | exact | ratio | perm- | ratio | ||
|---|---|---|---|---|---|---|---|---|---|
| 75 | 0.0042 | 0.088 | 20.8 | 400 | 0.033 | 0.28 | 8.6 | 3.8 | 117 |
| 150 | 0.0082 | 0.094 | 11.4 | 800 | 0.068 | 0.96 | 14.1 | 7.9 | 116 |
| 300 | 0.0166 | 0.106 | 6.4 | 1,600 | 0.144 | 2.14 | 14.8 | 17.3 | 120 |
| 600 | 0.0339 | 0.131 | 3.9 | 3,200 | 0.344 | 4.32 | 12.6 | 43.0 | 125 |
| 1,200 | 0.0705 | 0.180 | 2.5 | 6,400 | 0.779 | 10.8 | 13.8 | 89.9 | 115 |
| 13,365 | 3.22 | 24.0 | 7.5 | 387.7 | 120 |
| cell | step rate (95% CI) | KS-uniform | chain rate (95% CI) | min prior rate | |||
|---|---|---|---|---|---|---|---|
| M0R10 | 0 | 0.10 | 0.01 | 0.003 [.000, .014] | 0.82 | 0.003 [.000, .014] | — |
| M0R10 | 0 | 0.10 | 0.05 | 0.035 [.021, .058] | 0.82 | 0.035 [.021, .058] | — |
| M0R10 | 0 | 0.10 | 0.10 | 0.085 [.061, .116] | 0.82 | 0.085 [.061, .116] | — |
| M0R25 | 0 | 0.25 | 0.01 | 0.015 [.007, .032] | 0.36 | 0.015 [.007, .032] | — |
| M0R25 | 0 | 0.25 | 0.05 | 0.055 [.037, .082] | 0.36 | 0.055 [.037, .082] | — |
| M0R25 | 0 | 0.25 | 0.10 | 0.128 [.098, .164] | 0.36 | 0.128 [.098, .164] | — |
| cell | step rate (95% CI) | KS-uniform | chain rate (95% CI) | min prior rate | |||
|---|---|---|---|---|---|---|---|
| TM0R10 | 0 | 0.10 | 0.01 | 0.015 [.007, .032] | 0.015 [.007, .032] | — | |
| TM0R10 | 0 | 0.10 | 0.05 | 0.033 [.019, .055] | 0.033 [.019, .055] | — | |
| TM0R10 | 0 | 0.10 | 0.10 | 0.060 [.041, .088] | 0.060 [.041, .088] | — | |
| TM0R25 | 0 | 0.25 | 0.01 | 0.013 [.005, .029] | 0.013 [.005, .029] | — | |
| TM0R25 | 0 | 0.25 | 0.05 | 0.030 [.017, .052] | 0.030 [.017, .052] | — | |
| TM0R25 | 0 | 0.25 | 0.10 | 0.068 [.047, .096] | 0.068 [.047, .096] | — |
| power, | level, | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Data | Pipeline | exact | perm- | NB | exact | perm- | NB | KS (exact) | |
| Warriner | sPCA | 40 | 0.41 | 0.28 | 0.19 | 0.050 | 0.049 | 0.010 | 0.85 |
| Warriner | ridge | 40 | 0.43 | 0.28 | 0.37 | 0.051 | 0.058 | 0.040 | 0.53 |
| Warriner | PLS1 | 40 | 0.46 | 0.34 | 0.41 | 0.048 | 0.054 | 0.044 | 0.31 |
| Warriner | sPCA | 200 | 1.00 | 0.98 | 1.00 | 0.055 | 0.049 | 0.015 | 0.40 |
| Warriner | ridge | 200 | 1.00 | 0.70 | 0.98 | 0.051 | 0.052 | 0.016 | 0.53 |
| Cell | Total | Unique features used | ||
| dense ( , NIPALS PLS1) | 3 | 300 | 0.631 | 300 |
| cardinality sweep, | 3 | 200 | 0.630 | 287 |
| 3 | 100 | 0.621 | 218 | |
| 3 | 50 | 0.605 | 133 | |
| 3 | 25 | 0.575 | 71 | |
| more axes, sparser each | 4 | 100 | 0.634 | 250 |
| dim-1 | dim-2 | dim-3 | dim-4 | dim-5 | ||
|---|---|---|---|---|---|---|
| Rank | Side | R²=0.506 | R²=0.064 | R²=0.036 | R²=0.018 | R²=0.010 |
| 1 | pos | wonderful | easygoing | significant | madden | localized |
| 2 | pos | showcase | affectionate | growth | shovel | eminence |
| 3 | pos | superb | togetherness | stimulation | sequel | reinstate |
| 4 | pos | fabulous | goofball | facilitate | donkey | loveliness |
| 5 | pos | fantastic | spunky | employment | jolly | sovereign |
ikpls.