triqs::stat::jackknife_mpi

#include <triqs/stat.hpp>

Synopsis

1. template<typename F, typename A>
auto jackknife_mpi (communicator c, F && f, A const &… a)
2. template<typename F, typename T>
auto jackknife_mpi (communicator c, F && f, accumulator<T> const &… a)

Calculate the value and error of a general function $$f$$ of the average of sampled observables $$f\left(\langle \mathbf{a} \rangle\right)$$, using jackknife resampling.

1) Directly pass data-series in vector like objects

2) Pass accumulators, where the jacknife acts on the linear binned data

The calculation is performed over the nodes; the answers which are then reduced (not all-reduced) to the node 0.

Template parameters

• F return type of function f which acts on data
• A vector-like object, defining size() and []
• T type of data stored in the accumulators

Parameters

• c TRIQS MPI communicator
• a one or multiple series with data: $$\mathbf{a} = \{a_1, a_2, a_3, \ldots\}$$ Pre-condition: if more than one series is passed, the series have to be equal in size
• f a function which acts on the $$i^\mathrm{th}$$ elements of the series in a:
$\left(a_1[i], a_2[i],a_3[i],\ldots\right) \to f\left(a_1[i],a_2[i],a_3[i],\ldots\right)$

Returns

std::tuple with four statistical estimators $$\left(f_\mathrm{J}^{*}, \Delta{f}_\mathrm{J}, f_\mathrm{J}, f_\mathrm{direct}\right)$$, defined below. The MPI reduction occurs only to node 0.

Jackknife resampling takes $$N$$ data points $$\mathbf{a}[i]$$ and creates $$N$$ samples (“jackknifed data”), which we denote $$\tilde{\mathbf{a}}[i]$$. We calculate three statistical estimators for $$f\left(\langle \mathbf{a} \rangle\right)$$:
• The function $$f$$ applied to observed mean of the data
$f_\mathrm{direct} = f\left(\bar{\mathbf{a}}\right),\quad \bar{\mathbf{a}} = \frac{1}{N}\sum_{i=0}^{N}\mathbf{a}[i]$
• The jacknife estimate defined as
$f_\mathrm{J} = \frac{1}{N}\sum_{i=0}^N f(\tilde{\mathbf{a}}[i])$
• The jacknife estimate, with bias correction to remove $$O(1/N)$$ effects
$f_\mathrm{J}^{*} = N f_\mathrm{direct} - (N - 1) f_\mathrm{J}$
Additionally, an estimate in the errror of $$f\left(\langle \mathbf{a} \rangle\right)$$ is given by the jacknife as
$\Delta{f}_J = \sqrt{N-1} \cdot \sigma_f$
where $$\sigma_f$$ is the standard deviation of $$\left\{f(\tilde{\mathbf{a}}[0]), f(\tilde{\mathbf{a}}[1]), \ldots, f(\tilde{\mathbf{a}}[N])\right\}$$.