Teradata R Package Function Reference | 17.00 - 17.00 - VarMax - Teradata R Package

Teradata® R Package Function Reference

prodname
Teradata R Package
vrm_release
17.00
created_date
September 2020
category
Programming Reference
featnum
B700-4007-090K

Description

VARMAX (Vector Autoregressive Moving Average model with eXogenous variables) extends the ARMA/ARIMA model in two ways:

  1. To work with time series with multiple response variables (vector time series).

  2. To work with exogenous variables, or variables that are independent of the other variables in the system.

Usage

  td_varmax_mle (
      data = NULL,
      response.columns = NULL,
      exogenous.columns = NULL,
      partition.columns = NULL,
      orders = NULL,
      seasonal.orders = NULL,
      period = NULL,
      exogenous.order = NULL,
      lag = 0,
      include.mean = FALSE,
      max.iter.num = 100,
      step.ahead = NULL,
      method = "SSE",
      data.orders = NULL,
      include.drift = FALSE,
      order.p = NULL,
      order.d = NULL,
      order.q = NULL,
      seasonal.order.p = NULL,
      seasonal.order.d = NULL,
      seasonal.order.q = NULL,
      data.sequence.column = NULL,
      data.orders.sequence.column = NULL,
      data.partition.column = "1",
      data.orders.partition.column = "1",
      data.order.column = NULL,
      data.orders.order.column = NULL
  )

Arguments

data

Required Argument.
Specifies the tbl_teradata that stores the input sequence.

data.partition.column

Optional Argument
Specifies Partition By columns for "data".
Values to this argument can be provided as a vector, if multiple columns are used for partition.
Default Value: "1"
Types: character OR vector of Strings (character)

data.order.column

Required Argument.
Specifies Order By columns for "data".
Values to this argument can be provided as a vector, if multiple columns are used for ordering.
Types: character OR vector of Strings (character)

data.orders

Optional Argument.
Specifies the output tbl_teradata created from TimeSeriesOrders ML Engine functions output table.

data.orders.partition.column

Optional Argument
Specifies Partition By columns for "data.orders".
Values to this argument can be provided as a vector, if multiple columns are used for partition.
Default Value: 1
Types: character OR vector of Strings (character)

data.orders.order.column

Optional Argument.
Specifies Order By columns for "data.orders".
Values to this argument can be provided as a vector, if multiple columns are used for ordering.
Types: character OR vector of Strings (character)

response.columns

Required Argument.
Specifies the columns containing the response data. NULL values are acceptable at the end of the series. If "step.ahead" is specified, the function will report predicted values for the missing values, taking into account values from the predictor columns for those time periods.
Types: character OR vector of Strings (character)

exogenous.columns

Optional Argument.
Specifies the columns containing the independent (exogenous) predictors. If not specified, the model will be calculated without exogenous vectors.
Types: character OR vector of Strings (character)

partition.columns

Optional Argument.
Specifies the partition columns that will be passed to the output. If not specified, the output will not contain partition columns.
Types: character OR vector of Strings (character)

orders

Optional Argument. This argument is required if "data.orders" and ("order.p", "orders.d", "orders.q") are not specified.
Specifies the parameters p, d, q for VARMAX model. This argument consists of 3 non-negative integer values separated by commas. The p and q must be an integer between 0 and 10, inclusive. The d must be between 0 and 1, inclusive.
Types: character

seasonal.orders

Optional Argument.
Specifies seasonal parameters sp, sd, sq for VARMAX model. This argument consists of 3 non-negative integer values separated by commas. The sp and sq must be an integer between 0 and 10, inclusive. The sd must be between 0 and 3, inclusive If not specified, the model will be treated as a non-seasonal model.
If the "seasonal.orders" argument is used, the "period" argument should also be present.
If "data.orders" is specified, this argument cannot be specified.
Types: character

period

Optional Argument. This argument is required if "seasonal.orders" or ("seasonl.orders.p", "seasonal.orders.d", "seasonal.orders.d") is specified.
Specifies the period of each season. It must be a positive integer value. If this argument is not specified, the model will be treated as a non-seasonal model.
If this argument is used, the "seasonal.orders" or ("seasonl.orders.p", "seasonal.orders.d", "seasonal.orders.d") argument must also be present.
Types: integer

