Irregula: ITimeSeries;
Irregula: Prognoz.Platform.Interop.Ms.ITimeSeries;
Свойство Irregula возвращает нерегулярную компоненту.
Приведен пользовательский метод расчёта, возвращающий сглаженный ряд для метода Census1.
Добавьте ссылки на системные сборки: Ms. Для примера Fore.NET также подключите системную сборку ForeSystem.
Public Function Census1Result(Result: Variant): ITimeSeries;
Var
Census1Res: IMsCensus1Result;
Series: ITimeSeries;
Begin
Census1Res := Result As IMsCensus1Result;
// Выводим наименование метода
Debug.WriteLine("Наименование метода: " + Census1Res.BaseMethod.Name);
Debug.WriteLine("");
// Получаем нерегулярную компоненту и выводим её в окно консоли
Series := Census1Res.Irregula;
Debug.WriteLine("Нерегулярная компонента");
Print(Series);
// Получаем отношение/разность и выводим в окно консоли
Series := Census1Res.RatioDifferences;
Debug.WriteLine("Отношение/разность");
Print(Series);
// Получаем сезонную составляющую и выводим её в окно консоли
Series := Census1Res.Seasonal;
Debug.WriteLine("Сезонная составляющая");
Print(Series);
// Получаем сезонную корректировку и выводим её в окно консоли
Series := Census1Res.SeasonalAdjustment;
Debug.WriteLine("Сезонная корректировка");
Print(Series);
// Получаем тренд-циклическую компоненту и выводим её в окно консоли
Series := Census1Res.TrendCycle;
Debug.WriteLine("Тренд-циклическая компонента");
Print(Series);
// Возвращаем сглаженный ряд
Return Census1Res.MovingAverage;
End Function Census1Result;
// Процедура вывода значений ряда в окно консоли
Sub Print(Series: ITimeSeries);
Var
CF: ICultureInfo;
i: Integer;
d: DateTime;
Begin
CF := CultureInfo.Current;
Debug.Indent;
For i := Series.StartIndex To Series.EndIndex Do
d := Series.IndexToDate(i);
Debug.WriteLine(CF.FormatShortDate(d) + ": " + Series.Item(i));
End For;
Debug.Unindent;
Debug.WriteLine("");
End Sub Print;
Imports Prognoz.Platform.Interop.ForeSystem;
Imports Prognoz.Platform.Interop.Ms;
Public Shared Function Census1Result(Result: Object): ITimeSeries;
Var
Census1Res: IMsCensus1Result;
Series: ITimeSeries;
Begin
Census1Res := Result As IMsCensus1Result;
// Выводим наименование метода
System.Diagnostics.Debug.WriteLine("Наименование метода: " + Census1Res.BaseMethod.Name);
System.Diagnostics.Debug.WriteLine("");
// Получаем нерегулярную компоненту и выводим её в окно консоли
Series := Census1Res.Irregula;
System.Diagnostics.Debug.WriteLine("Нерегулярная компонента");
Print(Series);
// Получаем отношение/разность и выводим в окно консоли
Series := Census1Res.RatioDifferences;
System.Diagnostics.Debug.WriteLine("Отношение/разность");
Print(Series);
// Получаем сезонную составляющую и выводим её в окно консоли
Series := Census1Res.Seasonal;
System.Diagnostics.Debug.WriteLine("Сезонная составляющая");
Print(Series);
// Получаем сезонную корректировку и выводим её в окно консоли
Series := Census1Res.SeasonalAdjustment;
System.Diagnostics.Debug.WriteLine("Сезонная корректировка");
Print(Series);
// Получаем тренд-циклическую компоненту и выводим её в окно консоли
Series := Census1Res.TrendCycle;
System.Diagnostics.Debug.WriteLine("Тренд-циклическая компонента");
Print(Series);
// Возвращаем сглаженный ряд
Return Census1Res.MovingAverage;
End Function;
// Процедура вывода значений ряда в окно консоли
Public Shared Sub Print(Series: ITimeSeries);
Var
CultureInfoCls: CultureInfoClassClass = New CultureInfoClassClass();
CF: CultureInfo;
i: Integer;
d: DateTime;
Begin
CF := CultureInfoCls.Current;
System.Diagnostics.Debug.Indent();
For i := Series.StartIndex To Series.EndIndex Do
d := Series.IndexToDate(i);
System.Diagnostics.Debug.WriteLine(CF.FormatShortDate(d) + ": " + Series.Item[i]);
End For;
System.Diagnostics.Debug.Unindent();
System.Diagnostics.Debug.WriteLine("");
End Sub;
В результате выполнения примера в окно консоли будут выведены результаты расчета методом Census1.
Данный пользовательский метод может быть использован в детерминированном уравнении, в калькуляторе в анализе временных рядов и в редакторе выражения. Например, использование пользовательского метода в детерминированном уравнении:
IMSCENSUS1RESULT_IRREGULA.Census1Result(census1(X1, SetPeriod("01.01.2000", "01.01.2015"), MsOutputCensus1SeriesType.MovingAverage, SeasonalityType.Additive))
Где:
IMSCENSUS1RESULT_IRREGULA. Идентификатор модуля, в котором содержится пользовательский метод;
Census1Result. Название пользовательского метода;
Census1. Метод расчета «Census1»;
X1. Фактор модели.
См. также: