Stats Master VCL
|
Triple exponential smoothing.
Parameters |
Description |
Y |
Time series data set. |
S |
Smoothed values (see above equation). Size and complex properties of S are set automatically. |
B |
Trend values (see above equation). Size and complex properties of b are set automatically. |
L |
Seasonal indices (see above equation). Size and complex properties of L are set automatically. |
Alpha |
Defines initial estimate for Alpha, returns Alpha which minimizes MSE. |
Beta | |
Gamma | |
Period |
Period length. An exception is raised if Y.Length mod Period is not 0. |
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 L[0]..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.htmpage. For initial estimate for S and b, the following equations are being used:
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.
Generate 24 random values representing 4 quarters x 6 years = 24, perform smoothing and read Alpha,Beta,Gamma + MSE.
Uses MtxExpr,StatTimeSerAnalysis, Math387; procedure Example; var Data,S,b,L: Vector; Alpha,Beta,Gamma,MSE: double; begin Data.Size(24,false); Data.RandGauss; // smooth data, initial alpha = 0.1, beta=0.1, gamma = 0.3 Alpha := 0.1; Beta := 0.1; Gamma := 0.3; // Period = 4 MSE := TripleExpSmooth(Data,S,b,L,Alpha,Beta,Gamma,4); // results: MSE and MLE estimate for Alpha,Beta,Gamma end;
#include "MtxExpr.hpp" #include "Math387.hpp" #include "StatTimeSerAnalysis.hpp" void __fastcall Example(); { sVector Data,S,b,L; 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 = TripleExpSmooth(Data,S, b, L, alpha,beta,gamma,4); // results: MSE and MLE estimate for Alpha,Beta,Gamma }
Copyright (c) 1999-2025 by Dew Research. All rights reserved.
|
What do you think about this topic? Send feedback!
|