Learn R Programming

GAS (version 0.3.4.1)

MultiGASFit: Estimate multivariate GAS models

Description

Estimate multivariate GAS models by Maximum Likelihood.

Usage

MultiGASFit(GASSpec, data, fn.optimizer = fn.optim, Compute.SE = TRUE)

Value

An object of the class mGASFit.

Arguments

GASSpec

An object of the class mGASSpec created using the function MultiGASSpec

data

matrix (or something coercible to that using as.matrix()) of dimension TxN containing the multivariate time series of observations. It can also be an object of the class ts, xts or zoo.

fn.optimizer

function. This is a generic optimization function that can be provided by the user. By default fn.optimizer = fn.optim where fn.optim is a wrapper to the optim function. See Details for user defined optimization routines.

Compute.SE

logical. Should asymptotic Standard Errors be computed? By default Compute.SE = TRUE

Author

Leopoldo Catania

Details

Maximum Likelihood estimation of GAS models is an on-going research topic. General results are reported by Blasques et al. (2014b), Blasques et al. (2014a) and Harvey (2013), while results for specific models have been derived by Blasques et al. (2014c) and Andres (2014).

Starting values for the optimizer are chosen in the following way: (i) estimate the static version of the model (i.e., with A = 0 and B = 0) and set the initial value of the intercept parameter accordingly, and (ii) perform a grid search for the coefficients contained in A and B. Further technical details are presented in Section 3.2 of Ardia et. al. (2016a).

The user is free to employ his/her own optimization routine via the fn.optimizer argument. fn.optimizer accepts a function object. The user provided optimizer has to satisfy strict requirements. The arguments of the fn.optimizer are : i) par0 a vector of starting values, ii) data the data provided, iii) GASSpec an object of the class uGASSpec, and iv) FUN the likelihood function. The output of fn.optimizer has to be an object of the class list with four named elements: i) pars: a numeric vector where the estimated parameters are stored, ii) value: a numeric containing the value of the negative log likelihood evaluated at its minimum, iii) hessian, a numeric matrix containing the Hessian matrix evaluated at the minimum of the negative log likelihood, this is used for inferential purposes, and iv) convergence a numeric variable reporting information about the convergence of the optimization. This quantity is printed by the show() and summary() methods. convergence = 0 has to indicates successful completion.

The user is allowed to not include the last two elements of the output of the fn.optimizer function, that is, the values hessian = NULL and convergence = NULL are admissible. In the case of hessian = NULL, the Hessian matrix is evaluated numerically using the hessian function in the numDeriv package of Gilbert and Varadhan (2016). If the provided hessian is not positive definite, a try with the hessian evaluation used by the BFGS quasi-Newton implementation in the function optim is made.

By default, the optim optimizer with method = "BFGS" is employed.

References

Ardia D, Boudt K and Catania L (2016a). "Generalized Autoregressive Score Models in R: The GAS Package." https://www.ssrn.com/abstract=2825380.

Blasques F, Koopman SJ, Lucas A (2014a). "Maximum Likelihood Estimation for Correctly Specified Generalized Autoregressive Score Models: Feedback Effects, Contraction Conditions and Asymptotic Properties." techreport TI 14-074/III, Tinbergen Institute. https://www.tinbergen.nl/discussionpaper/?paper=2332.

Blasques F, Koopman SJ, Lucas A (2014b). "Maximum Likelihood Estimation for Generalized Autoregressive Score Models." techreport TI 2014-029/III, Tinbergen Institute. https://www.tinbergen.nl/discussionpaper/?paper=2286.

Blasques F, Koopman SJ, Lucas A, Schaumburg J (2014c). "Spillover Dynamics for Systemic Risk Measurement using Spatial Financial Time Series Models." techreport TI 2014-103/III, Tinbergen Institute. https://www.tinbergen.nl/discussionpaper/?paper=2369.

Creal D, Koopman SJ, Lucas A (2013). "Generalized Autoregressive Score Models with Applications." Journal of Applied Econometrics, 28(5), 777-795. tools:::Rd_expr_doi("10.1002/jae.1279").

Ghalanos A, Theussl S (2016). "Rsolnp: General Non-Linear Optimization using Augmented Lagrange Multiplier Method." https://cran.r-project.org/package=Rsolnp.

Gilbert P, Varadhan R (2016). numDeriv: Accurate Numerical Derivatives. R package 2016.8-1, https://CRAN.R-project.org/package=numDeriv.

Harvey AC (2013). Dynamic Models for Volatility and Heavy Tails: With Applications to Financial and Economic Time Series. Cambridge University Press.

Ye Y (1988). Interior Algorithms for Linear, Quadratic, and Linearly Constrained Convex Programming. Ph.D. thesis, Stanford University.

Examples

Run this code
if (FALSE) {
# Specify an GAS model with multivariate Student-t
# conditional distribution and time-varying scales and correlations

library("GAS")

data("StockIndices")

GASSpec = MultiGASSpec(Dist = "mvt", ScalingType = "Identity",
                       GASPar = list(scale = TRUE, correlation = TRUE))

Fit = MultiGASFit(GASSpec, StockIndices)

Fit
}

Run the code above in your browser using DataLab