Learn R Programming

NetVAR (version 0.1-2)

LISAR: The LISAR model

Description

LISAR contains the LISAR model described in Zhang and Trimborn (2023). The model is computed based on 3 lambda tuning parameters which are automatically determined by the package. A scaling parameter boosts/lowers the strength of the regularization on assets which values are determined less/more important than others (influencers). The function allows to compute the LISAR model under "LASSO", "SCAD" and "AdapLASSO".

Usage

LISAR(
  x,
  Model = "LISAR.LASSO",
  eval.criteria = "MSFE",
  Lags = 3,
  alpha.pens = 0.5,
  gamma.pens = 0.5,
  lambda1_seq = 0.5,
  lambda2_seq = 0.5,
  lambda3_seq = 0.5,
  a.pen = 3.7,
  eps1 = 1e-04,
  eps2 = 1e-04,
  T1 = NULL,
  T2 = NULL,
  reoptim = FALSE
)

Value

An object of the class netstruc with the components

Model.optimal

a list containing the optimal model, evaluation criteria and model regularizers

data.training

the training data

data.evaluation

the evaluation data

data.outofsample

the out-of-sample data.

Model.estimation

estimation specifics for the model

Arguments

x

A matrix containing the data with rows being observations and columns being time series.

Model

The LISAR model to use with either LASSO "LISAR.LASSO", SCAD "LISAR.SCAD" or Adaptive LASSO "LISAR.AdapLASSO" regularization. Default "LISAR.LASSO".

eval.criteria

The evaluation criteria to use to choose the best model under the regularization parameters. Can be either "MSFE", "AIC" or "BIC". Default "MSFE".

Lags

The maximum number of lags to consider. Default 3.

alpha.pens

A number or vector specifying the boosting parameter increasing/decreasing the strength of regularization. Should be a number(s) between (0,1). See Zhang and Trimborn (2023) for details on the alpha parameters.

gamma.pens

A number or vector specifying the adaptive parameter for "LISAR.AdapLASSO". Only required for "LISAR.AdapLASSO". The number(s) should be larger than 0.

lambda1_seq

The factor by which the regularization sequence of lambda1, regularizing the lag structure, decreases towards 0. Should be a value between (0,1).

lambda2_seq

The factor by which the regularization sequence of lambda2, indicating which time series are more influential (influencers), decreases towards 0. Should be a value between (0,1).

lambda3_seq

The factor by which the regularization sequence of lambda3, regularizing the individual parameters, decreases towards 0. Should be a value between (0,1).

a.pen

The parameter specifying by which the SCAD penalty taperes off towards no regularization. Only required for "LISAR.SCAD". The number should be larger than 0. Default 3.7.

eps1

Control parameter for the inner optimization algorithm. The algorithm converged when between optimization steps the parameters change by less than "eps1". Default 0.0001.

eps2

Control parameter for the outer optimization algorithm. The algorithm converged when between optimization steps the parameters change by less than "eps2". Default 0.0001.

T1

A numeric stating the row of "x" where the training data end and the evaluation period starts. If NULL, then the first third of data are chosen as training data. Defaults to NULL.

T2

A numeric stating the row of "x" where the evaluation data end and the out-of-sample period starts. If NULL, then the second third of data are chosen as evaluation data. Defaults to NULL.

reoptim

Logical. If TRUE, then the best model found under the initially derived lambda sequences is further optimized by a new lambda sequence around the previous best solution. Stops when a more granular lambda sequence no longer improves the model under "eval.criteria" criterion. Default "FALSE".

References

Kexin Zhang, Simon Trimborn (2023). Influential assets in Large-Scale Vector Autoregressive Models SSRN Working paper. tools:::Rd_expr_doi("http://dx.doi.org/10.2139/ssrn.4619531")

Examples

Run this code

# Investigate influential assets relationship between 3 assets only
data(TradingData)

LISAR(TradingData[,c("AIG", "AXP", "BAC")], Model = "LISAR.LASSO", Lags = 1)

# Reoptimise the penalisation sequence
LISAR(TradingData[,c("AIG", "AXP", "BAC")], Model = "LISAR.LASSO", Lags = 1, reoptim = TRUE)

# \donttest{
# Investigate influential assets relationship between the entire asset universe with starting values
LISAR(TradingData, Model = "LISAR.LASSO")

# Reoptimise the penalisation sequence
LISAR(TradingData, Model = "LISAR.LASSO", reoptim = TRUE)

# Consider a different model
LISAR(TradingData, Model = "LISAR.SCAD", Lags = 1)
# }

Run the code above in your browser using DataLab