mv_confounding — MULTIVAR identifiability op

• Data kinds: matrix → table

• Call: import fullseye as fs; fs.ledger.mv_confounding(S=None, names=None, threshold=10.0, log_params=False, max_subset=None) -> 'dict' (to call the implementation directly, import sensitivity; sensitivity.mv_confounding(S=None, names=None, threshold=10.0, log_params=False, max_subset=None) -> 'dict'; from the registry, opsmultivar.get("mv_confounding"))

Usage

Collinearity index gamma_K (Brun, Reichert & Künsch 2001): which parameters the data can fix.

S is the sensitivity matrix (observations x parameters): column j = the change of every output per change of parameter j (finite differences of a simulation, or a Jacobian), ideally already scaled to be dimensionless (Brun: s_ij = dtheta_j / sc_i * dy_i/dtheta_j). Each column is normalised to unit length, s~_j = s_j / ||s_j||, and for a parameter subset K

gamma_K = 1 / sqrt( min eigenvalue of S~_K^T S~_K ).

gamma_K = 1 for orthogonal columns; it grows when a change in one parameter can be compensated by the others (Brun et al. use 10-15 as the critical range; threshold defaults to 10). Returned: delta_msqr (importance, sqrt(mean s_ij^2) on the given scale), gamma of the full set and of every subset up to max_subset (all subsets for <= 14 parameters), the confounded_pairs (gamma > threshold), the largest identifiable subsets, the undetermined_direction of the full set (eigenvector of the smallest eigenvalue: moving the parameters along it barely changes the output), and per confounded_groups entry (the union of the minimal confounded subsets) the combinations the data determined (eigenvalue of the group's S~^T S~ >= 1/threshold^2) and those undetermined; parameters in no group are determined_individually. With log_params=True (columns are sensitivities to log parameters) the combinations are written as products of powers — e.g. n^1 * d^1 when only the product of refractive index and thickness reaches the data. Columns that are all zero are reported as no_influence and left out of gamma.

Detailed usage guide

• design_of_experiments family guide

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

• poc_simcal_thin_film — py -3.11 examples/poc_simcal_thin_film.py

• sensitivity_tour — py -3.11 examples/sensitivity_tour.py

Ops the type connects to (they accept table as input)

—

Same category (identifiability)

mv_residual_pca


*Provenance: sensitivity.py — MULTIVAR operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.