IMsECMEquation.AutoRegressionOrder

Синтаксис Fore

AutoRegressionOrder: Array;

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

AutoRegressionOrder: Array;

Описание

Свойство AutoRegressionOrder определяет, будут ли в уравнении использоваться коэффициенты авторегрессии.

Комментарии

Коэффициенты авторегрессии задаются в виде целочисленного массива. Количество элементов массива определяет порядок, а значения элементов определяют лаг для коэффициентов авторегрессии. Для отмены использования авторегрессии необходимо данному свойству установить значение Null.

Пример Fore

Для выполнения примера в репозитории предполагается наличие контейнера моделирования с идентификатором «MS», содержащего векторную модель коррекции ошибок с идентификатором «MODEL_ECM».

Добавьте ссылки на системные сборки:Metabase, Ms.

Sub UserProc;
Var
    MB: IMetabase;
    MObj: IMetabaseObjectDescriptor;
    Model: IMsModel;
    ModelTrans: IMsFormulaTransform;
    Formula: IMsFormula;
    Eqution: IMsECMEquation;
    Ar: Array[0..2Of Integer;
    Calc: IMsModelCalculation;
    Arr: Array Of Double;
    i: Integer;
Begin
    // Получаем текущий репозиторий
    MB := MetabaseClass.Active;
    // Получаем контейнер моделирования
    MObj := MB.ItemById("MS");
    // Получаем векторную модель коррекции ошибок
    Model := MB.ItemByIdNamespace("MODEL_ECM", MObj.Key).Edit As IMsModel;
    ModelTrans := Model.Transform;
    Formula := ModelTrans.FormulaItem(0);
    // Получаем параметры расчета модели
    Eqution := Formula.Method As IMsECMEquation;
    // Задаем порядок авторегрессии
    Ar := New Integer[3];
    Ar[0] := 1;
    Ar[1] := 2;
    Ar[2] := 3;
    Eqution.AutoRegressionOrder := Ar;
    // Задаем настройки для расчета модели
    Calc := Model.CreateCalculation;
    Calc.Period.IdentificationStartDate := DateTime.ComposeDay(19900101);
    Calc.Period.IdentificationEndDate := DateTime.ComposeDay(20161231);
    Calc.Period.ForecastStartDate := DateTime.ComposeDay(20170101);
    Calc.Period.ForecastEndDate := DateTime.ComposeDay(20251231);
    // Получаем данные моделируемой переменной и выводим их в окно консоли
    Arr := Eqution.Result.Serie(Calc As IMsMethodCalculation);
    For i := 0 To Arr.Length - 1 Do
    Debug.WriteLine(Arr[i]);
    End For;
    // Сохраняем модель
    (Model As IMetabaseObject).Save;
End Sub UserProc;

В результате выполнения примера для первого уравнения будет изменен порядок авторегрессии, в окно консоли будут выведены данные моделируемой переменной.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Ms;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    MObj: IMetabaseObjectDescriptor;
    Model: IMsModel;
    ModelTrans: IMsFormulaTransform;
    Formula: IMsFormula;
    Eqution: IMsECMEquation;
    Ar: Array[0..2Of Integer;
    Calc: IMsModelCalculation;
    Arr: System.Array;
    i: Integer;
Begin
    // Получаем текущий репозиторий
    MB := Params.Metabase;
    // Получаем контейнер моделирования
    MObj := MB.ItemById["MS"];
    // Получаем векторную модель коррекции ошибок
    Model := MB.ItemByIdNamespace["MODEL_ECM", MObj.Key].Edit() As IMsModel;
    ModelTrans := Model.Transform;
    Formula := ModelTrans.FormulaItem[0];
    // Получаем параметры расчета модели
    Eqution := Formula.Method As IMsECMEquation;
    // Задаем порядок авторегрессии
    Ar := New Integer[3];
    Ar[0] := 1;
    Ar[1] := 2;
    Ar[2] := 3;
    Eqution.AutoRegressionOrder := Ar;
    // Задаем настройки для расчета модели
    Calc := Model.CreateCalculation();
    Calc.Period.IdentificationStartDate := DateTime.Parse("01.01.1990");
    Calc.Period.IdentificationEndDate := DateTime.Parse("31.12.2016");
    Calc.Period.ForecastStartDate := DateTime.Parse("01.01.2017");
    Calc.Period.ForecastEndDate := DateTime.Parse("31.12.2025");
    // Получаем данные моделируемой переменной и выводим их в окно консоли
    Arr := Eqution.Result.Serie[Calc As IMsMethodCalculation];
    For i := 0 To Arr.Length - 1 Do
    System.Diagnostics.Debug.WriteLine(Arr[i]);
    End For;
    // Сохраняем модель
    (Model As IMetabaseObject).Save();
End Sub;

См. также:

IMsECMEquation