Teradata R Package Function Reference - 16.20 - VarMax - Teradata R Package

Teradata® R Package Function Reference

prodname
Teradata R Package
vrm_release
16.20
created_date
February 2020
category
Programming Reference
featnum
B700-4007-098K

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 or view 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)

response.columns

Required Argument.
Specifies the data 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 data columns containing the independent (exogenous) predictors. If it is not specified, the model will be calculated without exogenous vectors.
Types: character OR vector of Strings (character)

partition.columns

Optional Argument.
Specifies the data partition columns that will be passed to the output. If it is 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 values of p and q must be an integer between 0 and 10, inclusive. The value of 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 values of sp and sq must be an integer between 0 and 10, inclusive. The value of sd must be between 0 and 3, inclusive. If this argument is not specified, the model will be treated as a non-seasonal model.
If this 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: numeric

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 it is not specified, the model will be calculated without exogenous vectors.
Types: numeric

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: numeric

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 that if this argument is TRUE, the difference parameter 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: numeric

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: numeric

method

Optional Argument.
Specifies the method for fitting the model parameters.
Permitted Values: SSE (Sum of squared error), ML (Maximum likelihood)
Default Value: "SSE"
Types: character

data.orders

Optional Argument.
Specifies the output tbl_teradata from TimeSeriesParameters.

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)

include.drift

Optional Argument.
Specify whether drift term is included in the VARMAX model.
Note that this argument can only be TRUE when d is non-zero and less than 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: numeric

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: numeric

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: numeric

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: numeric

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: numeric

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: numeric

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 Teradata tbl object.
Named list member can be referenced directly with the "$" operator using name: result.

Examples

    # Get the current context/connection
    con <- td_get_context()$connection
    
    # Load example data.
    loadExampleData("varmax_example", "finance_data3", "orders_ex")
    
    # Create remote tibble objects.
    finance_data3 <- tbl(con, "finance_data3")
    orders_ex <- tbl(con, "orders_ex")
    
    # Example 1 - Without exogenous.columns
    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
    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
    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.
    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
    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
    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
    )