Description
VARMAX (Vector Autoregressive Moving Average model with eXogenous variables)
extends the ARMA/ARIMA model in two ways:
To work with time series with multiple response variables (vector time
series).
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
Yi is a vector of n response variables
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:
SSE: Sum of squared error.
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:
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: 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
)