InitialValueS: Double;
Свойство InitialValueS определяет начальную точку сезонной составляющей.
Если данное значение не задается, то оно будет рассчитано автоматически. Формула расчета зависит от выбранных параметров модели.
Для выполнения примера добавьте ссылку на системную сборку Stat.
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("=== Начальное значение сезонной составляющей ===");
Debug.WriteLine(Method.InitialValueS);
Debug.WriteLine("=== Начальное значение линии тренда ===");
Debug.WriteLine(Method.InitialValueT);
Debug.WriteLine("=== Модельный ряд ===");
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;
После выполнения примера в окно консоли будут выведены начальное значение сезонной составляющей, начальное значение линии тренда, модельный ряд.
См. также: