Learn R Programming

betategarch (version 3.4)

betategarch-package: Simulation, estimation and forecasting of Beta-Skew-t-EGARCH models

Description

This package provides facilities for the simulation, estimation and forecasting of first order Beta-Skew-t-EGARCH models with leverage (one-component and two-component versions), see Harvey and Sucarrat (2014), and Sucarrat (2013).

Let y[t] denote a financial return at time t equal to

y[t] = sigma[t]*epsilon[t]

where sigma[t] > 0 is the scale or volatility (generally not equal to the conditional standard deviation), and where epsilon[t] is IID and t-distributed (possibly skewed) with df degrees of freedom. Then the first order log-volatility specifiction of the one-component Beta-Skew-t-EGARCH model can be parametrised as

sigma[t] = exp(lambda[t]),
lambda[t] = omega + lambdadagger,
lambdadagger[t] = phi1*lambdadagger[t-1] + kappa1*u[t-1] + kappastar*sign[-y]*(u[t-1]+1).

So the scale or volatility is given by sigma[t] = exp(lambda[t]). The omega is the unconditional or long-term log-volatility, phi1 is the GARCH parameter (|phi1| < 1 implies stability), kappa1 is the ARCH parameter, kappastar is the leverage or volatility-asymmetry parameter and u[t] is the conditional score or first derivative of the log-likelihood with respect to lambda. The score u[t] is zero-mean and IID, and (u[t]+1)/(df+1) is Beta distributed when there is no skew in the conditional density of epsilon[t]. The two-component specification is given by

sigma[t] = exp(lambda[t]),
lambda[t] = omega + lambda1dagger + lambda2dagger,
lambda1dagger[t] = phi1*lambdadagger[t-1] + kappa1*u[t-1],
lambda2dagger[t] = phi2*lambdadagger[t-1] + kappa2*u[t-1] + kappastar*sign[-y]*(u[t-1]+1).

The first component, lambda1dagger, is interpreted as the long-term component, whereas the second component, lambda2dagger, is interpreted as the short-term component.

Arguments

Author

Genaro Sucarrat, https://www.sucarrat.net/

Details

Package:betategarch
Type:Package
Version:3.4
Date:2025-03-26
License:GPL-2
LazyLoad:yes

The two main functions of the package are tegarchSim and tegarch. The first simulates a Beta-Skew-t-EGARCH models whereas the second estimates one. The second object returns an object (a list) of class 'tegarch', and a collection of methods can be applied to this class: coef.tegarch, fitted.tegarch, logLik.tegarch, predict.tegarch, print.tegarch, residuals.tegarch, summary.tegarch and vcov.tegarch. In addition, the output produced by the tegarchSim function and the fitted.tegarch and residuals.tegarch methods are of the Z's ordered observations (zoo) class, which means a range of time-series methods are available for these objects.

References

C. Fernandez and M. Steel (1998), 'On Bayesian Modeling of Fat Tails and Skewness', Journal of the American Statistical Association 93, pp. 359-371, tools:::Rd_expr_doi("https://doi.org/10.1080/01621459.1998.10474117")

A. Harvey and G. Sucarrat (2014), 'EGARCH models with fat tails, skewness and leverage'. Computational Statistics and Data Analysis 76, pp. 320-338, tools:::Rd_expr_doi("https://doi.org/10.1016/j.csda.2013.09.022")

G. Sucarrat (2013), 'betategarch: Simulation, Estimation and Forecasting of First-Order Beta-Skew-t-EGARCH models'. The R Journal (Volume 5/2), pp. 137-147, ,tools:::Rd_expr_doi("https://doi.org/10.32614/RJ-2013-034")

Examples

Run this code
##simulate 1000 observations from model with default parameter values:
set.seed(123)
y <- tegarchSim(1000)

##estimate and store as 'mymod':
mymod <- tegarch(y)

##print estimates and standard errors:
print(mymod)

##graph of fitted volatility (conditional standard deviation):
plot(fitted(mymod))

##plot forecasts of volatility 1-step ahead up to 10-steps ahead:
plot(predict(mymod, n.ahead=10))

Run the code above in your browser using DataLab