Summary Statistics

The Summary Statistics domain comprises a set of routines that compute basic statistical estimates for single and double precision multi-dimensional datasets.

See the definition of the supported operations in Mathematical Notation and Definitions.

The Summary Statistics routines calculate:

  • raw and central moments up to the fourth order

  • skewness and excess kurtosis (further referred to as kurtosis for brevity)

  • variation coefficient

  • quantiles and order statistics

  • minimum and maximum

  • variance-covariance/correlation matrix

  • pooled/group variance-covariance matrix and mean

  • partial variance-covariance/correlation matrix

  • robust estimators for variance-covariance matrix and mean in presence of outliers

  • raw/central partial sums up to the fourth order (for brevity referred to as raw/central sums)

  • matrix of cross-products and sums of squares (for brevity referred to as cross-product matrix)

  • median absolute deviation, mean absolute deviation

The library also contains functions to perform the following tasks:

  • Detect outliers in datasets

  • Support missing values in datasets

  • Parameterize correlation matrices

  • Compute quantiles for streaming data

You can access the Summary Statistics routines through the Fortran 90 and C89 language interfaces. You can also use the C89 interface with later versions of the C/C++, or Fortran 90 interface with programs written in Fortran 95.

For users of the C/C++ and Fortran languages, Intel MKL provides the mkl_vsl.h, mkl_vsl.f90, and mkl_vsl.f77 header files. All the header files are in the directory

${MKL}/include

See more details about the Fortran header in Random Number Generators topic.

You can find examples that demonstrate calculation of the Summary Statistics estimates in the following directories:

${MKL}/examples/vslc
${MKL}/examples/vslf

The Summary Statistics API is implemented through task objects, or tasks. A task object is a data structure, or a descriptor, holding parameters that determine a specific Summary Statistics operation. For example, such parameters may be precision, dimensions of user data, the matrix of the observations, or shapes of data arrays.

All the Summary Statistics routines process a task object as follows:

  1. Create a task.

  2. Modify settings of the task parameters.

  3. Compute statistical estimates.

  4. Destroy the task.

The Summary Statistics functions fall into the following categories:

Task Constructors - routines that create a new task object descriptor and set up most common parameters (dimension, number of observations, and matrix of the observations).

Task Editors - routines that can set or modify some parameter settings in the existing task descriptor.

Task Computation Routine - a routine that computes specified statistical estimates.

Task Destructor - a routine that deletes the task object and frees the memory.

A Summary Statistics task object contains a series of pointers to the input and output data arrays. You can read and modify the datasets and estimates at any time but you should allocate and release memory for such data.

See detailed information on the algorithms, API, and their usage in the Intel® MKL Summary Statistics Library Application Notes [SSL Notes].

For more complete information about compiler optimizations, see our Optimization Notice.