exogenous.order

Optional Argument.
Specifies the order of exogenous variables. If the current time is t and "exogenous.order" is b, the following values of the exogenous time series will be used in calculating the response: Xt Xt-1 ... Xt-b+1. If not specified, the model will be calculated without exogenous vectors.
Types: integer

lag

Optional Argument.
Specifies the lag in the effect of the exogenous variables on the response variables. For example, if lag = 3, and "exogenous.order" is b, Yi will be predicted based on Xi-3 to Xi-b-2, where

  1. Yi is a vector of n response variables

  2. Xi is a vector of m exegenous variables

Default Value: 0
Types: integer

include.mean

Optional Argument.
Specifies whether mean vector of the response data series (constant c in the formula) is added in the VARMAX model.
Note: If this argument is TRUE, the difference parameters d (in the "orders" argument) and sd (in the "seasonal.orders" argument) should be 0.
This argument cannot be specified along with the data.orders arugment.
Default Value: FALSE
Types: logical

max.iter.num

Optional Argument.
Specifies the maximum number of iterations performed. It must be a positive integer value.
Default Value: 100
Types: integer

step.ahead

Optional Argument.
Specifies the number of steps to forecast after the end of the time series. Must be a positive integer value. If this argument is not provided, no forecast values are calculated.
Types: integer

method

Optional Argument.
Specifies the method for fitting the model parameters:

  1. SSE: Sum of squared error.

  2. ML: Maximum likelihood.

Default Value: "SSE"
Permitted Values: SSE, ML
Types: character

include.drift

Optional Argument.
Specify whether drift term is included in the VARMAX model.
Note:

  1. This argument can only be TRUE when d is non-zero and less than 2.

  2. This argument cannot be specified along with the "data.orders" arugment.

Default Value: FALSE
Types: logical

order.p

Optional Argument. This argument is required if "data.orders" and "orders" are not specified.
Specifies the p value of the non-seasonal order parameter. The p value must be an integer between 0 and 10, inclusive.
Note: "order.p" argument support is only available when tdplyr is connected to Vantage 1.1 or later versions.
Types: integer

order.d

Optional Argument. This argument is required if "data.orders" and "orders" are not specified.
Specifies the d value of the non-seasonal order parameter. The d value must be an integer between 0 and 1, inclusive.
Note: "order.d" argument support is only available when tdplyr is connected to Vantage 1.1 or later versions.
Types: integer

order.q

Optional Argument.This argument is required if "data.orders" and "orders" are not specified.
Specifies the q value of the non-seasonal order parameter. The q value must be an integer between 0 and 10, inclusive.
Note: "order.q" argument support is only available when tdplyr is connected to Vantage 1.1 or later versions.
Types: integer

seasonal.order.p

Optional Argument.
Specifies the sp value of the seasonal order parameter. The sp value must be an integer between 0 and 10, inclusive.
If "data.orders" or "seasonal.orders" is specified, this argument cannot be specified.
Note: "seasonal.order.p" argument support is only available when tdplyr is connected to Vantage 1.1 or later versions.
Types: integer

seasonal.order.d

Optional Argument.
Specifies the sd value of the seasonal order parameter. The sd value must be an integer between 0 and 3, inclusive.
If "data.orders" or "seasonal.orders" is specified, this argument cannot be specified.
Note: "seasonal.order.d" argument support is only available when tdplyr is connected to Vantage 1.1 or later versions.
Types: integer

seasonal.order.q

Optional Argument.
Specifies the sq value of the seasonal order parameter. The sq value must be an integer between 0 and 10, inclusive.
If "data.orders" or "seasonal.orders" is specified, this argument cannot be specified.
Note: "seasonal.order.q" argument support is only available when tdplyr is connected to Vantage 1.1 or later versions.
Types: integer

data.sequence.column

Optional Argument.
Specifies the vector of column(s) that uniquely identifies each row of the input argument "data". The argument is used to ensure deterministic results for functions which produce results that vary from run to run.
Types: character OR vector of Strings (character)

