ISmHodrickPrescottFilter.SmoothingParameter

Синтаксис Fore

SmoothingParameter: Double;

Синтаксис Fore.NET

SmoothingParameter: double;

Описание

Свойство SmoothingParameter определяет параметр сглаживания.

Комментарии

Под параметром сглаживания понимается интервал времени, на котором будет определяться среднее значение элементов. Чем больше параметр, тем более «гладкий» получается ряд.

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

Пример Fore

В примере описано задание параметров и расчет фильтра Ходрика-Прескотта для ряда данных, заданного вещественным массивом «s».

Добавьте ссылку на системную сборку Stat.

Sub UserProc;
Var
    HP: SmHodrickPrescottFilter;
    s: Array[15Of 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.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Stat;

Public Shared Sub Main(Params: StartParams);
Var
    HP: SmHodrickPrescottFilter;
    s: Array[15Of 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;

См. также:

ISmHodrickPrescottFilter