SmoothingParameter: Double;
SmoothingParameter: double;
Свойство SmoothingParameter определяет параметр сглаживания.
Под параметром сглаживания понимается интервал времени, на котором будет определяться среднее значение элементов. Чем больше параметр, тем более «гладкий» получается ряд.
Рекомендуется выбирать значение параметра сглаживания следующим образом:
100 - для годовых данных;
1600 - для квартальных данных;
14400 - для месячных данных.
Добавьте ссылку на системную сборку Stat.
Sub UserProc;
Var
HP: SmHodrickPrescottFilter;
s: Array[15] Of Double;
res, i: Integer;
Begin
HP := New SmHodrickPrescottFilter.Create;
// Задаем значения переменных
s[00] := 670.2; s[01] := 576.06; s[02] := 717.64;
s[03] := 856.9; s[04] := 885.4; s[05] := Double.Nan;
s[06] := 995.44; s[07] := 1064.74; s[08] := 1033.3;
s[09] := 780.8; s[10] := 657.5; s[11] := Double.Nan;
s[12] := 678.23; s[13] := 642.41; s[14] := 751.9;
HP.Serie.Value := s;
// Задаём период идентификации
HP.ModelPeriod.FirstPoint := 1;
HP.ModelPeriod.LastPoint := 15;
// Задаём метод обработки пропусков
HP.MissingData.Method := MissingDataMethod.SampleAverage;
// Задаём параметр сглаживания
HP.SmoothingParameter := 100;
// Выполняем расчёт метода и выводим результаты
res := HP.Execute;
If res <> 0 Then
Debug.WriteLine(HP.Errors);
Else
Debug.WriteLine("Модельный ряд");
Debug.Indent;
For i := 0 To HP.Fitted.Length - 1 Do
Debug.WriteLine(HP.Fitted[i]);
End For;
Debug.Unindent;
End If;
End Sub UserProc;
После выполнения примера в окно консоли будет выведен модельный ряд.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Stat;
…
Public Shared Sub Main(Params: StartParams);
Var
HP: SmHodrickPrescottFilter;
s: Array[15] Of Double;
res, i: Integer;
Fitted: System.Array;
Begin
HP := New SmHodrickPrescottFilter.Create();
// Задаем значения переменных
s[00] := 670.2; s[01] := 576.06; s[02] := 717.64;
s[03] := 856.9; s[04] := 885.4; s[05] := Double.Nan;
s[06] := 995.44; s[07] := 1064.74; s[08] := 1033.3;
s[09] := 780.8; s[10] := 657.5; s[11] := Double.Nan;
s[12] := 678.23; s[13] := 642.41; s[14] := 751.9;
HP.Serie.Value := s;
// Задаём период идентификации
HP.ModelPeriod.FirstPoint := 1;
HP.ModelPeriod.LastPoint := 15;
// Задаём метод обработки пропусков
HP.MissingData.Method := MissingDataMethod.mdmSampleAverage;
// Задаём параметр сглаживания
HP.SmoothingParameter := 100;
// Выполняем расчёт метода и выводим результаты
res := HP.Execute();
If res <> 0 Then
System.Diagnostics.Debug.WriteLine(HP.Errors);
Else
System.Diagnostics.Debug.WriteLine("Модельный ряд");
System.Diagnostics.Debug.Indent();
Fitted := HP.Fitted;
For i := 0 To HP.Fitted.Length - 1 Do
System.Diagnostics.Debug.WriteLine(Fitted[i]);
End For;
System.Diagnostics.Debug.Unindent();
End If;
End Sub;
См. также: