Legal Information
About This Document
About Summary Statistics
Algorithms and Interfaces in Summary Statistics
Common Usage Model of Summary Statistics Algorithms
Processing Data in Blocks
Detecting Outliers in Datasets
Dealing with Missing Observations
Computing Quantiles for Streaming Data
Bibliography
Estimating Raw and Central Moments and Sums, Skewness, Excess Kurtosis, Variation, and Variance-Covariance/Correlation/Cross-Product Matrix
Computing Median Absolute Deviation
Computing Mean Absolute Deviation
Computing Minimum/Maximum Values
Calculating Order Statistics
Estimating Quantiles
Estimating a Pooled/Group Variance-Covariance Matrices/Means
Estimating a Partial Variance-Covariance Matrix
Performing Robust Estimation of a Variance-Covariance Matrix
Detecting Multivariate Outliers
Handling Missing Values in Matrices of Observations
Parameterizing a Correlation Matrix
Sorting an Observation Matrix
Computing Minimum/Maximum Values
Use the VSL_SS_METHOD_FAST method to compute the minimum/maximum values in the datasets. The calculation is straightforward and follows the pattern of the example below:
#include "mkl_vsl.h" #define DIM 3 /* dimension of the task */ #define N 1000 /* number of observations */ int main() { VSLSSTaskPtr task; float x[DIM][N]; /* matrix of observations */ float min_est[DIM], max_est[DIM]; MKL_INT p, n, xstorage; int status; /* Parameters of the task and initialization */ p = DIM; n = N; xstorage = VSL_SS_MATRIX_STORAGE_ROWS; for ( int i = 0; i < p; i++ ) min_est[i] = max_est[i] = x[i][0]; /* Create a task */ status = vslsSSNewTask( &task, &p, &n, &xstorage, (float*)x, 0, 0 ); /* Initialize the task parameters */ status = vslsSSEditTask( task, VSL_SS_ED_MIN, min_est ); status = vslsSSEditTask( task, VSL_SS_ED_MAX, max_est ); /* Compute the minimum and maximum values in observations */ status = vslsSSCompute( task, VSL_SS_MIN|VSL_SS_MAX, VSL_SS_METHOD_FAST ); /* Deallocate the task resources */ status = vslSSDeleteTask( &task ); return 0; }
The size of the arrays to hold the minimum/maximum values should be sufficient for storing at least p values of each estimate, where p is the dimension of the task.
You can use the computation of these estimates to find the minimum/maximum values in the dataset available in blocks. In this case, the estimates computed for the previous data portion are used for processing the next block of the data array.
Before the first call to the Compute routine, initialize the initial values of the estimates with reasonable values, such as the values of the first observation.
Parent topic: Algorithms and Interfaces in Summary Statistics