Class for the GO-GARCH fitted object.
The class is returned by calling the function gogarchfit
.
mfit
:Multivariate fit object.
model
:Object of class "vector"
containing details of the
GO-GARCH model specification.
Class "'>mGARCHfit"
, directly.
Class "'>GARCHfit"
, by class "mGARCHfit", distance 2.
Class "'>rGARCH"
, by class "mGARCHfit", distance 3.
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.
signature(object = "goGARCHfit")
: extraction of independent
factor GARCH model coefficients.
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.
signature(object = "goGARCHfit")
:
Extracts the conditional mean equation fitted values.
signature(object = "goGARCHfit")
:
Extracts the conditional mean equation residuals.
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.
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.
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.
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.
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.
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).
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).
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.
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.
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.
signature(object = "goGARCHfit")
: Summary method.
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.
# 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)
# }
Run the code above in your browser using DataLab