IncrementalStatistics Class Reference

#include <ql/Math/incrementalstatistics.hpp>

List of all members.


Detailed Description

Statistics tool based on incremental accumulation.

It can accumulate a set of data and return statistics (e.g: mean, variance, skewness, kurtosis, error estimation, etc.)

Warning:
high moments are numerically unstable for high average/standardDeviation ratios


Public Member Functions

Inspectors
Size samples () const
 number of samples collected

double weightSum () const
 sum of data weights

double mean () const
double variance () const
double standardDeviation () const
double downsideVariance () const
double downsideDeviation () const
double errorEstimate () const
double skewness () const
double kurtosis () const
double min () const
double max () const
Modifiers
void add (double value, double weight=1.0)
 adds a datum to the set, possibly with a weight

template<class DataIterator> void addSequence (DataIterator begin, DataIterator end)
 adds a sequence of data to the set, with default weight

template<class DataIterator, class WeightIterator> void addSequence (DataIterator begin, DataIterator end, WeightIterator wbegin)
 adds a sequence of data to the set, each with its weight

void reset ()
 resets the data to a null set


Protected Attributes

Size sampleNumber_
Size downsideSampleNumber_
double sampleWeight_
double downsideSampleWeight_
double sum_
double quadraticSum_
double downsideQuadraticSum_
double cubicSum_
double fourthPowerSum_
double min_
double max_


Member Function Documentation

double mean  )  const
 

returns the mean, defined as

\[ \langle x \rangle = \frac{\sum w_i x_i}{\sum w_i}. \]

double variance  )  const
 

returns the variance, defined as

\[ \frac{N}{N-1} \left\langle \left( x-\langle x \rangle \right)^2 \right\rangle. \]

double standardDeviation  )  const
 

returns the standard deviation $ \sigma $, defined as the square root of the variance.

double downsideVariance  )  const
 

returns the downside variance, defined as

\[ \frac{N}{N-1} \times \frac{ \sum_{i=1}^{N} \theta \times x_i^{2}}{ \sum_{i=1}^{N} w_i} \]

, where $ \theta $ = 0 if x > 0 and $ \theta $ =1 if x <0

double downsideDeviation  )  const
 

returns the downside deviation, defined as the square root of the downside variance.

double errorEstimate  )  const
 

returns the error estimate $ \epsilon $, defined as the square root of the ratio of the variance to the number of samples.

double skewness  )  const
 

returns the skewness, defined as

\[ \frac{N^2}{(N-1)(N-2)} \frac{\left\langle \left( x-\langle x \rangle \right)^3 \right\rangle}{\sigma^3}. \]

The above evaluates to 0 for a Gaussian distribution.

double kurtosis  )  const
 

returns the excess kurtosis, defined as

\[ \frac{N^2(N+1)}{(N-1)(N-2)(N-3)} \frac{\left\langle \left(x-\langle x \rangle \right)^4 \right\rangle}{\sigma^4} - \frac{3(N-1)^2}{(N-2)(N-3)}. \]

The above evaluates to 0 for a Gaussian distribution.

double min  )  const
 

returns the minimum sample value

double max  )  const
 

returns the maximum sample value

void add double  value,
double  weight = 1.0
 

adds a datum to the set, possibly with a weight

Precondition:
weight must be positive or null

void addSequence DataIterator  begin,
DataIterator  end,
WeightIterator  wbegin
 

adds a sequence of data to the set, each with its weight

Precondition:
weights must be positive or null


QuantLib.org
QuantLib
Hosted by
SourceForge.net Logo
Documentation generated by
doxygen