IMsCensus2Transform.B1Result

Fore Syntax

B1Result: Array;

Fore.NET Syntax

B1Result: System.Array;

Description

The B1Result property returns a prior adjusted series or source series.

Comments

The value is available only after calculating the method. To set the term, to which these results will be loaded, use the IMsCensus2Transform.B1Term property.

Fore Example

Executing the example requires that the repository contains a modeling container with the MODEL_SPACE identifier, containing a model with the MODEL_CENSUS2 identifier in the repository. The model must be calculated by the X11 method.

Add links to the Metabase, Ms system assemblies.

Sub X11;
Var
    mb: IMetabase;
    MsObj: IMetabaseObjectDescriptor;
    Model: IMsModel;
    Transform: IMsFormulaTransform;
    Vars: IMsFormulaTransformVariables;
    OutputVar: IMsFormulaTransformVariable;
    Coord: IMsFormulaTransformCoord;
    Formula: IMsFormula;
    Census2: IMsCensus2Transform;
    Calc: IMsMethodCalculation;
    Data: Array Of Double;
Begin
    mb := MetabaseClass.Active;
    // Get modeling container
    MsObj := mb.ItemById("MODEL_SPACE");
    // Get the model
    Model := mb.ItemByIdNamespace("MODEL_CENSUS2", MsObj.Key).Edit As IMsModel;
    // Get model parameters
    Transform := Model.Transform;
    // Get the parameters of calculation of X11 method
    Formula := Transform.FormulaItem(0);
    Census2 := Formula.Method As IMsCensus2Transform;
    // Set the component downloaded to the output variable
    Census2.OutputType := MsCensus2OutputType.D11;
    // Set up model calculation    
    Vars := Transform.Outputs;
    OutputVar := Vars.Item(0);
    Coord := Transform.CreateCoord(OutputVar);
    // Set the parameters of calculation period
    Calc := Transform.CreateCalculation;
    Calc.Period.IdentificationStartDate := model.Period.IdentificationStartDate;
    Calc.Period.IdentificationEndDate := model.Period.IdentificationEndDate;
    Calc.Period.ForecastStartDate := model.Period.ForecastStartDate;
    Calc.Period.ForecastEndDate := model.Period.ForecastEndDate;
    // Perform calculation
    Census2.Execute(Calc, Coord);
    // Display calculation results
    Data := Census2.Explained.Serie(Calc);
    Debug.WriteLine("Modeled data");
    Print(Data); Debug.WriteLine("");
    Data := Census2.B1Result;
    Debug.WriteLine("Series after a prior adjustment or source series");
    Print(Data); Debug.WriteLine("");
    Data := Census2.D10Result;
    Debug.WriteLine("Seasonal component");
    Print(Data); Debug.WriteLine("");
    Data := Census2.D11Result;
    Debug.WriteLine("Seasonal adjustment");
    Print(Data); Debug.WriteLine("");
    Data := Census2.D12Result;
    Debug.WriteLine("Trend-cycle component");
    Print(Data); Debug.WriteLine("");
    Data := Census2.D13Result;
    Debug.WriteLine("Irregular component");
    Print(Data); Debug.WriteLine("");
    // Save the model
    (Model As IMetabaseObject).Save;
End Sub X11;

// Data output procedure
Sub Print(Data: Array Of Double);
Var
    i: Integer;
Begin
    Debug.Indent;
    For i := 0 To Data.Length - 1 Do
        Debug.WriteLine(i.ToString + " " + Data[i].ToString);
    End For;
    Debug.Unindent;
End Sub Print;

Example execution result: the model is calculated by the X11 method, calculation results are displayed in the console window.

Fore.NET Example

The requirements and result of the Fore.NET example execution match with those in the Fore example.

Imports Prognoz.Platform.Interop.Ms;

Public Shared Sub Main(Params: StartParams);
Var
    mb: IMetabase;
    MsObj: IMetabaseObjectDescriptor;
    Model: IMsModel;
    Transform: IMsFormulaTransform;
    Vars: IMsFormulaTransformVariables;
    OutputVar: IMsFormulaTransformVariable;
    Coord: IMsFormulaTransformCoord;
    Formula: IMsFormula;
    Census2: IMsCensus2Transform;
    Calc: IMsMethodCalculation;
    Data: System.Array;
Begin
    mb := Params.Metabase;
    // Get modeling container
    MsObj := mb.ItemById["MODEL_SPACE"];
    // Get the model
    Model := mb.ItemByIdNamespace["MODEL_CENSUS2", MsObj.Key].Edit() As IMsModel;
    // Get model parameters
    Transform := Model.Transform;
    // Get the parameters of calculation of X11 method
    Formula := Transform.FormulaItem[0];
    Census2 := Formula.Method As IMsCensus2Transform;
    // Set the component downloaded to the output variable
    Census2.OutputType := MsCensus2OutputType.mcotD11;
    // Set up model calculation
    Vars := Transform.Outputs;
    OutputVar := Vars.Item[0];
    Coord := Transform.CreateCoord(OutputVar);
    // Set the parameters of calculation period
    Calc := Transform.CreateCalculation();
    Calc.Period.IdentificationStartDate := model.Period.IdentificationStartDate;
    Calc.Period.IdentificationEndDate := model.Period.IdentificationEndDate;
    Calc.Period.ForecastStartDate := model.Period.ForecastStartDate;
    Calc.Period.ForecastEndDate := model.Period.ForecastEndDate;
    // Perform calculation
    Census2.Execute(Calc, Coord);
    // Display calculation results
    Data := Census2.Explained.Serie[Calc];
    System.Diagnostics.Debug.WriteLine("Modeled data");
    Print(Data); System.Diagnostics.Debug.WriteLine("");
    Data := Census2.B1Result;
    System.Diagnostics.Debug.WriteLine("Series after a priori adjustment or the source series");
    Print(Data); System.Diagnostics.Debug.WriteLine("");
    Data := Census2.D10Result;
    System.Diagnostics.Debug.WriteLine("Seasonal component");
    Print(Data); System.Diagnostics.Debug.WriteLine("");
    Data := Census2.D11Result;
    System.Diagnostics.Debug.WriteLine("Seasonal adjustment");
    Print(Data); System.Diagnostics.Debug.WriteLine("");
    Data := Census2.D12Result;
    System.Diagnostics.Debug.WriteLine("Trend-cycle component");
    Print(Data); System.Diagnostics.Debug.WriteLine("");
    Data := Census2.D13Result;
    System.Diagnostics.Debug.WriteLine("Irregular component");
    Print(Data); System.Diagnostics.Debug.WriteLine("");
    // Save the model
    (Model As IMetabaseObject).Save();
End Sub;

// Data output procedure
Public Shared Sub Print(Data: System.Array);
Var
    i: Integer;
Begin
    System.Diagnostics.Debug.Indent();
    For i := 0 To Data.Length - 1 Do
        System.Diagnostics.Debug.WriteLine(i.ToString() + " " + Data[i].ToString());
    End For;
    System.Diagnostics.Debug.Unindent();
End Sub Print;

See also:

IMsCensus2Transform