MeasuresExponentialWeightedVariance Method (Double, Double, Boolean) |
Namespace: Accord.Statistics
public static double ExponentialWeightedVariance( this double[] values, double alpha = 0, bool unbiased = false )
The following example shows how to compute the EW variance.
/* Suppose we have a time series of observations. Our sample has 17 observations. We wish to compute the variance for our series but would like to provide a heavier weighting to the more recent observations. First, create a vector with the oldest data at the start and the most recent data at the end of the vector. */ double[] timeSeries = { 2, 2, 1, 3, 5, 6, 4, 2, 7, 8, 9, 2, 3, 4, 5, 6, 7 }; // The window size determines how many observations to include in the // calculation. If no window is specified, the entire dataset is used. int window = 15; // We set alpha to 20% meaning each previous observation's contribution // carries 20% less weight (relative to its immediate successor). double alpha = 0.2; // Now we calculate the EW variance. The result should be 3.80. double ewVar = timeSeries.ExponentialWeightedVariance(window, alpha);