hngarchFit {fOptions} | R Documentation |
This is a collection of functions to model the GARCH(1,1) price
paths which underly Heston and Nandi's option pricing model.
The functions are:
1 | hngarchSim | Simulates a Heston-Nandi Garch(1,1) process, |
2 | hngarchFit | MLE for a Heston Nandi Garch(1,1) model, |
3 | hngarchStats | True moments of the log-Return distribution, |
4 | print.hngarch | Print method, |
5 | summary.hngarch | Diagnostic summary. |
hngarchSim(model, n, innov, n.start, start.innov, rand.gen, ...) hngarchFit(x, model, symmetric, trace, ...) hngarchStats(model) ## S3 method for class 'hngarch': print(x, ...) ## S3 method for class 'hngarch': summary(object, ...)
innov |
[hngarchSim] - is a univariate time series or vector of innovations to produce the series. If not provided, innov will be generated using
the random number generator specified by rand.gen .
Missing values are not allowed. By default the normal
random number generator will be used.
|
model |
a list of GARCH model parameters with the following entries:
lambda ,
omega , the constant coefficient of the variance equation,
alpha the autoregressive coefficient,
beta the variance coefficient,
gamma the asymmetry coefficient,
and rf , the risk free rate, numeric values.
|
n |
[hngarchSim] - is the length of the series to be simulated. The default value is 1000. |
n.start |
[hngarchSim] - gives the number of start-up values to be discarded. The default value is 100. |
object |
[summary] - a fitted HN-GARCH(1,1) time series object of class "hngarch"
as returned from the function hngarchFit .
|
rand.gen |
[hngarchSim] - is the function which is called to generate the innovations. Usually, rand.gen will be a random number generator.
Additional arguments required by the random number generator
rand.gen , usually the location, scale and/or shape
parameter of the underlying distribution function, have to be
passed through the dots argument.
|
start.innov |
[hngarchSim] - is a univariate time series or vector of innovations to be used as start up values. Missing values are not allowed. |
symmetric |
[hngarchFit] - a logical, if TRUE a symmetric model is estimated, otherwise the parameters are estimated for an asymmetric HN Garch(1,1) model. |
trace |
[hngarchFit] - a logical value. Should the optimizarion be traced? If trace=FALSE , no tracing is done of the
iteration path.
|
x |
[hngarchFit] - an univariate vector or time series. [print] - a fitted HN-GARCH(1,1) time series object of class "hngarch"
as returned from the function hngarchFit .
|
... |
additional arguments to be passed. |
hngarchSim
returns numeric vector with the simulated time
series points neglecting those from the first start.innov
innovations.
hngarchFit
returns list with two entries: The estimated model parmeters
model
, where model
is a list of the parameters
itself, and llh
the value of the log likelihood.
hngarchStats
returns a list with the following components:
persistence
, the value of the persistence,
meansigma2
, meansigma4
, meansigma6
, meansigma8
,
the expectation value of sigma to the power of 2, 4, 6, and 8,
mean
, variance
, skewness
, kurtosis
,
the mean, variance, skewness and kurtosis of the log returns.
summary.hngarch
returns list with the following elements: h
,
a numeric vector with the conditional variances, z
, a numeric
vector with the innovations.
Diethelm Wuertz for this R-Port.
Heston S.L., Nandi S. (1997); A Closed-Form GARCH Option Pricing Model, Federal Reserve Bank of Atlanta.
## hngarchSim - ## Simulate a Heston Nandi Garch(1,1) Process: xmpOptions("\nStart: Simulate a HN-GARCH(1,1) Process > ") # Symmetric Model - Parameters: model = list(lambda = 4, omega = 8e-5, alpha = 6e-5, beta = 0.7, gamma = 0, rf = 0) ts = hngarchSim(model = model, n = 500, n.start = 100) par(mfrow = c(2, 1), cex = 0.75) ts.plot(ts, col = "steelblue4", main = "HN Garch Symmetric Model") grid() ## hngarchFit - ## HN-GARCH log likelihood Parameter Estimation: xmpOptions("\nNext: Estimate a HN-GARCH(1,1) Process > ") # To speed up, we start with the simulated model ... mle = hngarchFit(model = model, x = ts, symmetric = TRUE) mle ## summary.hngarch - ## HN-GARCH Diagnostic Analysis: xmpOptions("\nNext: Analyse a HN-GARCH(1,1) Process > ") par(mfrow = c(3, 1), cex = 0.75) summary(mle) ## hngarchStats - ## HN-GARCH Moments: xmpOptions("\nNext: Compute Moments of a HN-GARCH(1,1) Process > ") hngarchStats(mle$model)