The main idea is derived from the cube method (Devill and Tillé, 2004). At each step, the inclusion probabilities vector pik
is randomly modified. This modification is carried out in a direction that best preserves the spreading of the sample.
A stratification matrix \(\bf A\) is computed from the spatial weights matrix calculated from the function wpik.
Depending if \(\bf A\) is full rank or not, the vector giving the direction is not selected in the same way.
If matrix \(\bf A\) is not full rank, a vector that is contained in the right null space is selected:
$$ Null(\bf A) = \{ \bf x \in R^N | \bf A\bf x = \bf 0 \}. $$
If matrix \(\bf A\) is full rank, we find \(\bf v\), \(\bf u\) the singular vectors associated to the
smallest singular value \(\sigma \) of \(\bf A\) such that
$$ \bf A\bf v = \sigma \bf u,~~~~ \bf A^\top \bf u = \sigma \bf v.$$
Vector \( \bf v \) is then centered to ensure fixed sample size. At each step, inclusion probabilities is modified and at least on component is set to 0 or 1. Matrix \(\bf A \) is updated
from the new inclusion probabilities. The whole procedure it repeated until it remains only one component that is not equal to 0 or 1.
For more informations on the options tore and toreBound, see distUnitk. If tore is set up TRUE and toreBound not specified the toreBound is equal to
$$N^{1/p}$$
where \(p\) is equal to the number of column of the matrix X.
For more informations on the option shift, see wpik.
If fixedSize is equal TRUE, the weakest associated vector is centered at each step of the algorithm. This ensures that the size of the selected sample is equal to the sum of the inclusion probabilities.