IMsStringGenerator.AdvancedOptions

Синтаксис Fore

AdvancedOptions: MsStringGeneratorOptions;

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

AdvancedOptions: Prognoz.Platform.Interop.Ms.MsStringGeneratorOptions;

Описание

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

Комментарии

Если установить AdvancedOptions равным MsStringGeneratorOptions.ExpandArimaName и задать свойство IMsStringGenerator.Coord, то можно получить идентифицированное уравнение для модели ARIMA.

Пример Fore

Для выполнения примера предполагается наличие в репозитории контейнера моделирования с идентификатором «CONT_MODEL». В контейнере присутствует модель ARIMA с идентификатором «MODEL».

Также необходимо добавить ссылки на системные сборки «Metabase», «Ms».

Sub UserProc;
Var
    MB: IMetabase;
    Model: IMsModel;
    Transform: IMsFormulaTransform;
    VarTrans: IMsFormulaTransformVariable;
    Tree: IMsFormulaTransformSlicesTree;
    Slice: IMsFormulaTransformSlice;
    Selector: IMsFormulaTransformSelector;
    Formula: IMsFormula;
    Arima: IMsArimaTransform;
    Coord: IMsFormulaTransformCoord;
    Calc: IMsModelCalculation;
    StrGen: IMsModelStringGenerator;
Begin
    MB := MetabaseClass.Active;
    Model := MB.ItemByIdNamespace("MODEL", MB.ItemById("CONT_MODEL").Key).Bind As IMsModel;
    Transform := Model.Transform;
    VarTrans := Transform.Outputs.Item(0);
    Tree := VarTrans.SlicesTree(VarTrans);
    Slice := Tree.CreateSlice(1);
    Selector := Transform.CreateSelector;
    Selector.Slice := Slice;
    Formula := Transform.Transform(Selector);
    Arima := Formula.Method As IMsArimaTransform;
    Coord := Transform.CreateCoord(VarTrans);
    Calc := Model.CreateCalculation;
    Calc.Period.IdentificationStartDate := DateTime.ComposeDay(20000101);
    Calc.Period.IdentificationEndDate := DateTime.ComposeDay(20051231);
    Calc.Period.ForecastStartDate := DateTime.ComposeDay(20060101);
    Calc.Period.ForecastEndDate := DateTime.ComposeDay(20101231);
    Arima.Execute(Calc As IMsMethodCalculation, Coord);
    StrGen := Model.CreateStringGenerator;
    StrGen.AdvancedOptions := MsStringGeneratorOptions.ExpandArimaName;
    StrGen.Coord := Coord;
    StrGen.ShowEstimatedCoeffs := True;
    Debug.WriteLine("Идентифицированное уравнение:" + StrGen.Execute);
End Sub UserProc;

После выполнения примера в окно консоли будет выведено идентифицированное уравнение модели ARIMA.

Пример Fore

Для выполнения примера предполагается наличие в репозитории контейнера моделирования с идентификатором «CONT_MODEL». В контейнере присутствует модель ARIMA с идентификатором «MODEL».

Imports Prognoz.Platform.Interop.Ms;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    Model: IMsModel;
    Transform: IMsFormulaTransform;
    VarTrans: IMsFormulaTransformVariable;
    Tree: IMsFormulaTransformSlicesTree;
    Slice: IMsFormulaTransformSlice;
    Selector: IMsFormulaTransformSelector;
    Formula: IMsFormula;
    Arima: IMsArimaTransform;
    Coord: IMsFormulaTransformCoord;
    Calc: IMsModelCalculation;
    StrGen: IMsModelStringGenerator;
Begin
    MB := Params.Metabase;
    Model := MB.ItemByIdNamespace["MODEL", MB.ItemById["CONT_MODEL"].Key].Bind() As IMsModel;
    Transform := Model.Transform;
    VarTrans := Transform.Outputs.Item[0];
    Tree := VarTrans.SlicesTree[VarTrans];
    Slice := Tree.CreateSlice(1);
    Selector := Transform.CreateSelector();
    Selector.Slice := Slice;
    Formula := Transform.Transform[Selector];
    Arima := Formula.Method As IMsArimaTransform;
    Coord := Transform.CreateCoord(VarTrans);
    Calc := Model.CreateCalculation();
    Calc.Period.IdentificationStartDate := DateTime.Parse("2000.01.01");
    Calc.Period.IdentificationEndDate := DateTime.Parse("2005.12.31");
    Calc.Period.ForecastStartDate := DateTime.Parse("2006.01.01");
    Calc.Period.ForecastEndDate := DateTime.Parse("2010.12.31");
    Arima.Execute(Calc As IMsMethodCalculation, Coord);
    StrGen := Model.CreateStringGenerator();
    StrGen.AdvancedOptions := MsStringGeneratorOptions.msgoExpandArimaName;
    StrGen.Coord := Coord;
    StrGen.ShowEstimatedCoeffs := True;
    System.Diagnostics.Debug.WriteLine("Идентифицированное уравнение:" + StrGen.Execute());
End Sub;

После выполнения примера в окно консоли будет выведено идентифицированное уравнение модели ARIMA.

См. также:

IMsStringGenerator