ISmExponentialSmoothing.Parameters

Syntax

Parameters: IExponentialSmoothingParameters;

Description

The Parameters property determines method parameters. Selected trend type and seasonal effect determine whether one or another parameter is to be used.

  Seasonal effect
No Additive Multiplicative
Character
pattern
No   Delta Delta
Linear (additive) Gamma Delta
Gamma
Delta
Gamma
Exponential
(multiplicative)
Gamma Delta
Gamma
Delta
Gamma
Damped Gamma
Phi
Delta
Phi
Delta
Phi

The Alpha parameter takes part in all of the listed models.

Example

Sub Main;

Var

Method: SmExponentialSmoothing;

serie: Array Of Double;

status: Integer;

Params: IExponentialSmoothingParameters;

Seasonal: ISeasonal;

Sub Print(Data: Array Of Double);

Var

i: Integer;

CI: ICultureInfo;

Begin

CI := CultureInfo.Current;

Debug.WriteLine("---Begin---");

For i := 0 To Data.Length - 1 Do

If Double.IsNan(Data[i]) Then

Debug.WriteLine("---empty---");

Else

Debug.WriteLine(i.ToString + ", " + CI.FormatDoublePrec(Data[i], 4));

End If;

End For;

Debug.WriteLine("---End---");

End Sub Print;

Begin

Method := New SmExponentialSmoothing.Create;

serie := New Double[15];

serie[0] := 670.2000183;

serie[1] := 576.0680563;

serie[2] := 717.6484268;

serie[3] := 856.9105808;

serie[4] := 885.4609516;

serie[5] := 1011.846431;

serie[6] := 995.4496292;

serie[7] := 1064.74221;

serie[8] := 1033.324656;

serie[9] := 780.8584552;

serie[10] := 657.5033113;

serie[11] := 654.5472579;

serie[12] := 678.2380139;

serie[13] := 642.4128544;

serie[14] := 751.9611194;

Method.Serie.Value := serie;

Method.Forecast.LastPoint := 40;

Seasonal := Method.SeasonalComponent;

Seasonal.Mode := SeasonalityType.Additive;

Seasonal.Cycle := 4;

Method.TrendComponent := TrendType.Linear;

Params := Method.Parameters;

Params.Alpha := 0.15;

Params.Delta := 0.2;

Params.Gamma := 0.15;

status := Method.Execute;

If status <> 0 Then

Debug.WriteLine(Method.Errors);

Else

Debug.WriteLine("=== Modeling series ===");

Print(Method.Fitted);

End If;

End Sub Main;

After executing the example the console window displays the following results:

Module execution started

=== Modeling series ===

---Begin---

0, 727,5418

1, 670,3663

2, 649,9061

3, 735,5868

4, 755,8357

5, 725,4715

6, 803,2732

7, 933,1416

8, 972,9883

9, 973,9642

10, 968,1277

11, 1 005,2627

12, 942,7797

13, 826,7615

14, 777,2802

---End---

Module execution finished

See also:

ISmExponentialSmoothing