WarningByStatus(Status: Integer): String;
WarningByStatus[Status: integer]: string;
Status. Номер предупреждения.
Свойство WarningByStatus возвращает текст предупреждения по его номеру.
Массив номеров предупреждений, возникших при выполнении метода, возвращает свойство IStatMethod.WarningsNumbers.
Для выполнения примера добавьте ссылку на системную сборку Stat.
Sub UserProc;
Var
HP: SmHodrickPrescottFilter;
s: Array[15] Of Double;
res: Integer;
j, n: Integer;
Begin
// Задаем значения переменных
s[00] := 670.2; s[08] := 1033.3;
s[01] := 576.06; s[09] := 780.8;
s[02] := 717.64; s[10] := 657.5;
s[03] := 856.9; s[11] := 654.5;
s[04] := 885.4; s[12] := 678.23;
s[05] := 1011; s[13] := 642.41;
s[06] := 995.44; s[14] := 751.9;
s[07] := 1064.74;
HP := New SmHodrickPrescottFilter.Create;
//Задаем исходный ряд
HP.Serie.Value := s;
// Задаём период идентификации
HP.ModelPeriod.FirstPoint := 1;
HP.ModelPeriod.LastPoint := 15;
// Задаём метод обработки пропусков
HP.MissingData.Method := MissingDataMethod.SampleAverage;
// Определяем количество периодов в году
HP.Frequency := 12;
// Определяем способ задания параметра сглаживания
HP.SmoothingParameterMode := HPSmoothingParameterModeType.EditDirectly;
// Задаём параметр сглаживания
HP.SmoothingParameter := 5000000000000000000;
// Выполняем расчет и выводим результаты
res := HP.Execute;
If res <> 0 Then
Debug.WriteLine(HP.Errors);
Else
If HP.WarningsCount > 0 Then
Debug.WriteLine("Предупреждения");
For j := 0 To HP.WarningsNumbers.Length - 1 Do
n := HP.WarningsNumbers[j];
Debug.WriteLine(HP.WarningByStatus(n));
End For;
End If;
Debug.WriteLine("Модельный ряд");
For j := 0 To HP.Fitted.Length - 1 Do
Debug.WriteLine(HP.Fitted[j]);
End For;
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: Integer;
j, n: Integer;
Begin
// Задаем значения переменных
s[00] := 670.2; s[08] := 1033.3;
s[01] := 576.06; s[09] := 780.8;
s[02] := 717.64; s[10] := 657.5;
s[03] := 856.9; s[11] := 654.5;
s[04] := 885.4; s[12] := 678.23;
s[05] := 1011; s[13] := 642.41;
s[06] := 995.44; s[14] := 751.9;
s[07] := 1064.74;
HP := New SmHodrickPrescottFilter.Create();
//Задаем исходный ряд
HP.Serie.Value := s;
// Задаём период идентификации
HP.ModelPeriod.FirstPoint := 1;
HP.ModelPeriod.LastPoint := 15;
// Задаём метод обработки пропусков
HP.MissingData.Method := MissingDataMethod.mdmSampleAverage;
// Определяем количество периодов в году
HP.Frequency := 12;
// Определяем способ задания параметра сглаживания
HP.SmoothingParameterMode := HPSmoothingParameterModeType.hpspmtEditDirectly;
// Задаём параметр сглаживания
HP.SmoothingParameter := 5000000000000000000;
// Выполняем расчет и выводим результаты
res := HP.Execute();
If res <> 0 Then
System.Diagnostics.Debug.WriteLine(HP.Errors);
Else
If HP.WarningsCount > 0 Then
System.Diagnostics.Debug.WriteLine("Предупреждения");
For j := 0 To HP.WarningsNumbers.Length - 1 Do
n := HP.WarningsNumbers.GetValue(j) As integer;
System.Diagnostics.Debug.WriteLine(HP.WarningByStatus[n]);
End For;
End If;
System.Diagnostics.Debug.WriteLine("Модельный ряд");
For j := 0 To HP.Fitted.Length - 1 Do
System.Diagnostics.Debug.WriteLine(HP.Fitted.GetValue(j));
End For;
End If;
End Sub;
См. также: