mescla.mixing.ml.improvement_index

mescla.mixing.ml.improvement_index(estimated, true_values, sigma)[source]

Carrera et al. (2004) equation 28: how much estimation improved the end-members.

\[\mathrm{IM} = \left[\frac{1}{n_s n_e}\sum_{s}\sum_{e} \frac{(x^{\mathrm{true}}_{se} - \mu_{se})^2}{\sigma_{se}^2} \right]^{-1}\]

The assigned variance is what you believed the error of the input analyses to be, so the denominator of the ratio is the posterior mean square error and the numerator is the prior one: IM = 2 means estimation halved the mean square error of the end-member concentrations. In the paper’s Application 2 it rises from about 3 with four samples to about 8 with a hundred – the quantitative statement of “more mixtures teach you more about the sources”.

Parameters:
  • estimated (ndarray, shape (ne, ns)) – Concentrations returned by the estimator.

  • true_values (ndarray, shape (ne, ns)) – The true compositions. This index can therefore only be computed for synthetic problems – it is a validation diagnostic, not a field one. For real data, look at the end-member shift relative to the assigned sigma instead (result.diagnostics["endmember_shift_in_sigmas"]).

  • sigma (ndarray, shape (ne, ns)) – Standard deviations assigned to the input analyses.

Return type:

float