SmoothingParameter: Double;
SmoothingParameter: double;
Свойство SmoothingParameter определяет параметр сглаживания.
Под параметром сглаживания понимается интервал времени, на котором будет определяться среднее значение элементов. Чем больше параметр, тем более «гладкий» получается ряд.
Рекомендуется выбирать значение параметр сглаживания следующим образом:
100 - для годовых данных;
1600 - для квартальных данных;
14400 - для месячных данных.
В примере описано задание параметров и расчет фильтра Ходрика-Прескотта для ряда данных, заданного вещественным массивом «s».
Добавьте ссылку на системную сборку Stat.
Sub UserProc;
Var
HP: SmHodrickPrescottFilter;
s: Array[15] Of Double;
res, i: Integer;
Begin
HP := New SmHodrickPrescottFilter.Create;
//значения s
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
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;
См. также: