ISmExponentialSmoothing.Parameters

Синтаксис

Parameters: IExponentialSmoothingParameters;

Описание

Свойство Parameters определяет параметры метода. Использование того или иного параметра зависит от выбранного типа тренда и сезонного эффекта.

  Сезонный эффект
Нет Аддитивная Мультипликативная
Характер
тренда
Нет   Delta Delta
Линейный (аддитивный) Gamma Delta
Gamma
Delta
Gamma
Экспоненциальный
(мультипликативный)
Gamma Delta
Gamma
Delta
Gamma
Затухающий Gamma
Phi
Delta
Phi
Delta
Phi

Параметр Alpha присутствует во всех перечисленных моделях.

Пример

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("=== Модельный ряд ===");

Print(Method.Fitted);

End If;

End Sub Main;

После выполнения примера в окно консоли будут выведены следующие результаты:

Module execution started

=== Модельный ряд ===

---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

См. также:

ISmExponentialSmoothing