B1: ITimeSeries;
B1: Prognoz.Platform.Interop.Ms.ITimeSeries;
Свойство B1 возвращает ряд после априорной корректировки или исходный ряд.
С помощью данного интерфейса также доступно получение:
IMsX11Result.D10. Сезонная составляющая исходного ряда;
IMsX11Result.D11. Сезонная корректировка;
IMsX11Result.D12. Тренд-циклическая компонента;
IMsX11Result.D13. Нерегулярная компонента.
Приведен пользовательский метод расчета, возвращающий прогнозные значения для какого-либо прогнозного метода расчета.
Добавьте ссылки на системные сборки: Ms, Stat.
Public Function X11Result(Result: Variant): ITimeSeries;
Var
X11Res: IMsX11Result;
Series: ITimeSeries;
Begin
X11Res := Result As IMsX11Result;
// Выводим наименование метода
Debug.WriteLine("Наименование метода: " + X11Res.BaseMethod.Name);
Debug.WriteLine("");
// Получаем ряд после априорной корректировки или исходный ряд и выводим его в окно консоли
Series := X11Res.B1;
Debug.WriteLine("Ряд после априорной корректировки или исходный ряд");
Print(Series);
// Получаем сезонную составляющую исходного ряда и выводим её в окно консоли
Series := X11Res.D10;
Debug.WriteLine("Сезонная составляющая исходного ряда");
Print(Series);
// Получаем сезонную корректировку и выводим её в окно консоли
Series := X11Res.D11;
Debug.WriteLine("Сезонная корректировка");
Print(Series);
// Получаем тренд-циклическую компоненту и выводим её в окно консоли
Series := X11Res.D12;
Debug.WriteLine("Тренд-циклическая компонента");
Print(Series);
// Получаем нерегулярную компоненту и выводим её в окно консоли
Series := X11Res.D13;
Debug.WriteLine("Нерегулярная компонента");
Print(Series);
// Возвращаем прогнозный ряд
Return X11Res.Fitted;
End Function X11Result;
// Процедура вывода значений ряда в окно консоли
Sub Print(Series: ITimeSeries);
Var
i: Integer;
d: DateTime;
Begin
Debug.Indent;
For i := Series.StartIndex To Series.EndIndex Do
d := Series.IndexToDate(i);
Debug.WriteLine(CultureInfo.Current.FormatShortDate(d) + ": " + Series.Item(i));
End For;
Debug.Unindent;
Debug.WriteLine("");
End Sub Print;
В результате выполнения примера в окно консоли будут выведены результаты расчета метода «X11».
Данный пользовательский метод может быть использован в детерминированном уравнении, в калькуляторе в анализе временных рядов и в редакторе выражения. Например, использование пользовательского метода в детерминированном уравнении:
IMSX11RESULT_B1.X11Result(x11(X1, Null, MsOutputSeriesType.B1, SeasonalityType.Multiplicative))
Где:
IMSX11RESULT_B1. Идентификатор модуля, в котором содержится пользовательский метод;
X11Result. Название пользовательского метода;
x11. Метод расчета «X11»;
X1. Фактор модели.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.ForeSystem;
Imports Prognoz.Platform.Interop.Ms;
Imports Prognoz.Platform.Interop.Stat;
…
Public Shared Function X11Result(Result: object): ITimeSeries;
Var
X11Res: IMsX11Result;
Series: ITimeSeries;
Begin
X11Res := Result As IMsX11Result;
// Выводим наименование метода
System.Diagnostics.Debug.WriteLine("Наименование метода: " + X11Res.BaseMethod.Name);
System.Diagnostics.Debug.WriteLine("");
// Получаем ряд после априорной корректировки или исходный ряд и выводим его в окно консоли
Series := X11Res.B1;
System.Diagnostics.Debug.WriteLine("Ряд после априорной корректировки или исходный ряд");
Print(Series);
// Получаем сезонную составляющую исходного ряда и выводим её в окно консоли
Series := X11Res.D10;
System.Diagnostics.Debug.WriteLine("Сезонная составляющая исходного ряда");
Print(Series);
// Получаем сезонную корректировку и выводим её в окно консоли
Series := X11Res.D11;
System.Diagnostics.Debug.WriteLine("Сезонная корректировка");
Print(Series);
// Получаем тренд-циклическую компоненту и выводим её в окно консоли
Series := X11Res.D12;
System.Diagnostics.Debug.WriteLine("Тренд-циклическая компонента");
Print(Series);
// Получаем нерегулярную компоненту и выводим её в окно консоли
Series := X11Res.D13;
System.Diagnostics.Debug.WriteLine("Нерегулярная компонента");
Print(Series);
// Возвращаем прогнозный ряд
Return X11Res.Fitted;
End Function X11Result;
// Процедура вывода значений ряда в окно консоли
Public Shared Sub Print(Series: ITimeSeries);
Var
CultureInfo: CultureInfoClassClass = New CultureInfoClassClass();
i: Integer;
d: DateTime;
Begin
System.Diagnostics.Debug.Indent();
For i := Series.StartIndex To Series.EndIndex Do
d := Series.IndexToDate(i);
System.Diagnostics.Debug.WriteLine(CultureInfo.Current.FormatShortDate(d) + ": " + Series.Item[i]);
End For;
System.Diagnostics.Debug.Unindent();
System.Diagnostics.Debug.WriteLine("");
End Sub Print;
См. также: