Sampling design: \(\mathbf{A}\) and \(\mathbf{B}\) are two independent \(M \times N\) sample matrices of the inputs. For each input \(X_i\), the hybrid matrix \(\mathbf{A}_B^{(i)}\) equals \(\mathbf{A}\) except for column \(i\), which is taken from \(\mathbf{B}\). The model is evaluated on \(\mathbf{A}\), \(\mathbf{B}\) and all \(N\) hybrid matrices, i.e. \(M(N + 2)\) evaluations in total (Saltelli 2002; Saltelli et al. 2010).
If prop is supplied, \(\mathbf{A}\) and \(\mathbf{B}\) are the two independent copula draws prop$datSIM and prop$datSIM2. For type = "sim" objects, which contain only the user-supplied samples, the rows are split into two halves that serve as \(\mathbf{A}\) and \(\mathbf{B}\). This requires the rows to be independent draws.
Mean, variance and centring: All model outputs are first centred on their pooled mean. This leaves every estimator unchanged in expectation, but it is essential for the product-type estimators ("sobol", "saltelli" first-order, "homma"): without centring, their Monte Carlo variance scales with \(f_0^2\) and they become unusable when \(|f_0| \gg \sigma_Y\), the typical situation in metrology (see 'Examples'). The pooled mean and variance of the centred outputs are
$$
f_0 = \frac{1}{2M} \sum_{v=1}^{M} \left[ f(\mathbf{A})_v + f(\mathbf{B})_v \right], \quad
V = \frac{1}{2M - 1} \sum_{v=1}^{M} \left[ \left( f(\mathbf{A})_v - f_0 \right)^2 + \left( f(\mathbf{B})_v - f_0 \right)^2 \right].
$$
Rows for which any of the \(N + 2\) evaluations is not finite are removed from all of them.
Estimators: All sums run over \(v = 1, \ldots, M\). The first-order index \(S_i\) is the fraction of the output variance explained by \(X_i\) alone; the total-order index \(S_{T_i}\) additionally includes all interactions of \(X_i\) with the other inputs.
method = "jansen" (default), Jansen (1999) for both indices:
$$
S_i = \frac{V - \frac{1}{2M} \sum_v \left[ f(\mathbf{B})_v - f(\mathbf{A}_B^{(i)})_v \right]^2}{V}, \quad
S_{T_i} = \frac{\frac{1}{2M} \sum_v \left[ f(\mathbf{A})_v - f(\mathbf{A}_B^{(i)})_v \right]^2}{V}
$$
Both estimators are built from squared differences only and are therefore insensitive to the output mean even without centring.
method = "saltelli", Saltelli et al. (2010) for \(S_i\) and Jansen (1999) for \(S_{T_i}\), the combination recommended by Saltelli et al. (2010):
$$
S_i = \frac{\frac{1}{M} \sum_v f(\mathbf{B})_v \left[ f(\mathbf{A}_B^{(i)})_v - f(\mathbf{A})_v \right]}{V}, \quad
S_{T_i} \textrm{ as for Jansen (1999).}
$$
method = "sobol", Sobol' (1993) for \(S_i\) and Sobol' (2001) for \(S_{T_i}\):
$$
S_i = \frac{\frac{1}{M} \sum_v f(\mathbf{B})_v \, f(\mathbf{A}_B^{(i)})_v - f_0^2}{V}, \quad
S_{T_i} = \frac{\frac{1}{M} \sum_v f(\mathbf{A})_v \left[ f(\mathbf{A})_v - f(\mathbf{A}_B^{(i)})_v \right]}{V}
$$
Sobol' (1993) is usually written with the pair \(f(\mathbf{A})_v f(\mathbf{B}_A^{(i)})_v\). Here the mirror pair \(f(\mathbf{B})_v f(\mathbf{A}_B^{(i)})_v\) is used, which also shares \(X_i\) and differs in all other inputs, so that no second set of hybrid matrices is needed.
method = "homma", Homma & Saltelli (1996), total-order index only (S is NA):
$$
S_{T_i} = \frac{V - \frac{1}{M} \sum_v f(\mathbf{A})_v \, f(\mathbf{A}_B^{(i)})_v + f_0^2}{V}
$$
The estimators and their notation follow Tables 1 and 2 of Puy et al. (2022). Jansen (1999) is recommended as the default because it is robust and needs no \(f_0\) correction. The estimators differ in their Monte Carlo variance, not in their expectation, so all methods converge to the same indices with increasing \(M\).
Dependent inputs: Sobol' indices are based on the functional ANOVA decomposition, which assumes independent inputs. With correlated inputs (a correlated Gaussian copula, cov = "full" or an external covariance matrix in propagate), the hybrid matrices \(\mathbf{A}_B^{(i)}\) no longer follow the joint input distribution, and the indices lose their interpretation as shares of the output variance. sobol warns if any empirical input correlation exceeds \(4/\sqrt{M}\) in absolute value (about four standard errors under independence). Inputs from mc.margins = "mvt" always trigger a warning, because the multivariate t-distribution couples all inputs through a common chi-square variable even when they are uncorrelated.