ISmExponentialSmoothing.InitialValueS

Syntax

InitialValueS: Double;

Description

The InitialValueS property determines the initial point of seasonal component.

Comments

If this value is not set manually, it is calculated automatically. Calculation formula depends on the selected model parameters.

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(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.Damped;

Params := Method.Parameters;

Params.Alpha := 0.15;

Params.Delta := 0.2;

Params.Phi := 0.15;

status := Method.Execute;

If status <> 0 Then

Debug.WriteLine(Method.Errors);

Else

Debug.WriteLine("=== Seasonal component initial value ===");

Debug.WriteLine(Method.InitialValueS);

Debug.WriteLine("=== Trend line initial value ===");

Debug.WriteLine(Method.InitialValueT);

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

=== Seasonal component initial value ===

577,9540213

=== Trend line initial value ===

63,6263746249999

=== Modeling series ===

---Begin---

0, 619,3770

1, 579,2275

2, 566,2184

3, 679,5578

4, 742,0382

5, 721,1128

6, 818,8091

7, 944,4792

8, 985,1681

9, 956,7924

10, 897,6569

11, 888,5154

12, 810,8649

13, 694,4299

14, 662,3631

---End---

Module execution finished

See also:

ISmExponentialSmoothing