InitialValueS: Double;
The InitialValueS property determines the initial point of seasonal component.
If this value is not set manually, it is calculated automatically. Calculation formula depends on the selected model parameters.
To execute the example, add a link to the Stat system assembly.
Sub UserProc;
Var
Method: SmExponentialSmoothing;
serie: Array Of Double;
status: Integer;
Params: IExponentialSmoothingParameters;
Seasonal: ISeasonal;
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("=== Model series ===");
Print(Method.Fitted);
End If;
End Sub UserProc;
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;
After executing the example the console window displays seasonal component initial value, trend line initial value, and modeling series.
See also: