Choosing a method for dependent inputs
When inputs are correlated, sensitivity is no longer one question. An input can matter because the model uses it directly, because it moves with another input, or both. Different methods separate those effects differently.
This guide helps you choose among jaxgsa's methods. For a complete worked analysis, see Correlated Inputs.
Start with the decision
Choose the method from the question you need to answer:
| Question | Method |
|---|---|
| What does each input explain, including what it carries through correlation? | Kucherenko |
| What can only this input explain, after accounting for the others? | Kucherenko |
| Which model terms carry variance, and how much comes from structure or correlation? | HDMR |
| How can I allocate the fitted variance to one number per input? | Shapley with the HDMR backend |
| Does an input change the output distribution, rather than only its variance? | HSIC, PAWN, Borgonovo delta, or optimal transport |
Then choose between a dedicated design and existing data:
- If you can run the model at new points, use Kucherenko for conditional-variance indices without a surrogate.
- If you already have
data, use VKOGA for conditional-variance indices, HDMR for a term-level ANCOVA split, or a distribution-based method when variance is not the quantity you care about. - If you need one allocation per parameter, use Shapley with the HDMR backend, but read its interpretation carefully.
Why familiar indices split
Suppose
That creates two useful views:
- A correlation-inclusive measure asks what an input explains through itself and through everything it moves with. This is useful when deciding what to measure more accurately.
- A correlation-exclusive measure asks what only that input can explain. This is useful when deciding what can be fixed at a nominal value.
Under independence these views coincide. Under dependence they can rank inputs very differently.
The four variance-based routes
There is no single generalisation of Sobol' indices to dependent inputs. jaxgsa provides four routes, each with a different estimand.
| Route | What it estimates | What it needs |
|---|---|---|
| Kucherenko | A dedicated design, | |
| VKOGA | The same conditional-variance quantities as | Existing |
| HDMR | For each fitted component, a structural share | Existing |
| Shapley with HDMR | One ANCOVA allocation per parameter, formed by splitting each term's | Existing |
Kucherenko
Use Kucherenko when you can still evaluate the model and want the conditional-variance quantities directly. It samples conditionally on the correlation declared on the Problem.
is correlation-inclusive. is correlation-exclusive. - There is no fitted surrogate between the model and the estimator.
- The design costs
model evaluations.
See the Kucherenko example and the broader correlated-inputs example.
VKOGA
Use VKOGA when you have existing runs or want to reuse the same fitted model under several correlation assumptions. It fits a kernel surrogate, then samples that surrogate to estimate correlated-input variance indices.
Its two main decision measures match the Kucherenko quantities:
is the correlation-inclusive prioritisation measure. is the correlation-exclusive fixing measure.
VKOGA also reports
See the VKOGA example.
HDMR
Use HDMR when you care about where variance appears in the fitted model. Its ANCOVA decomposition separates every component function into:
: the structural contribution that would remain without correlation; : the contribution driven by correlation.
This split is per term, so it can describe both main effects and interactions. That is different from the conditional-variance question answered by Kucherenko and VKOGA.
HDMR's
See the HDMR example.
Shapley with the HDMR backend
Use shapley.analyze(backend="hdmr", include_correlative=True) when you want one allocation per parameter from the HDMR decomposition. It splits each term's
This is an ANCOVA-based attribution. It is not the conditional-variance Shapley effect of Song et al. (2016), and its correlative shares can be negative. It should not be interpreted as the same quantity as Kucherenko or VKOGA.
See the Shapley example.
Distribution-based alternatives
Variance may be the wrong summary when the output is skewed, heavy-tailed, multimodal, or otherwise changes shape. The following given-data methods do not assume independent inputs:
| Method | Use it when |
|---|---|
| HSIC | You want a kernel dependence measure and permutation significance tests |
| PAWN | You want a CDF-based, moment-independent measure |
| Borgonovo delta | You want a density-based measure on a fixed |
| Optimal transport | You want a Wasserstein measure split into mean-shift and shape-change components |
These methods are correlation-inclusive: an input can score highly because it contains information about another input that drives the output. That is a meaningful result, not evidence that the model uses the input directly.
Worked examples are available for HSIC, PAWN, Borgonovo delta, and optimal transport.
Comparisons to avoid
Keep these boundaries clear when interpreting results:
- Kucherenko and VKOGA estimate the same pair of conditional-variance quantities. They should agree up to surrogate and Monte Carlo error.
- HDMR and HDMR-backed Shapley estimate different quantities. They do not need to agree with Kucherenko or VKOGA.
- HDMR's
under dependence is not a conditional-variance total-effect index. - HDMR-backed Shapley is not conditional-variance Shapley.
- None of these dependent-input indices should be placed beside
jaxgsa.sobolas if they had the same meaning. Sobol' analysis assumes independent inputs and refuses a problem with declared correlation.
A practical workflow
- Declare the input distributions and their correlation on the
Problem. - Decide whether your question is correlation-inclusive, correlation-exclusive, term-level, allocative, or distribution-based.
- Decide whether you can run a dedicated design or must use existing data.
- Select the method from the table above.
- If the method uses a surrogate, check its fit before interpreting the indices.
- Report the method and the meaning of its index, not only the numeric value.
For setup, code, and a side-by-side comparison, continue to Correlated Inputs.