Class Jackknife

java.lang.Object
it.unimi.dsi.stat.Jackknife

public class Jackknife extends Object
Applies the jackknife to generic statistics.

This class applies the jackknife method (see, e.g., “A leisurely look at the bootstrap, the jackknife, and cross-validation”, by Bradley Efron and Gail Gong, The American Statistician, 37(1):36−48, 1983) to reduce the bias in the estimation of a nonlinear statistic of interest (linear statistics, such as the mean, pass through the jackknife without change). The statistic must take a sample (an array of big decimals) and return corresponding values (again as an array of big decimals). In case high-precision arithmetic is not required, an instance of Jackknife.AbstractStatistic just takes an array of doubles and returns an array of doubles, handling all necessary type conversions.

The static method compute(List, Statistic, MathContext) takes a list of samples (arrays of doubles of the same length) and returns an instance of this class containing estimates and standard errors for every value computed by the statistic (estimates of the statistic are available both as an array of big decimals and as an array of doubles, whereas estimates of standard errors are provided in double format, only).

All computations are performed internally using BigDecimal and a provided MathContext. The method compute(List, Statistic) uses 100 decimal digits.

The identical statistic can be used to compute the (pointwise) empirical mean and standard error of a sample.

Author:
Sebastiano Vigna
  • Field Details

  • Method Details

    • bigDecimalArray2DoubleArray

      public static double[] bigDecimalArray2DoubleArray(BigDecimal[] input)
    • doubleArray2BigDecimalArray

      public static BigDecimal[] doubleArray2BigDecimalArray(double[] input)
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • compute

      public static Jackknife compute(List<double[]> samples, Jackknife.Statistic f)
      Applies the jackknife to a statistic of interest using a list of samples using DEFAULT_MATH_CONTEXT as context.
      Parameters:
      samples - a list of samples (arrays of doubles of the same length).
      f - a statistic of interest.
      Returns:
      an instance of this class containing estimates of f and corresponding standard errors obtained by the jackknife on the given set of samples.
    • compute

      public static Jackknife compute(List<double[]> samples, Jackknife.Statistic f, MathContext mc)
      Applies the jackknife to a statistic of interest using a list of samples.
      Parameters:
      samples - a list of samples (arrays of doubles of the same length).
      f - a statistic of interest.
      mc - the mathematical context to be used when dividing big decimals.
      Returns:
      an instance of this class containing estimates of f and corresponding standard errors obtained by the jackknife on the given set of samples.