# PoolAggregator

standard mode | Statistics category

## Inputs

input(pool) - the input pool

## Outputs

output(pool) - a pool containing the aggregate values of the input pool

## Parameters

defaultStats(vector_string, default = ["mean", "stdev", "min", "max", "median"]) :the default statistics to be computed for each descriptor in the input pool

exceptions(map_vector_string, default = {}) :a mapping between descriptor names (no duplicates) and the types of statistics to be computed for those descriptors (e.g. { lowlevel.bpm : [min, max], lowlevel.gain : [var, min, dmean] })

## Description

This algorithm performs statistical aggregation on a Pool and places the results of the aggregation into a new Pool. Supported statistical units are:

- 'min' (minimum),
- 'max' (maximum),
- 'median',
- 'mean',
- 'var' (variance),
- 'stdev' (standard deviation),
- 'skew' (skewness),
- 'kurt' (kurtosis),
- 'dmean' (mean of the derivative),
- 'dvar' (variance of the derivative),
- 'dmean2' (mean of the second derivative),
- 'dvar2' (variance of the second derivative),
- 'cov' (covariance), and
- 'icov' (inverse covariance).
- 'copy' (verbatim copy of descriptor, no aggregation; exclusive: cannot be performed with any other statistical units).
- 'value' (copy of the descriptor, but the value is placed under the name '<descriptor name>.value')

These statistics can be computed for single dimensional vectors in a Pool, with the exception of 'cov' and 'icov'. All of the above statistics can be computed for two dimensional vectors in the Pool. With the exception of 'cov' and 'icov', two-dimensional statistics are calculated by aggregating each column and placing the result into a vector of the same size as the size of each vector in the input Pool. The previous implies that each vector in the pool (under a particular descriptor of course) must have equal size. This implication also applies for 'cov' and 'icov'.

An additional restriction for using the 'icov' statistic is that the covariance matrix for a particular descriptor must be invertible. The 'cov' and 'icov' aggregation statistics each return a square matrix with dimension equal to the length of the vectors under the given descriptor.

Please also note that only the absolute values of the first and second derivates are considered when calculating the mean ('dmean' and 'dmean2') as well as for the variance ('dvar' and 'dvar2'). This is to avoid a trivial solution for the mean.