rg-robGarch: Robust Estimates for GARCH(1,1) Model

Description Usage Arguments Details Value References Examples

Description

Methods for fitting a Garch(1,1) model with daily log return time series, using two methods of robust extended M-Estimates: (1) maximizing modified likelihood function; (2) M-Estimates with bounds to the propagation of the effect of one outlier on the subsequent predictors of the conditional variances. returns a rg object

Usage

1
2
3
4
5
6
7
8
9
robGarch(
  data,
  methods = c("BM", "M", "QML", "MLE"),
  fixed_pars = c(0.8, 3),
  optimizer = c("Rsolnp", "nloptr", "nlminb"),
  optimizer_x0 = FALSE,
  optimizer_control = list(trace = 0),
  stdErr_method = c("numDeriv", "optim", "sandwich")
)

Arguments

data

a time series of log returns, need to be numeric value.

methods

robust M-Estimate method used for Garch(1,1) model, "M" and "BM", or non-robust M-Estimate method, "QML" and "MLE". Default is "BM".

fixed_pars

a named numeric vector of parameters to be kept fixed during optimization, and they are needed for parameter estimation. For "M", the parameter should be c, which controls the modified loss function, user can use default c = .8; for "BM", the parameters should be c(c, k), where c is the same as in "M", user can use default c = 0.8, and k (k > 0) is to control the robustness, the smaller k is, the more robust the method would be, user can use default k = 3.

optimizer

optimizer used for optimization, one of "nloptr", "Rsolnp", "nlminb", default is "Rsolnp".

optimizer_x0

user-defined starting point for searching the optimum, c(x0_gamma, x0_alpha, x0_beta) or c(x0_gamma, x0_alpha, x0_beta, x0_shape) when the methods is "MLE". Default is "FALSE", where the starting point will be calculated instead of being user-defined.

optimizer_control

list of control arguments passed to the optimizer. Default is list(trace=0). If wanting to print out the optimizer result, use list() instead.

stdErr_method

method used to calculate standard error, one of "numDerive", "optim", "sandwich", default is "numDeriv" using hessian from numDeriv

Details

The robGarch function fits a Garch(1, 1) model to a time series of log return data, using one of the two methods of robust extended M-Estimates with certain parameters specified by the user, with guidance and examples from the vignette. The user can also specify the optimizer used during optimization procesure, and the method used to calculate standard error for the fitted parameters.

For details of the list of control arguments, please refer to nloptr::nloptr, Rsolnp::solnp, nlminb.

Value

A rg object(S3), the components of the object are:

data

the log returns data object for the rg model to be fitted

data_name

the name of data variable input used

methods

the method called

fixed_pars

named numeric vector of fixed parameters used

optimizer

the optimizer called

optimizer_x0

user-defined or calculated starting point for searching the optimum

optimizer_control

the list of control arguments passed to the optimizer

optimizer_result

output of the called optimizer

stdErr_method

the method called to calculate standard error

QML

logical argument controlling the non-robustness of the fitting method

fitted_pars

Garch(1,1) parameter estimations output of the called method

sigma

the time series of the conditional standard deviation

yt

the time series of log(data^2)

observed_I

observed information matrix

objective

the optimal likihood value obtained by the optimizer

time_elapsed

the time used for the optimization routine

message

the message of the convergence status produced by the called solver

standard_error

standard erros of the fitted parameters using the method called

t_value

t-values of gamma, alpha, beta, shape as well for methods "MLE"

p_value

p-values of gamma, alpha, beta, shape as well for methods "MLE"

References

Muler, Nora & Yohai, Victor. (2008). Robust estimates for GARCH models. Journal of Statistical Planning and Inference. 138. 2918-2940.

Examples

1
2
data("rtn")
fit <- robGarch(rtn[1:604], methods="BM", fixed_pars = c(0.8, 3.0))

EchoRLiu/robustGarch documentation built on Sept. 3, 2021, 8:25 p.m.