goGARCHfit-class: class: GO-GARCH Fit Class

Description Objects from the Class Slots Extends Methods Note Author(s) References Examples

Description

Class for the GO-GARCH fitted object.

Objects from the Class

The class is returned by calling the function gogarchfit.

Slots

mfit:

Multivariate fit object.

model:

Object of class "vector" containing details of the GO-GARCH model specification.

Extends

Class "mGARCHfit", directly. Class "GARCHfit", by class "mGARCHfit", distance 2. Class "rGARCH", by class "mGARCHfit", distance 3.

Methods

as.matrix

signature(x = "goGARCHfit"): function:
as.matrix(x, which = "A")
This returns four types of matrices relating to the estimation of the independent components in the GO-GARCH model. Valid choices are “A” for the mixing matrix, “W” for the unmixing matrix, “U” for the rotational matrix and “K” for the whitening matrix, “Kinv” for the de-whitening matrix.

coef

signature(object = "goGARCHfit"): extraction of independent factor GARCH model coefficients.

convolution

signature(object = "goGARCHfit"):
function:
convolution(object, weights, fft.step = 0.001, fft.by = 0.0001, fft.support = c(-1, 1), support.method = c("user", "adaptive"), use.ff = TRUE, cluster = NULL, trace = 0,...)
The convolution method takes a goGARCHfit object and a weights vector or matrix and calculates the weighted density. If a vector is given, it must be the same length as the number of assets, otherwise a matrix with row dimension equal to the row dimension of the filtered dataset (i.e. less any lags). In the case of the multivariate normal distribution, this simply returns the linear and quadratic transformation of the mean and covariance matrix, while in the multivariate affine NIG distribution this is based on the numerical inversion by FFT of the characteristic function. In that case, the “fft.step” option determines the stepsize for tuning the characteristic function inversion, “fft.by” determines the resolution for the equally spaced support given by “fft.support”, while the use of the “ff” package is recommended to avoid memory problems on some systems and is turned on via the “use.ff” option. The “support.method” option allows either a fixed support range to be given (option ‘user’), else an adaptive method is used based on the min and max of the assets at each point in time at the 0.00001 and 1-0.00001 quantiles. The range is equally spaced subject to the “fft.by” value but the returned object no longer makes of the “ff” package returning instead a list. Finally, the option for parallel computation is available via the use of a cluster object as elsewhere in this package.

fitted

signature(object = "goGARCHfit"): Extracts the conditional mean equation fitted values.

residuals

signature(object = "goGARCHfit"): Extracts the conditional mean equation residuals.

likelihood

signature(object = "goGARCHfit"): The quasi log-likelihood of the model, which being an independent factor model is the sum of the univariate GARCH log-likelihoods plus a term for the mixing matrix. For a dimensionality reduced system, this is NA.

nisurface

signature(object = "goGARCHfit"):
function:
nisurface(object, type = "cov", pair = c(1, 2), factor = c(1,2), plot = TRUE)
Creates the covariance or correlation (determined by “type” being either “cov” or “cor”) news impact surface for a pair of assets and factors. Since the shocks impact the factors independently, the news impact surface is a combination of the independent news impact curves of the factors which when combined via the mixing matrix A, create the dynamics for the underlying asset-factor surface function.

gportmoments

signature(object = "goGARCHfit"):
function:
gportmoments(object, weights)
Calculates the first 4 portfolio moments using the geometric properties of the model, given a vector or matrix of asset weights. If a matrix is given it must have row dimension equal to the row dimension of the filtered dataset (i.e. less any lags), else if a vector is given it will be replicated for all time points.

rcoskew

signature(object = "goGARCHfit") function:
rcoskew(object, standardize = TRUE, from = 1, to = 1)
Returns the 'time-varying' NxN^2 coskewness tensor in array format. The “from” and “to” options indicate the time indices for which to return the arrays. Because of memory issues, this is limited to 100 indices per call.

rcokurt

signature(object = "goGARCHfit") function:
rcokurt(object, standardize = TRUE, from = 1, to = 1)
Returns the 'time-varying' NxN^3 cokurtosis tensor in array format. The “from” and “to” options indicate the time indices for which to return the arrays. Because of memory issues, this is limited to models with less than 100 assets.

rcov

signature(object = "goGARCHfit"): Returns the time-varying NxN covariance matrix in array format unless ‘output’ is set to “matrix” in which case the array is flattened and the lower and main diagonal time varying values are returned (and if a date exists, then the returned object is of class xts).

rcor

signature(object = "goGARCHfit"): Returns the time-varying NxN correlation matrix in array format unless ‘output’ is set to “matrix” in which case the array is flattened and the lower and main diagonal time varying values are returned (and if a date exists, then the returned object is of class xts).

betacovar

signature(object = "goGARCHfit"): function:
betacovar(object, weights, asset = 1, cluster = NULL)
Returns the covariance beta given a matrix (of length equal to the number of rows of the original data, or vector which is then recycled to the number of rows of the original data) of benchmark weights and the asset number.

betacoskew

signature(object = "goGARCHfit"): function:
betacoskew(object, weights, asset = 1, cluster = NULL)
Returns the coskewness beta given a matrix (of length equal to the number of rows of the original data, or vector which is then recycled to the number of rows of the original data) of benchmark weights and the asset number.

betacokurt

signature(object = "goGARCHfit"): function:
betacokurt(object, weights, asset = 1, cluster = NULL)
Returns the cokurtosis beta given a matrix (of length equal to the number of rows of the original data, or vector which is then recycled to the number of rows of the original data) of benchmark weights and the asset number.

show

signature(object = "goGARCHfit"): Summary method.

Note

The reference by Paolella (2007) contains more details on the algorithm for the characteristic function inversion via FFT. The application of this method in a related model can be found in Chen (2007). The de Athayde and Flores (2002) paper is the basis for the geometric properties of the higher moment tensors in finance.

Author(s)

Alexios Galanos

References

de Athayde, G.M. and Flores Jr, R.G. 2002, On Certain Geometric Aspects of Portfolio Optimisation with Higher Moments, mimeo.
Broda, S.A. and Paolella, M.S. 2009, CHICAGO: A Fast and Accurate Method for Portfolio Risk Calculation, Journal of Financial Econometrics 7(4), 412–436 .
Paolella, M.S. 2007, Intermediate Probability - A Computational Approach, Wiley-Interscience.
Schmidt, R., Hrycej, T. and Stutzle 2006, Multivariate distribution models with generalized hyperbolic margins, Computational Statistics \& Data Analysis 50(8), 2065-2096.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
## Not run: 
data(dji30ret)
spec = gogarchspec(mean.model = list(demean = "constant"),
variance.model = list(model = "sGARCH", garchOrder = c(1,1), submodel = NULL),
distribution.model = list(distribution = "manig"), ica = "fastica")
fit = gogarchfit(spec = spec, data  = dji30ret[,1:4, drop = FALSE],
out.sample = 50, gfun = "tanh")
# The likelihood of the model
likelihood(fit)
# the GARCH coefficients of the independent factors
coef(fit)
# a news-impact surface plot
#ni = nisurface(fit, type = "cov", pair = c(1, 2), factor = c(1,2), plot = TRUE)
# the time varying correlation array
mc = rcor(fit)
# plot(mc[1,2,], type = "l")
# The moments of an equally weighted portfolio (subtract the out.sample from dimension)
gm = gportmoments(fit, weights = matrix(1/4, ncol = 4,
nrow = dim(dji30ret)[1]-50), debug = TRUE)

## End(Not run)

rmgarch documentation built on Feb. 5, 2022, 1:07 a.m.