data.orders.sequence.column

Optional Argument.
Specifies the vector of column(s) that uniquely identifies each row of the input argument "data.orders". The argument is used to ensure deterministic results for functions which produce results that vary from run to run.
Types: character OR vector of Strings (character)

Value

Function returns an object of class "td_varmax_mle" which is a named list containing object of class "tbl_teradata".
Named list member can be referenced directly with the "$" operator using the name: result.

Examples

    # Get the current context/connection
    con <- td_get_context()$connection
    
    # Load example data.
    loadExampleData("varmax_example", "finance_data3", "orders_ex")

    # Create object(s) of class "tbl_teradata".
    finance_data3 <- tbl(con, "finance_data3")
    orders_ex <- tbl(con, "orders_ex")

    # Example 1 - Without "exogenous.columns" argument.
    varmax_out1 <- td_varmax_mle(data = finance_data3,
                                 data.partition.column = c("id"),
                                 data.order.column = c("period"),
                                 response.columns = c("expenditure","income","investment"),
                                 partition.columns = c("id"),
                                 orders = "1,1,1",
                                 include.mean = FALSE,
                                 step.ahead = 3
                                 )

    # Example 2 - Without "seasonal.orders" argument.
    varmax_out2 <- td_varmax_mle(data = finance_data3,
                                 data.partition.column = c("id"),
                                 data.order.column = c("period"),
                                 response.columns = c("expenditure"),
                                 exogenous.columns = c("income","investment"),
                                 partition.columns = c("id"),
                                 orders = "1,1,1",
                                 exogenous.order = 3,
                                 lag = 3,
                                 include.mean = FALSE,
                                 step.ahead = 3
                                 )

    # Example 3 - With both "orders" and "seasonal.orders" arguments.
    varmax_out3 <- td_varmax_mle(data = finance_data3,
                                 data.partition.column = c("id"),
                                 data.order.column = c("period"),
                                 response.columns = c("expenditure"),
                                 exogenous.columns = c("income","investment"),
                                 partition.columns = c("id"),
                                 orders = "1,1,1",
                                 seasonal.orders = "1,0,0",
                                 period = 4,
                                 exogenous.order = 3,
                                 lag = 3,
                                 include.mean = FALSE,
                                 step.ahead = 3
                                 )

    # Example 4 - Using "data.orders" arguments.
    varmax_out4 <- td_varmax_mle(data = finance_data3,
                                 data.partition.column = c("id"),
                                 data.order.column = c("period"),
                                 response.columns = c("expenditure"),
                                 partition.columns = c("id"),
                                 max.iter.num = 1000,
                                 method = "ML",
                                 data.orders = orders_ex,
                                 data.orders.partition.column = c("id")
                                 )

    # Example 5 - Using "order.p", "order.d" and "order.q" arguments.
    varmax_out5 <- td_varmax_mle(data = finance_data3,
                                 data.partition.column = c("id"),
                                 data.order.column = c("period"),
                                 response.columns = c("expenditure"),
                                 exogenous.columns = c("income","investment"),
                                 partition.columns = c("id"),
                                 order.p = 1,
                                 order.d = 1,
                                 order.q = 1,
                                 seasonal.orders = "1,0,0",
                                 period = 4,
                                 exogenous.order = 3,
                                 lag = 3,
                                 include.mean = FALSE,
                                 step.ahead = 3
    )

    # Example 6 - Using "seasonal.order.p", "seasonal.order.d" and "seasonal.order.q" arguments.
    varmax_out6 <- td_varmax_mle(data = finance_data3,
                                 data.partition.column = c("id"),
                                 data.order.column = c("period"),
                                 response.columns = c("expenditure"),
                                 exogenous.columns = c("income","investment"),
                                 partition.columns = c("id"),
                                 orders = "1,1,1",
                                 seasonal.order.p = 1,
                                 seasonal.order.d = 0,
                                 seasonal.order.q = 0,
                                 period = 4,
                                 exogenous.order = 3,
                                 lag = 3,
                                 include.mean = FALSE,
                                 step.ahead = 3
    )