You are here: Symbol Reference > StatTimeSerAnalysis Namespace > Functions > StatTimeSerAnalysis.DoubleExpSmooth Function
Stats Master VCL
ContentsIndex
PreviousUpNext
StatTimeSerAnalysis.DoubleExpSmooth Function

Double exponential smoothing.

Pascal
function DoubleExpSmooth(const Y: TVec; const S: TVec; const B: TVec; var Alpha: double; var Gamma: double; const InitMethod: Integer = 0): double; overload;
Parameters 
Description 
Time series data set. 
Smoothed values (see above equation). Size and complex properties of S are set automatically. 
Trend values (see above equation). Size and complex properties of b are set automatically. 
Alpha 
Defines initial estimate for Alpha, returns Alpha which minimizes MSE. 
Gamma 
Defines initial estimate for Gamma, returns Gamma which minimizes MSE. 
InitMethod 
Defines how the initial values for b[0] are calculated. 

MSE,evaluated at minimum.

Performs double exponential smoothing using the following equations: 

 

Smoothing scheme begins by setting S[0] to Y[0] and b[0] to pne of the following choices: 

 

Different initialization methods are controlled by the InitMethod parameter. Default value (0) uses first equation, setting it to (1) means the second equation will be used and setting it to (2) means the third equation will be used to initialize b[0]. 

The first smoothing equation adjusts S[i] directly for the trend of the previous period, b[i-1], by adding it to the last smoothed value, S[i-1]. This helps to eliminate the lag and brings S[i] to the appropriate base of the current value. The second smoothing equation then updates the trend, which is expressed as the difference between the last two values. The equation is similar to the basic form of single smoothing, but here applied to the updating of the trend.

Load data, perform smoothing and read Alpha,Gamma + MSE.

Uses MtxExpr, StatTimeSerAnalysis, Math387;
procedure Example;
var Data,S,b: Vector
    Alpha,Gamma,MSE: double;
begin
  Data.LoadFromFile('aerosol_particles.vec');
  // smooth data, initial alpha = 0.1, gamma = 0.3
  Alpha := 0.1;
  Gamma := 0.3;
  MSE := DoubleExpSmooth(Data,S,b,Alpha,Gamma,1);
  // results: MSE and MLE estimate for Alpha,Gamma
end;
#include "MtxExpr.hpp"
#include "Math387.hpp"
#include "StatTimeSerAnalysis.hpp"
void __fastcall Example();
{
  sVector Data, S, b;
  Data.LoadFromFile("aerosol_particles.vec");
  // smooth data, initial alpha = 0.1, gamma = 0.3
  double alpha = 0.1;
  double gamma = 0.3;
  double MSE = DoubleExpSmooth(Data,S,b,alpha,gamma,1);
  // results: MSE and MLE estimate for alpha,gamma
}
Examples on GitHub
Copyright (c) 1999-2024 by Dew Research. All rights reserved.
What do you think about this topic? Send feedback!