OlsR(Input: ITimeSeries;
Period: IMsPeriod;
ConstantValue: Variant;
AROrder: Integer;
MAOrder: Integer;
Casewise: MsCasewise;
Explanatories: Array): Variant;
Input. Output variable.
Period. Period, at which the method is calculated
ConstantValue. Constant used in calculations.
AROrder. Autoregression order.
MAOrder. Moving average order.
Casewise. Missing data treatment method.
Explanatories. Explanatory variables.
The OlsR method models a variable with the help of linear regression (OLS estimation) and the R package.
Use the OlsR method only when series mode of calculation is applied.
Integration with R must be set up in the repository to use this method. To set up integration, see the How to Set Up Integration with R? section.
Features of setting parameters:
Period. If the parameter is set to Null, the method is calculated at the entire time period
ConstantValue. The value of the constant can be determined by the user or estimated automatically. Use the IModelling.Estimate method to estimate values automatically. If the model should be calculated without constant, use the IModelling.None method
AROrder, MAOrder. Parameters are set in the string format. Specify the numbers or ranges of autoregression or moving average orders separated by commas. The range of autoregression or moving average orders is specified via the - sign. For example: AROrder = "1-3,5".
MAOrder. If the moving average order is set, back-casting can be used to estimate its coefficients. Back-casting is used by default. If back-casting must be disabled, the MAOrder parameter must contain the "backcast.No" string. For example: MAOrder = "1-4;backcast.No".
Explanatories. Terms corresponding to variables are specified via comma. Note that the number of explanatory variables (m) should satisfy the inequality: 0 < m < n-1 for a model with constant, and 0 < m < n for a model without constant, where n - number of observations in the output variable.
Executing the example requires that the repository contains a modeling container with the MS identifier. This container includes a model with the MODEL_D identifier that is calculated using the determinate equation method and contains more than one input variable.
Integration with R must be set up in the repository. To set up integration, see the How to Set Up Integration with R? section.
Add links to the Metabase and Ms system assemblies.
Sub UserOlsR;
Var
Mb: IMetabase;
ModelSpace, ModelObj: IMetabaseObject;
Transf: IMsFormulaTransform;
Formula: IMsFormula;
Model: IMsModel;
Determ: IMsDeterministicTransform;
TransVar: IMsFormulaTransformVariable;
Slice: IMsFormulaTransformSlice;
TermInfo: IMsFormulaTermInfo;
Inp_1, Inp_2: String;
Expr: IExpression;
Begin
// Get repository
Mb := MetabaseClass.Active;
// Get modeling container
ModelSpace := Mb.ItemById("MS").Bind;
// Get model
ModelObj := Mb.ItemByIdNamespace("MODEL_D", ModelSpace.Key).Edit;
Model := ModelObj As IMsModel;
// Get model calculation parameters
Transf := Model.Transform;
Formula := Transf.FormulaItem(0);
Determ := Formula.Method As IMsDeterministicTransform;
// Get the first input variable
TransVar := Transf.Inputs.Item(0);
Slice := TransVar.Slices.Item(0);
TermInfo := Transf.CreateTermInfo;
TermInfo.Slice := Slice;
// Set mode of passing variable into calculation
TermInfo.Type := MsFormulaTermType.Pointwise;
// Get internal view of the variable as a text
Inp_1 := TermInfo.TermInnerText;
// Get the second input variable
TransVar := Transf.Inputs.Item(1);
Slice := TransVar.Slices.Item(0);
TermInfo := Transf.CreateTermInfo;
TermInfo.Slice := Slice;
// Set mode of passing variable into calculation
TermInfo.Type := MsFormulaTermType.Pointwise;
// Get internal view of the variable as a text
Inp_2 := TermInfo.TermInnerText;
// Get model calculation expression
Expr := Determ.Expression;
Expr.References := "Ms";
// Set model calculation expression
Expr.AsString := "OlsR(" + Inp_1 + ", SetPeriod(2000,2015), Estimate, 1," +
"1, MsCasewise.Yes, " + Inp_2 + ")";
// Check if the expression is correct
If Expr.Valid
// If the expression is set correctly, save the model
Then ModelObj.Save;
// If the expression is incorrect, display a message to the console window
Else Debug.WriteLine("Model is not saved: error in the formula");
End If;
End Sub UserOlsR;
After executing the example the model will model the first input variable using the linear regression method (OLS estimation) at the specified period. The value of constant is estimated automatically. The Casewise missing data treatment method is used. Calculation will be executed using the R package.
Expression 1:
OlsR({Chicago - population[t]}, Null, None, 0, 0, MsCasewise.Yes, {Mexico - population[t]})
Result: the Chicago - population time series will be modeled using the linear regression method (OLS estimation) at the entire period using the following parameters: no constant is used, autoregression and moving average orders are not set, the Mexico - population time series is used as the explanatory variable, the Casewise missing data treatment method is used. Calculation is executed using the R package.
Use: it can be used in formulas of cross functional expression editor in any platform tool where it is available.
Expression 2:
OlsR(X1, SetPeriod(2000, 2015), Estimate, 1, 2, MsCasewise.Yes, X2, X3)
Result: the X1 factor will be modeled using the linear regression method (OLS estimation) by the following parameters: calculation period - 2000-2015, constant is estimated using the IModelling.Estimate method, autoregression order is 1, moving average order is 2, explanatory variables - the X2 and X3 factors, data is treated using the Casewise method. Calculation is executed using the R package.
Use: it can be used in model formulas of modeling container.
See also:
IModelling | Least-Squares Method | Time Series Database: Calculator, Linear Regression Modeling Container: The Linear Regression (OLS Estimation) Model, Editing Regressor or Formula