Overload List
| # | Signature | Description |
|---|---|---|
| 1 | void TripleExpSmooth(TVec Y, TVec S, TVec B, TVec L, Double Alpha, Double Beta, Double Gamma, ref Double MSE, Int32 Period) | In this case a fixed smoothing constants Alpha, Beta and Gamma are used in smoothing equations (no minimization is performed). |
| 2 | Double TripleExpSmooth(TVec Y, TVec S, TVec B, TVec L, ref Double Alpha, ref Double Beta, ref Double Gamma, Int32 Period) | Triple exponential smoothing. |
Overload 1: void TripleExpSmooth(TVec Y, TVec S, TVec B, TVec L, Double Alpha, Double Beta, Double Gamma, ref Double MSE, Int32 Period)
In this case a fixed smoothing constants Alpha, Beta and Gamma are used in smoothing equations (no minimization is performed).
| # | Name | Description |
|---|---|---|
| 1 | MSE | Returns MSE, evaluated for constant Alpha, Beta and Gamma. |
| 2 | Y | Time series data set. |
| 3 | S | Smoothed values (see above equation). Size and complex properties of S are set automatically. |
| 4 | B | Trend values (see above equation). Size and complex properties of b are set automatically. |
| 5 | L | Seasonal indices (see above equation). Size and complex properties of L are set automatically. |
| 6 | Alpha | Defines initial estimate for Alpha, returns Alpha which minimizes MSE. |
| 7 | Beta | Defines initial estimate for Beta, returns Beta which minimizes MSE. |
| 8 | Gamma | Defines initial estimate for Gamma, returns Gamma which minimizes MSE. |
| 9 | Period | Period length. An exception is raised if Y.Length mod Period is not 0. |
Result: stored in self (calling object)
Overload 2: Double TripleExpSmooth(TVec Y, TVec S, TVec B, TVec L, ref Double Alpha, ref Double Beta, ref Double Gamma, Int32 Period)
Triple exponential smoothing.
| # | Name | Description |
|---|---|---|
| 1 | Y | Time series data set. |
| 2 | S | Smoothed values (see above equation). Size and complex properties of S are set automatically. |
| 3 | B | Trend values (see above equation). Size and complex properties of b are set automatically. |
| 4 | L | Seasonal indices (see above equation). Size and complex properties of L are set automatically. |
| 5 | Alpha | Defines initial estimate for Alpha, returns Alpha which minimizes MSE. |
| 6 | Beta | Defines initial estimate for Beta, returns Beta which minimizes MSE. |
| 7 | Gamma | Defines initial estimate for Gamma, returns Gamma which minimizes MSE. |
| 8 | Period | Period length. An exception is raised if Y.Length mod Period is not 0. |
Returns: Double - MSE, evaluated at minimum.
Performs triple exponential smoothing (also known as Holt-Winters smoothing) using the following equations:
where Y are the observations, S are the smoothed observations, b trend factors, L the seasonal indices and P is the period length. To initialize triple exponential smoothing method we need at least one complete season's data to determine initial estimates of the seasonal indices L0]..L[P-1]. Again, there are several ways to initialize L values. The algorithm uses approach, described at [www.itl.nist.gov/div898/handbook/pmc/section4/pmc435.htm page. For initial estimate for S and b, the following equations are being used:
Note
There are no S[0]..S[P-2] values; the smoothed series starts with the smoothed version of the Y[P] observation. Also note that the internal algorithm automatically accounts for this by resizing S,b vector to Y.Length-Period.
using Dew.Math;
using Dew.Stats;
using Dew.Stats.Units;
namespace Dew.Examples
{
private void Example()
{
Vector Data = new Vector(0);
Vector S = new Vector(0);
Vector b = new Vector(0);
Vector L = new Vector(0);
Data.Size(24,false);
Data.RandGauss();
// smooth data, initial alpha = 0.1, beta=0.1, gamma = 0.3
double alpha = 0.1;
double beta = 0.1;
double gamma = 0.3;
// Period = 4
double MSE = StatTimeSerAnalysis.TripleExpSmooth(Data,S, b, L, ref alpha,ref beta, ref gamma,4);
// results: MSE and MLE estimate for Alpha,Beta,Gamma
}
}